python入门学习基础知识大全_自主训练
阅读本文平均需要1小时
小数或浮点数
Python中使用浮点数(小数)来表示数字而不是整数。
数字的一些例子,表示为0.5和-7.8237591。
它们可以通过输入带有小数点的数字或使用整数除法之类的操作来直接创建
计算机不能完全精确地存储浮点数(小数),就像我们无法写出1/3(0.3333333333333333)完整的小数的位数一样。
记住这一点,因为它常常导致令人讨厌的程序错误(bug)!
整数相除会得到浮点数
如前所述,将任意两个整数相除会产生一个浮点数。
通过在两个浮点数上运行操作,或者在浮点数和整数运算会得到一个浮点数。
>>> 8 / 2
4.0
>>> 6 * 7.0
42.0
>>> 4 + 1.65
5.65
Python默默地将整数转换为浮点数
0不能做除数
任何数除以0在python中会产生错误
>>> 11 / 0
ZeroDivisionError: division by zero
在Python中,错误消息的最后一行表示错误的类型。仔细阅读错误消息,因为他们经常告诉你如何修复程序!
ZeroDivisionError:除以0错误
division:除
zero:零
幂
除此外,减法,乘法,和除法,Python还支持幂,这是增加数字的另外一个方法。幂 是用两个星号进行操作。
>>> 2**5
32
>>> 9 ** (1/2)
3.0
商与余数
要确定除法的 商 和余数,分别使用//
分隔符和`%“。
商是用两个斜杠表示(//
)。
用百分符号(%
)执行取余数。
这些运算符可以同时使用浮点数和整数。
print( 20 // 6)
3
print(1.25 % 0.5)
0.25
20÷6 等于3 余2
20 // 6 商是 3
20 % 6 余数是 2
Python算术运算符
以下假设变量: a=10,b=20
运算符 | 描述 | 实例 |
+ | 加 – 两个对象相加 | a + b 输出结果 30 |
– | 减 – 得到负数或是一个数减去另一个数 | a – b 输出结果 -10 |
* | 乘 – 两个数相乘或是返回一个被重复若干次的字符串 | a * b 输出结果 200 |
/ | 除 – x除以y | b / a 输出结果 2 |
% | 取模 – 返回除法的余数 | b % a 输出结果 0 |
** | 幂 – 返回x的y次幂 | 2 ** 3为 2的3次方结果为8 |
// | 取整除 – 返回商的整数部分(向下取整) | 9//2 输出为4 |
字符串
如果您想在Python中使用文本,必须使用字符串。
通过在两个单引号或双引号之间输入文本来创建字符串。
当Python控制台显示一个字符串时,它通常使用单引号
>>> "Python 非常有趣!"
'Python 非常有趣!'
>>> '有梦想就有希望'
'有梦想就有希望'
字符串转义
某些字符不能直接包含在字符串中。例如,双引号不能直接包含在双引号字符串中 这种文字必须放置一个反斜杠在它的前面转义。
"He's a very naughty boy!"
He's a very naughty boy!
# 如果需要在单引号字符串里面展示单引号
'He's a very naughty boy!'
He's a very naughty boy!
在字符串里面有些特殊字符 如 代表换行 ‘表示单引号 代表制表符,就称为转义字符
使用三引号与换行
Python提供了一个简单的方法来避免手工编写 在一个字符串转义换行符。创建一个三个引号引用的
'''学生:早上好
老师: 早上好,亲爱的学生们'''
在单引号字符串里面使用 也可以实现换行效果
'学生:早上好\n老师: 早上好,亲爱的学生们'
显示效果:
学生:早上好
老师: 早上好,亲爱的学生们
字符串,按回车和换行符,自动为你创建了。
输出
通常,程序接受输入并进行处理以产生输出。
在python中,可以使用打印函数生成输出。这将显示屏幕上某个文本的文本表示形式。
>>> print(1 + 1)
2
>>> print("Hello\nWorld!")
Hello
World!
输入
为了从Python中获得用户输入,可以使用 input 函数
函数提示用户输入,并返回输入的字符串。
input("请输入内容: ")
请输入内容: 这是我想输入的内容!
“这是我想输入的内容!”这段内容需要用户自己在控制台 打字输入的
print 不换行
在 Python 中 print 默认是换行的:
for i in range(0,3):
print (i)
0
1
2
要想不换行你应该写成 print(i, end = '' )
for i in range(0,3):
print (i, end = '')
012
格式化输出整数
支持参数格式化,与 C 语言的 printf 类似
str = "(%s)的长度是: %d" %('我爱你‘,len('我爱你‘))
print(str)
我带你的长度是:3
%s代表字符串类型
%d 代表整数类型
%f 浮点数(小数)
符串连接
与整数和浮动一样,Python中的字符串可以使用一个+号连接起来
连接字符串时,不管他们是否已经与单或双引号了。
>>> "番茄"+ '鸡蛋'
'番茄鸡蛋'
>>> print("第一个字符串"+ ", "+ "第二个字符串")
第一个字符串, 第二个字符串
字符串与其它类型连接
即使字符串包含数字,它们仍然是作为字符串而不是数字添加的。在数字中添加一个字符串会产生一个错误,因为尽管它们看起来很相似,但它们是两个不同的概念。
>>> "2"+ "2"
'22'
>>> 1+ '2'+ 3+ '4'
TypeError: unsupported operand type(s) for+: 'int'and'str'
阅读错误信息是程序员一个良好的习惯,以下是翻译(可以跳过阅读,不需要掌握的)
类型错误:不支持 ’整数‘和’字符串‘两种类型操作
typeError 类型错误
unsupported 不支持
operand 操作
type 类型
int 整数
str 字符串
变量
变量在大多数编程语言中起着非常重要的作用,Python也不例外。变量允许通过将其赋值给名称来存储一个值,该名称可以用来引用程序后面的值。
若要赋值变量,请使用等号。与我们迄今所看到的大多数代码行不同,它在Python控制台上不生成任何输出。
>>> x = 7
>>> print(x)
7
>>> print(x + 3)
10
>>> print(x)
7
可以使用变量执行相应的操作,就像使用数字和字符串一样。如您所见,变量将其值存储在整个程序中。
变量赋值
变量可以被重新赋值,你想多少次,就多少。
在Python中,变量没有特定的类型,所以可以将字符串分配给变量,然后将一个整数分配给同一个变量。
>>> print(x)
123.456
>>> x = "这是一个字符串"
>>> print(x + "!")
这是一个字符串!
变量命名
在python变量名中使用的字符可能有一定的限制。允许的唯一字符是字母、数字和下划线。而且,他们不能从数字开始。
不遵循这些规则会导致错误。
>>> this_is_a_normal_name = 7
>>> 123abc= 7
SyntaxError: invalid syntax
# 语法错误:不正确语法
>>> spaces are not allowed
SyntaxError: invalid syntax
语法错误:不正确语法
Python是一种区分大小写的编程语言。因此,
Last
和last
是Python中的两个不同的变量名。
变量命名不能以数字开头,中间不能有空格
未定义变量与变量赋值
试图引用未定义的变量导致错误。
可以使用 del 语句删除变量,这意味着从名称到值的引用被删除,并尝试使用变量导致错误。删除变量可以重新赋值。
>>> foo = "a string"
>>> foo
'a string'
>>> bar
NameError: name 'bar'isnotdefined
>>> del foo
>>> foo
NameError: name 'foo'isnotdefined
还可以从用户输入中获取变量的值。
>>> foo = input("输入一个数: ")
输入一个数: 7
简洁运算符
简洁运算符允许您更简洁地编写代码,如“x + x + 3”,如“x + + 3”。
同样的事情也可能发生在其他操作符上,比如,*,和/ %。
>>> x = 2
>>> print(x)
2
>>> x += 3
>>> print(x)
5
x = 2
x += 3 的意思是 x = x+3
x = x+3 的意思是 x = 2+3
字符串快速运算符
这些运算符可以用于除数字以外的其他类型,例如字符串。
>>> x = "spam"
>>> print(x)
spam
>>> x += "eggs"
>>> print(x)
spameggs
许多其他语言都有专门的操作符,如“++”,作为“x+=1”的快捷方式。
Python没有这些
。
Python赋值运算符
以下假设变量a为10,变量b为20:
运算符 | 描述 | 实例 |
= | 简单的赋值运算符 | c = a + b 将 a + b 的运算结果赋值为 c |
+= | 加法赋值运算符 | c += a 等效于 c = c + a |
-= | 减法赋值运算符 | c -= a 等效于 c = c – a |
*= | 乘法赋值运算符 | c *= a 等效于 c = c * a |
/= | 除法赋值运算符 | c /= a 等效于 c = c / a |
%= | 取模赋值运算符 | c %= a 等效于 c = c % a |
**= | 幂赋值运算符 | c **= a 等效于 c = c ** a |
//= | 取整除赋值运算符 | c //= a 等效于 c = c // |
Booleans(布尔值)
Python中的另一种类型是布尔布尔类型。有两个布尔值:True 和 False 。它们可以通过比较值来创建,例如通过使用相等运算符==
。
>> my_boolean = True
>>> my_boolean
True
>>> 2== 3
False
>>> "hello"== "hello"
True
注意不要把赋值(一个等号)和比较(两个等号)混淆起来。
比较
另一个比较运算符,不等于运算符(!=),如果被比较的项不相等,则值为True(真),如果比较值相等,则值为False。
>>> 1!= 1
False
>>> "eleven"!= "seven"
True
>>> 2!= 10
True
!=
注意:这里的符号是是英文输入法状态下的感叹号
比较符号(大于小于)
Python还具有数值比较符号 大于或小于 。分别是>和<。
>>> 7> 5
True
>>> 10< 10
False`
比较符号(大于等于,小于等于)
大于等于或小于等于运算符 ,符号是>=
和<=
。
>>> 7<= 8
True
>>> 9>= 9.0
True
大于或小于运算符也可以用来比较字符串(单词的字母顺序是基于其字母顺序的字母顺序)。
'a'> 'b'
False
'd'> 'b'
True
If语句
如果某个条件成立,可以使用 if 语句运行代码。
如果某个条件求值为真,则执行一些语句。否则,它们不会被执行。
if语句看起来是这样的:
if表达式:
语句
Python使用缩进(行的开始处的空白)来分隔代码块。其他语言,如C,使用大括号“{}”来实现这一点,但是在Python
缩进中是强制性
的;没有它,程序就不能工作。如您所见,if的语句应该缩进。
If语句示例
示例
if10> 5:
print("12 大于 8")
print("程序结束")
表达式确定12是否大于8。因为它是,缩进语句运行,并且“12大于8”被输出。然后 运行print(“程序结束”) 显示“程序结束”。结果:
>>>
12大于 8
程序结束
>>>
注意if语句中表达式末尾的冒号。由于程序包含多行代码,应该将其创建为单独的文件并运行它。
if 嵌套
要执行更复杂的检查,if语句可以一个嵌套在另一个内。这是一种是满足多个条件的方法。
例如:
num = 12
if num > 5:
print("大于 5")
if num <=45:
print("数值在5和45之间")
结果:
大于 5
数值在5和45之间
数值在5和45之间
else 语句
else 语句 紧跟 if 语句, 并且包含当if语句为false时调用else代码。
与if语句一样,块内的代码应该缩进。
x = 4
if x == 5:
print("Yes")
else:
print("No")
结果:
>>>
No
>>>
Else 嵌套
可以通过链式IF语句和其他语句来确定一系列可能性中的哪一个选项是正确的。举例:
if num == 5:
print("Number is 5")
elif num == 11:
print("Number is 11")
elif num == 7:
print("Number is 7")
else:
print("Number isn't 5, 11 or 7")
结果:
>>>
Numberis7
>>>
Elif 语句
elif (else if 的简写方式) 语句 一系列elif if语句可以有一个最终的else语句结尾
例如:
num = 7
if num == 5:
print("数字是 5")
elif num == 13:
print("数字是 13")
elif num == 7:
print("数字是 7")
else:
print("数字既不是5和13也不是7")
结果:
>>>
数字是 7
>>>
Boolean 布尔逻辑
布尔逻辑常用于if条件语句生成更复杂的条件。
Python的布尔运算符是: and
, or
, and not
.(和,或者,不是)
and运算符左右接受两个参数,如果且仅当两个参数都为真,则计算为true
。否则,将计算为false
>>> 1== 1and2== 2
True
>>> 1== 1and2== 3
False
>>> 1!= 1and2== 2
False
>>> 2< 1and3> 6
False
Python为其布尔运算符使用单词,而大多数其他语言使用符号,例如
&&
,||
和!
.
逻辑 Or(或)
or
运算符也接受两个参数。如果它的参数之一都是真的,则计算为True
,如果两个参数都为假,则为False
。如果两个参数都是真也计算为真
>>> 1== 1or2== 2
True
>>> 1== 1or2== 3
True
>>> 1!= 1or2== 2
True
>>> 2< 1or3> 6
False
逻辑 Not(反)
它只有一个参数并且反转其真假值
>>> not1== 1
False
>>> not1> 7
True
原来是假的,用not后变成真,原来是真用not 变假的
可以使用布尔运算符在IF语句中链接多个条件语句。
符号优先级别
算符优先是编程中的一个非常重要的概念。它是运算顺序的数学思想(先乘除后加减)的扩展,包括其他运算符,例如布尔逻辑中的运算符。下面的代码显示,==具有比or更高的优先级:
>>> False == False or True
True
>>> False == (False or True)
False
>>> (False == False) or True
True
Python的运算顺序与普通数学相同:先括号,然后求幂,然后乘法/除法,然后加/减。
符号优先列表
下表列出了所有Python的运算符,从最高优先级到最低级别。
Python运算符优先级
以下表格列出了从最高到最低优先级的所有运算符:
运算符 | 描述 |
** | 指数 (最高优先级) |
~ + – | 按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@) |
* / % // | 乘,除,求余数和取整除 |
+ – | 加法减法 |
>> << | 右移,左移运算符 |
& | 位 ‘AND’ |
^ | |
<= < > >= | 比较运算符 |
== != | 等于运算符 |
= %= /= //= -= += *= **= | 赋值运算符 |
is is not | 身份运算符 |
in not in | 成员运算符 |
not and or | 逻辑运算符 |
list列表索引
索引可能超出列表值的范围会导致索引错误。
某些类型,如字符串,可以像列表一样索引。索引字符串的行为就像在索引包含字符串中的每个字符的列表一样。
对于其他类型,如整数,索引它们是不可能的,并且会导致类型错误。
str = "Hello world!"
print(str[6])
结果:
>>>
w
>>>
list列表操作
列表索引的某个项目可以重新赋值
举例:
nums = [7, 7, 7, 7, 7]
nums[2] = 5
print(nums)
结果:
>>>
[7, 7, 5, 7, 7]
>>>
列表乘&加
列表list 可以添加也可以相乘,字符串也一样
举个栗子:
nums = [1, 2, 3]
print(nums + [4, 5, 6])
print(nums * 3)
结果:
>>>
[1, 2, 3, 4, 5, 6]
[1, 2, 3, 1, 2, 3, 1, 2, 3]
>>>
列表和字符串在很多方面都是相似的
字符串可以被看作是无法更改的字符列表。
用in语句来检查列表中是否有某个项目,如果返回 True 则有,返回False则没有
words = ["spam", "egg", "spam", "sausage"]
print("spam" in words)
print("egg" in words)
print("tomato" in words)
结果:
>>>
True
True
False
>>>
in运算符还用于确定字符串是否是另一个字符串的子字符串。
List列表检测-Not
not语句可以检查某个元素不在列表里。如下:
nums = [1, 2, 3]
print(not 4 in nums)
print(4 not in nums)
print(not 3 in nums)
print(3 not in nums)
结果:
>>>
True
True
False
False
>>>
List列表函数-Append
更改列表的另一种方法是使用append方法。在列表的最后面添加一项。
nums = [1, 2, 3]
nums.append(4)
print(nums)
结果:
>>>
[1, 2, 3, 4]
>>>
也有添加在前的方法,后面会介绍
List列表函数-Append
更改列表的另一种方法是使用append方法。在列表的最后面添加一项。
nums = [1, 2, 3]
nums.append(4)
print(nums)
结果:
>>>
[1, 2, 3, 4]
>>>
也有添加在前的方法,后面会介绍
List列表函数-Len
len方法用来查看列表中项目的个数
nums = [1, 3, 5, 2, 4]
print(len(nums))
结果:
>>>
5
>>>
List列表函数-Insert
insert 方法比较像 append,它允许你在列表中的任何位置插入一个新的项目,而不是只在最后一个位置
words = ["Python", "fun"]
index = 1
words.insert(index, "is")
print(words)
结果:
>>>
['Python', 'is', 'fun']
>>>
List列表函数-Index
index方法查找列表 第一个出现的项目并返回其索引。
如果项不在列表中,则会引发ValueError。
letters = ['p', 'q', 'r', 's', 'p', 'u']
print(letters.index('r'))
print(letters.index('p'))
print(letters.index('z'))
结果:
>>>
2
0
ValueError: 'z' is not in list
>>>
这里有一些关于列表list有用的方法
max(list)
: 返回列表中最大的值
min(list)
: R返回列表中最小的值
list.count(obj)
: 返回一个项目在列表中出现的次数
list.remove(obj):
从列表中删除一个项目
list.reverse()
: 翻转列表中的项目
range-范围
range 函数 创建一个 有序的数字列表
面的代码生成一个0到9的整数列表。
numbers = list(range(10))
print(numbers)
结果:
>>>
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>>

