閑人壹のPython笔记.2021.08.01
1.注释 & 缩进 & 编码规范 & 基本输入输出
1.1 注释
1、单行注释:代码块后,以 “#” 开头的代码说明,如:
bin2 = bin.zfill(8) # 将变量 bin 补足8位
2、多行注释:在一对 “ ‘’’ ” 内的内容,如:
'''
閑人壹
練習作品
自娛自樂
'''
3、中文编码声明:用来标识文件内所使用的中文编码格式
#coding=utf8 # 中文编码声明中 “#” 后没有空格
1.2 代码缩进
Python 执行严格代码缩进,同一级代码块缩进量必须相等,否则抛出:SyntaxError,语法错误:
实例代码:
b1 = 1
if b1 == 0:
b11 = 0 #缩进量相等
else:
b11 = 128 #缩进量相等
print(b11)
1.3 代码编写规范
1.4 命名规范
1.5 基本输入输出
-
基本输入
函数: input() ,说明:接收键盘输入,示例:
python 语法: input([prompt]) 实例代码: a = input("两个字别多录:") print(a) 输出结果: 两个字别多录:输三个,又咋滴! 输三个,又咋滴!2
-
基本输出
函数:print() ,说明:用于打印输出,结果可输出到屏幕,也可写入文件,示例:
语法: print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False) 参数: objects -- 复数,表示可以一次输出多个对象。输出多个对象时,需要用 , 分隔。 sep -- 用来间隔多个对象,默认值是一个空格。 end -- 用来设定以什么结尾。默认值是换行符 \n,我们可以换成其他字符串。 file -- 要写入的文件对象。 flush -- 输出是否被缓存通常决定于 file,但如果 flush 关键字参数为 True,流会被强制刷新。 代码1: a = "输出测试" print(a) 输出结果1: 输出测试 代码2: print("print()函数 输出内容到外部文件测试") # 直接输出内容 test1 = input("录入人ID:") # 第一个变量赋值 test2 = input("请输入测试内容:") # 第二变量赋值 import datetime #调用时间模块 fp = open(r'test.log','a+') # 打开或创建 test.log print("录入人:",test1," " +datetime.datetime.now().strftime('%y-%m-%d %H:%M:%S'),file=fp) # 写入变量1及日期时间 print(test2,file=fp) # 写入变量2 fp.close() #关闭文件 print("内容已录入文件") # 结束 输出结果2: print() 函数 输出内容到外部文件测试 录入人ID:0001 请输入测试内容:test 内容已录入文件 test.log 文件内容: 录入人: 0001 21-07-09 15:25:07 test
2. 变量 & 数据类型 & 运算符
2.1 保留字
保留字是 Python 中已经被赋予特殊意义的单词,不能作为函数、变量、类、模块或其他对象的命名,如下:
保留字 | 说明 |
---|---|
and | 用于表达式运算,逻辑与操作 |
as | 用于类型转换 |
assert | 断言,用于判断变量或条件表达式的值是否为真 |
break | 中断循环语句的执行 |
class | 用于定义类 |
continue | 继续执行下一次循环 |
def | 用于定义函数或方法 |
del | 删除变量或者序列的值 |
elif | 条件语句,与if else 结合使用 |
else | 条件语句,条件语句,与if,elif结合使用。也可以用于异常和循环使用 |
exceptexcept | 包括捕获异常后的操作代码,与try,finally结合使用 |
exec | 用于执行python语句 |
for | 循环语句 |
finally | 用于异常语句,出现异常后,始终要执行finally包含的代码块。与try,except结合使用 |
from | 用于导入模块,与import结合使用 |
global | 定义全局变量 |
if | 条件语句,与else,elif结合使用 |
import | 用于导入模块,与from 结合使用 |
in | 判断变量是否存在序列中 |
is | 判断变量是否为某个类的实例 |
lambda | 定义匿名函数 |
not | 用于表达式运算,逻辑非操作 |
or | 用于表达式运算,逻辑或操作 |
pass | 空的类,函数,方法的占位符 |
打印语句 | |
raise | 异常抛出操作 |
return | 用于从函数返回计算结果 |
try | 包含可能会出现异常的语句,与except,finally结合使用 |
while | 循环语句 |
with | 简化Python的语句 |
yield | 用于从函数依次返回值 |
2.2 标识符 & 变量
-
标识符
标识符: 是用来表示变量、函数、类、模块很其他对象的名称。
标识符命名规则:
1)由字母、下划线、数字组成,且第一个字符不能是数字;
2)避免使用下划线开头;
3)不能包含空格、@、%、$ 等特殊符号,可使用汉字;
4)不能使用保留字。
-
变量
变量: 当一个名字被赋予一个值,这个名字就是变量,赋值通过 “ = ” 实现。
变量命名规则:
1)变量名必须是有效的标识符;
2)慎用先写字母 “ i " 和 大写字母 ” O “;
3)应选择有意义的单词做变量名;
4)不能使用保留字。
2.3 基本数据类型 & 数据类型转换
-
整数:
即数学意义上的整数:正整数、负整数、0,包括 十六进制、十进制、八进制、二进制。
-
浮点数
用于处理包括小数点的数,如:3.1415926
-
复数?
z=a+bi(a、b均为实数)的数称为复数。其中,a 称为实部,b 称为虚部,i 称为虚数单位。
-
字符串
连续的字符序列,Python中字符串属于不可变序列,不能参与算数算,通常用 ‘单引号’ 、“双引号”、’’‘三引号’’’ 括起来。
-
布尔型
用来表示 真 或 假 的值。标识符:True 和 False,被解释位 True (真) 为1,False (假) 为 0 。
-
数据类型转换
函数 作用 int() 将数字转换为 整数型 float() 将数字转换为 浮点数 str() 将数字转换为 字符串 bin() 将数字转换为 2进制 oct() 将数字转换为 8进制 hex() 将数字转换为 16进制 chr(i) 返回 整数i 对应的 ASCII码 ord(x) 返回 x 对应的 ASCII码
2.4 运算符
运算符 是用于数学计算、比较大小 和 逻辑运算等的特殊符号。将不同类型的数据按一定规则连接起来的式子就是 表达式,不同类型的运算符构成不同的表达式。
-
爱算数 の 算术运算符
运算符 说明 实例 + 加 1 + 1 = 2 - 减 2 - 1 = 1 * 乘 2 * 3 = 6 / 除 7 / 2 = 3.5 % 求余 7 % 2 = 1 // 取整除 7 // 2 = 3 ** 幂 2 ** 4 = 16,即:24 -
送礼物 の 赋值运算符
运算符 说明 实例 展开形式 = 等于 x = y 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 -
会攀比 の 比较运算符
即关系运算,用于对变量或表达式的结果进行大小、真假等比较,比较为真则返回 True ,假则返回 False。
运算符 说明 实例 值 > 大于 ‘a’ > ‘b’ False < 小于 156 < 500 True == 等于 ‘c’ == ‘c’ True != 不等于 ‘x’ != ‘y’ True >= 大于等于 111 >= 110 True <= 小于等于 62.45 <= 45.5 False -
超硬核 の 逻辑运算符
逻辑运算符对真和假两种布尔值进行运算,运输后的结果仍认识布尔值。
运算符 说明 用途 结果 and 逻辑与 op1 and op2 一假则假 or 逻辑或 op1 ro op2 一真则真 not 逻辑非 not op 真假互变 -
好变脸 の 位运算符
位运算符用于二进制数进行计算,因此,需要先将要执行的数值转换为二进制数,多用于数字加密。
5.1 “ 位与 ” 运算,运算符:& ,运算规则:有 0 即为 0 ,示例:
1 0 1 0 1 1 0 1
& 0 1 1 1 0 0 0 0
0 0 1 0 0 0 0 0
5.2 “ 位或 ” 运算,运算符: | ,运算规则:有 1 即为 1 ,示例:
1 0 1 0 1 1 0 1
| 0 1 1 1 0 0 0 0
1 1 1 1 1 1 0 1
5.3 “ 位异或 ” 运算,运算符:^ ,运算规则:全 0 全 1 即为 0,示例:
1 0 1 0 0 1 0 1
^ 0 1 1 1 0 0 0 0
1 1 0 1 0 1 0 1
5.4 "位取反 " 运算,运算符:~ ,运算规则:0 变 1 ,1 变 0 ,示例:
~ 0 1 1 1 0 0 0 0
1 0 0 0 1 1 1 1
5.5 “ 左移位 ” 运算,运算符:<< ,运算规则:将一个二进制操作数向左移动指定的位数,丢弃高位端(左 侧)溢出数据,低位端(右侧)空位由 0 补充,示例: (10001111 << 4)= 11110000
-
6 “ 右移位 ” 运算,运算符:>> ,运算规则:将一个二进制操作数向右移动指定的位数,丢弃低位端(右侧)溢出数据,在填充高位端(左侧)空位时,如最高位为 0 (整数),则空位由 0 补充;如最高位为 1(负数),则空位由 1 补充,示例:
示例1: (10001111 >> 4)= 11111000
示例2: (00011111 >> 4)= 00000001
5.7 运算符的优先级
序列 运算符 说明 1 ** 幂 2 ~ 、 + 、- 取反 、 正号 、 负号 3 * 、 / 、% 、// 算数运算符 4 + 、- 算数运算符 (加、减) 5 << 、>> 位运算(左右位移) 6 & 位运算(位与) 7 ^ 位运算(位异或) 8 | 位运算(位或) 9 < 、<= 、> 、 >= 、!= 、== 比较运算符 -
3. 流程控制 & 选择 & 嵌套 & 循环 & 跳转
3.1 流程控制
-
程序运行流程主要分为:顺序结构、选择结构、循环结构
3.2 选择语句:if、if…else、if…elif…else……
-
if : 如果就,示例:
如果 n 大于 9 为 多位数: n = int(input("输入一个整数:")) if n > 9: print(n,"为多位数")
-
if…else…… :如果…就… ,示例:
如果 n 小于等于 9 为 多位数,否则 为单位数: n = int(input("输入一个整数:")) if n <= 9: print(n,"为单位数") else: print(n,"为多位数")
-
条件表达式,即:简化的 if…else… 语句,可以有条件的对变量进行赋值,计算过程:先计算中间的条件,如果为真,返回 if 左边的值,否则返回 else 右侧的值。
if 语句表述如下:
a = 10 b = 9 if a > b: r = a else: r = b
条件表达式如下:
a = 10 b = 9 r = a if a > b else r = b
-
if…elif…else…… :如果…就…否则… ,示例:
n = int(input("输入一个整数:")) if n <= 9: print(n,"为单位数") elif n > 9 and n < 100: print(n,"为2位数") elif n > 99 and n <1000: print(n,"为3位数") elif n > 999 and n <10000: print(n,"为4位数") else: print(n,"数字太大,数不清啊!!!")
3.3 if 语句嵌套
-
if 嵌套 if…else…
if 表达式 1: if 表达式 2: 语句块 1 else: 语句块 2:
-
if…else… 嵌套 if…else…
if 表达式 1: if 表达式 2: 语句块 1 else: 语句块 2: else: if 表达式 3: 语句块 1 else: 语句块 4:
3.4 循环语句
1、while 一直重复,直到条件不满足时停止。
2、for 重复一定次数,通常用于 迭代、枚举、遍历
-
while 循环
while 循环语法:
while 条件表达式: 循环体
示例:
tiaojian = True # 循环控制变量 jishu = 0 # 计次变量从 0 开始 while tiaojian: # 循环控制 jishu += 1 # 每循环一次加1 if jishu > 10 and jishu < 20: # 循环次数条件 print(jishu) tiaojian = False 返回结果: 11
-
for 循环
for 循环语法:
for 迭代变量 in 对象: 循环体
示例:
for jishu in range(21): if jishu >= 19 and jishu <= 20: print(jishu) 返回结果: 19 20
range() 函数
range() 函数可创建一个整数列表,一般用在 for 循环中。 函数语法 range(start, stop[, step]) 起始值,终止值,步长 起始值默认为 0,步长默认为 1 参数说明: start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5); stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5 step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)
示例 2,99乘法表:
for h in range(1,10): for l in range(1,h+1): print(str(l) + "×" + str(h) + "=" + str(l*h) + "\t" , end = '') print("") ''' 输出格式控制参数说明: \t 使连列之间间隔一个tab键 end = '' 使每组数据成行显示 最后的 print("") 使每组数据输出完成后换行, 如果在第3行末尾使用 \n 会是每一个数据输出后换行一次 ''' 返回结果: 1×1=1 1×2=2 2×2=4 1×3=3 2×3=6 3×3=9 1×4=4 2×4=8 3×4=12 4×4=16 1×5=5 2×5=10 3×5=15 4×5=20 5×5=25 1×6=6 2×6=12 3×6=18 4×6=24 5×6=30 6×6=36 1×7=7 2×7=14 3×7=21 4×7=28 5×7=35 6×7=42 7×7=49 1×8=8 2×8=16 3×8=24 4×8=32 5×8=40 6×8=48 7×8=56 8×8=64 1×9=9 2×9=18 3×9=27 4×9=36 5×9=45 6×9=54 7×9=63 8×9=72 9×9=81
-
循环嵌套语法
1、while 嵌套
while 条件表达式1: while 条件表达式2: 循环体2 循环体1
2、for 嵌套
for 迭代变量1 in 对象1: for 迭代变量2 in 对象2: 循环体2 循环体1
3、while 嵌入 for
while 条件表达式1: for 迭代变量1 in 对象1: (for)循环体 (while)循环体
4、for 嵌入 whil
for 迭代变量1 in 对象1: while 条件表达式1: (while)循环体 (for)循环体
3.5 跳转语句
-
break 语句
完全中止循环(2话不说,掐死完事)
-
continue 语句
中止本次循环,提前进入下一次循环中,使用方法:
while 循环下: while 条件表达式 1: 执行代码 if 条件表达式 2: continue for 循环下: for 迭代变量 in 对象: if 条件表达式 1: continue
-
pass 空语句
空语句 Pass 不做任何处理,一般起到占位符的作用。