注释的作用:用来解释程序的作用和功能,提高程序的可读性,也可以用来调试代码,当我们不希望编译、执行程序中的某些代码时,就可以注释掉。注释的主要作用还是对代码进行说明,给阅读代码的人看的。
Python源代码的注释形式:
单行注释
多行注释
单行注释: 使用井号(#)表示单行注释的开始,一直到这行结束都是注释。如下有两种:
#这是一行注释
print("Hello World!") #这也是是一行注释
多行注释: 使用三个单引号或三个双引号将注释的内容括起来。如下所示:
print("Hello World!")
'''
这是多行注释
我要学习Python 了
我很开心
'''
"""
这也是多行注释
我觉得我可以学好python
加油!!!
"""
print()函数是用来输出的。
print()函数的语法格式:
print(value1,value2,...,sep=' ',end='\n',file=sys.stdout,flush=False)
value1,value2,…, : 输出的内容,可以是任意多个变量或值;
# 输出多个值:
value1 = '闻'
print('Hello world','wen','你好,世界!',value1)
#输出结果:
Hello world wen 你好,世界! 闻
Process finished with exit code 0
sep参数: 设置输出多个value的分割符,默认以空格分隔;
#使用sep参数,以井号分割
value1 = '闻'
print('Hello world','wen','你好,世界!',value1,sep='#')
#输出结果:
Hello world#wen#你好,世界!#闻
Process finished with exit code 0
end参数: 决定print函数输出之后以什么结束,默认是’\n’,’\n’代表了换行;
#不使用end
print('Hello world','wen','你好,世界!',1)
print('Hello world','wen','你好,世界!',2)
#输出结果,2后面有一个空行是因为第二个print是以默认的换行结束:
Hello world wen 你好,世界! 1
Hello world wen 你好,世界! 2
Process finished with exit code 0
#使用end,以%结束
print('Hello world','wen','你好,世界!',1,end='%')
print('Hello world','wen','你好,世界!',2,end='%')
#输出结果:
Hello world wen 你好,世界! 1%Hello world wen 你好,世界! 2%
Process finished with exit code 0
file参数: 指定print()函数的输出目标,file参数的默认值是sys.stdout,该默认值代表了系统标准输出,也就是屏幕。也可以通过改变该参数让print()函数输出到指定的文件中;
f = open('poem.txt','w') #打开文件,'w'代表写入
print('离离原上草,',file=f)
print('一岁一枯荣,',file=f)
f.close() #关闭文件,释放资源
#运行结果是,会在当前目录生成一个poem.txt文件,文件中会有这两句诗。且输出台为空
Process finished with exit code 0
flush参数: flush参数用于控制输出缓存,该参数一般保持为False即可,这样可以获得较好的性能。
input()函数用于获取用户输入的内容。input()函数总是返回一个字符串,因此用户可以输入任何内容。
input函数举例:
user_input= input('请输入你想输入的内容:')
#运行输出结果(程序会等待用户输入,输入之后按回车键才会继续执行):
请输入你想输入的内容:
user_input= input('请输入你想输入的内容:')
print(user_input)
#运行输出结果:
请输入你想输入的内容:wen
wen
Process finished with exit code 0
input()函数返回的都是字符串类型
user_input1= input('请输入整数:')
print(type(user_input1),user_input1)
user_input2= input('请输入浮点数:')
print(type(user_input2),user_input2)
user_input3= input('请输入列表:')
print(type(user_input3),user_input3)
user_input4= input('请输入字符串:')
print(type(user_input4),user_input4)
user_input5= input('请输入汉字:')
print(type(user_input5),user_input5)
#运行之后输出结果:
请输入整数:26
<class 'str'> 26
请输入浮点数:0.12
<class 'str'> 0.12
请输入列表:[1,2,'wen']
<class 'str'> [1,2,'wen']
请输入字符串:'wen'
<class 'str'> 'wen'
请输入汉字:闻
<class 'str'> 闻
Process finished with exit code 0
变量是用来存储数据的,就像容器一样,可以盛装东西,变量就是”盛装“程序中的数据的地址。
Python中变量的特点:
(1)变量可以直接赋值不用声明
(2)变量的数据类型可以动态改变
变量的命名规则:
(1)由字母、数字、下划线(_)组成,只能以下划线或字母开头,不能以数字开头;
(2)不能是Python关键字,内置函数名;python关键字查看如下:
import keyword
print(keyword.kwkist)
#运行上面代码输出内容(关键字):
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif',
'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass',
'raise', 'return', 'try', 'while', 'with', 'yield']
(3)Python语言严格区分大小写,所以abc和AbC是不同的变量名
变量名举例:
wen_xin #合法变量名
HelloWorld #合法变量名
_wen #合法变量名
wen/xin #不合法变量名,不能包含‘/’符号,只能是字母、数字、下划线
while #不合法变量名,不能是关键字
2wen #不合法变量名,不能以数字开头
python支持整型、浮点型、和复数。
整型
python中的整型支持各种整数值,不管是小的整数值,还是大的整数值,python都可以处理,不像其他的语言分为short、int、long等。
大小整数示例:
a = 0
print(type(a),a)
b = 1
print(type(b),b)
c = 999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
print(type(c),c)
#运行输出结果:
<class 'int'> 0
<class 'int'> 1
<class 'int'> 999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
Process finished with exit code 0
python整型数的四种表示形式:
(1)十进制形式
(2)二进制形式:以0b或0B开头的整数就是二进制形式的整数
bin_value1 = 0b101
bin_value2 = 0b111
print(type(hex_value1),hex_value1)
print(type(hex_value2),hex_value2)
#运行之后输出的结果(输出的是十进制数):
<class 'int'> 5
<class 'int'> 7
Process finished with exit code 0
(3)八进制形式:以0o或0O开头的整数,数值表示范围是0~7
oct_value1 = 0o7
oct_value2 = 0o10
oct_value3 = 0o0
print(type(hex_value1),hex_value1)
print(type(hex_value2),hex_value2)
print(type(hex_value3),hex_value3)
#运行后输出结果(输出的值是十进制数):
<class 'int'> 7
<class 'int'> 8
<class 'int'> 0
Process finished with exit code 0
(4)十六进制形式:以0x或0X开头的整数,数值表示范围:0~9 和 af(1015)
hex_value1 = 0x9
hex_value2 = 0x10
hex_value3 = 0xaf
print(type(hex_value1),hex_value1)
print(type(hex_value2),hex_value2)
print(type(hex_value3),hex_value3)
#运行输出结果(输出的值是十进制):
<class 'int'> 9
<class 'int'> 16
<class 'int'> 175
Process finished with exit code 0
浮点型
浮点型是带有小数点的数值,python的浮点数有两种:
十进制形式:即平常所见的小数,例如6.2,23.0,0.12
float_num1 = 6.12
float_num2 = 0.32
print(type(float_num1),float_num1)
print(type(float_num2),float_num2)
#运行输出结果:
<class 'float'> 6.12
<class 'float'> 0.32
Process finished with exit code 0
科学计数形式:以科学计数的方式表示的浮点数,例如6.12e2,6.12E2
float_sce1 = 6.12e2
float_sce2 = 0.12e2
print(type(float_sce1),float_sce1)
print(type(float_sce2),float_sce2)
#运行输出结果:
<class 'float'> 612.0
<class 'float'> 12.0
Process finished with exit code 0
复数
在python中可以支持复数,复数的虚部用j或J表示。cmath模块包含了各种支持复数运算的函数。
复数简单示例:
complex_ex1 = 6 + 2j
complex_ex2 = 6 + 0.6j
complex_ex3 = 6 - 6j
print(type(complex_ex1),complex_ex1)
print(type(complex_ex2),complex_ex2)
print(type(complex_ex3),complex_ex3)
#运行输出结果:
<class 'complex'> (6+2j)
<class 'complex'> (6+0.6j)
<class 'complex'> (6-6j)
Process finished with exit code 0
cmath模块(用上了可以学习,用不上只用了解)
import cmath
print(dir(cmath))
#运行结果:
['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atanh', 'cos', 'cosh', 'e', 'exp', 'inf', 'infj', 'isclose', 'isfinite', 'isinf', 'isnan', 'log', 'log10', 'nan', 'nanj', 'phase', 'pi', 'polar', 'rect', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau']
Process finished with exit code 0
运算符是一种特殊的符号,用来表示数据的运算、赋值、比较等。
python中运算符的分类:
赋值运算符
算数运算符
位运算符
索引运算符
比较运算符
逻辑运算符
>>>赋值运算符
在python中使用"="作为赋值运算符,通常,使用复制运算符将表达式的值赋给另一个变量。
将常量赋值给变量
str_va = 'python'
num_va = 666
bool_va = True
将一个变量的值赋给另一个变量
str_va1 = 'wen'
str_va2 = str_va1
print(str_va1,str_va2)
print(id(str_va1),id(str_va2))
#运行结果:
wen wen
17693120 17693120
Process finished with exit code 0
连续赋值
a = b = c = 26
print(a,b,c)
print(id(a),id(b),id(c))
#运行结果:
26 26 26
1547290944 1547290944 1547290944
Process finished with exit code 0
将表达式运算的值赋值给变量
num1 = 18
exp_va = num1 + 8
print(exp_va)
#运算结果:
26
Process finished with exit code 0
赋值运算符和算数运算符结合:
符号表示 | 符号说明 |
---|---|
+= | x += y,对应于x = x+y |
-= | x -= y,对应于x = x-y |
*= | x *= y,对应于x = x*y |
/= | x /= y,对应于x = x/y |
//= | x//= y,对应于x = x//y |
%= | x %= y, 对应于x = x%y |
**= | x **= y,对应于x = x**y |
&= | x &= y,对应于x = x&y |
|= | x | = y,对应于x = x | y |
^= | x ^= y,对应于x = x ^y |
<<= | x <<= y,对应于x = x< |
>>= | x >>= y,对应于x = x >> y |
>>>算术运算符
在python 中的基本算术运算符有:加(+)、减(-)、乘(*)、除(/)、整除(//)、求余(%)、乘方(**)
/:除法运算符和数学中的计算相同,对于除不尽的数,会产生小数;
//:整除,运算结果只会得到整数部分,小数部分被舍弃
a = 9
b = 3
c = 5
d = 7
print(a / b,type(a / b))
print(a / c,type(a / c))
print(d / c,type(d / c))
print(a // b,type(a // b))
print(a // c,type(a // c))
print(d // c,type(a // c))
#运行之后的结果:
3.0 <class 'float'>
1.8 <class 'float'>
1.4 <class 'float'>
3 <class 'int'>
1 <class 'int'>
1 <class 'int'>
Process finished with exit code 0
>>>位运算符
位运算符通常在图形、图像处理和创建设备驱动等底层开发中使用。使用位运算符可以直接操作数值的原始bit位,尤其是在使用自定义的协议进行通信时,使用位运算符对原始数据进行编码和解码也非常有效。
python中的位运算符有以下六个:
符号 | 符号说明 |
---|---|
& | 按位与 |
| | 按位或 |
^ | 按位异或 |
~ | 按位取反 |
<< | 左位移运算符 |
>> | 右位移运算符 |
位运算符的运算法则
第一个操作数 | 第二个操作数 | 按位与 | 按位或 | 按位异或 |
---|---|---|---|---|
0 | 0 | 0 | 0 | 0 |
0 | 1 | 0 | 1 | 1 |
1 | 0 | 0 | 1 | 1 |
1 | 1 | 1 | 1 | 0 |
按位非,就是把操作数在计算机底层的二进制码按位取反
在计算机底层以补码的形式保存所有的整数。补码的计算规则:整数的补码和原码完全相同,负数的补码是其反码加1;反码是对原码按位取反,符号位保持不变。
左位移规则:将操作数的二进制码整体左移指定位数,左移后右边空出来的位以0来填补,左边超出的位被截断
右位移规则:将操作数的二进制码整体右移指定位数,左移后左边空出来的位以符号位来填补,右边超出的位被截断
位移运算符只适合对整数进行运算。进行位移运算只是得到了一个新的运算结果,而原来的操作数本身是不会改变的。
>>>索引运算符
索引运算符即方括号,在数据结构中常用,在使用索引范围时,即可使用单索引值,也可使用索引范围,同时可指定步长。
a = 'wenxinjin'
print(a[1])
print(a[1:6])
print(a[1:8:2])
#运行结果:
e
enxin
exni
Process finished with exit code 0
>>>比较运算符
在python中提供了bool类型来表示真或假,真用True带表,假用False来代表。
比较运算符用来判断两个值的大小,运算结果只有真或假;
python 中的比较运算符有:>、>=、<、<=、==、!=、is、is not
举例演示如下:
表达式 | 运算结果 |
---|---|
3 > 2 | True |
3 >= 4 | False |
4 < 3 | False |
4 <= 4 | True |
5 = 6 | False |
7 != 8 | True |
a=1,b=2 >>> a is b | False |
a=1,b=2>>> a is not b | True |
关于==与is看上去很相似,实质上是有区别的,==只表示比较两个变量的值,但is要求两个变量引用同一个对象。
import time
a = time.gmtime()
b = time.gmtime()
print(a,b,sep='\n')
print(a == b)
print(a is b)
#运行结果:
time.struct_time(tm_year=2021, tm_mon=1, tm_mday=20, tm_hour=14, tm_min=28, tm_sec=14, tm_wday=2, tm_yday=20, tm_isdst=0)
time.struct_time(tm_year=2021, tm_mon=1, tm_mday=20, tm_hour=14, tm_min=28, tm_sec=14, tm_wday=2, tm_yday=20, tm_isdst=0)
True
False
Process finished with exit code 0
>>>逻辑运算符
逻辑运算符用于操作布尔类型的变量、常量或表达式,返回的也是布尔值。
python中的逻辑运算符:
and:与,前后两个操作数都是True,结果才是True,否则返回False;
or:或,前后两个操作数有一个是True,结果就是True,否则返回False;
not:非,只需要一个操作数,操作数是False,结果就是True;操作数是False,结果就是True。
in 运算符
用于判断某个成员是否位于序列中
not in 与in相反
s = 'wenxinjin'
print('wen' in s)
print('liu' in s)
print('wen' not in s)
print('liu' not in s)
#运算结果
True
False
False
True
Process finished with exit code 0**