列表的调用是必需的,因为range本身创建了一个范围对象,如果您想将它作为一个对象,则必须将其转换为列表。
range-参数2个
如果range只有一个参数,它将产生一个0到参数的列表
如果range有两个参数,它将产生一个从一个参数到第二个参数的值的列表
例如:
numbers = list(range(3, 8))
print(numbers)
print(range(20) == range(0, 20))
结果:
>>>
[3, 4, 5, 6, 7]
True
>>>
range-参数3个
range 也可以有第三个参数, 它决定所产生的序列的间隔。这第三个参数必须是整数。
numbers = list(range(5, 20, 2))
print(numbers)
结果是:
>>>
[5, 7, 9, 11, 13, 15, 17, 19]
>>>
列表遍历-While
有时,您需要在列表中的每个项目上执行代码。这叫做迭代,它可以用while循环和计数器变量来完成。例如:
words = ["hello", "world", "spam", "eggs"]
counter = 0
max_index = len(words) - 1
while counter <= max_index:
word = words[counter]
print(word + "!")
counter = counter + 1
结果:
>>>
hello!
world!
spam!
eggs!
>>>
上面的示例 遍历列表中的所有项,使用它们的索引访问它们,并添加感叹号打印它们。
列表遍历-For
使用while循环迭代列表需要相当多的代码,因此Python提供了for循环作为完成相同事情的快捷方式。前面的示例中的相同代码可以用for循环编写,如下:
words = ["hello", "world", "spam", "eggs"]
for word in words:
print(word + "!")
结果:
>>>
hello!
world!
spam!
eggs!
>>>
for循环相当于其他编程语言里面的foreach
列表循环-For-2
for循环通常用于重复一定次数的一些代码。这是通过结合具有范围对象的循环来完成的。
for i in range(5):
print("hello!")
结果:
>>>
hello!
hello!
hello!
hello!
hello!
>>>
当在for循环中使用时,不需要调用范围对象的列表,因为它没有被索引,所以不需要列表。
转载请注明:XAMPP中文组官网 » python入门学习基础知识大全_自主训练