Python基础(二)
今日主要内容
- while 循环
- 格式化输出
- 基本运算符
- 编码初识
一、while循环
(一)什么是while循环
- 循环就是反复,不断的重复某件事情,比如我们日常听歌单曲循环、列表循环
- 在程序中如果想要重复执行某些代码,不能说执行100次就重复敲100次代码,这里就利用到循环
- 在python中循环代码利用while关键字
(二)while循环的格式
- while
while condition:
循环体
- while else
while condition:
循环体
else:
result
(三)两种循环思想
-
死循环
- 当循环条件为1或真的时候,循环体将被无限次执行
while True: print("崩溃的郭老湿!") print("崩溃也开车!") print("精溢求茎的郭桑!") print("黑山老污郭!")
-
计数循环
- 利用条件控制循环次数
count = 0 while count < 2: print("人贱人爱的郭老湿!") # 打印三遍 count = count + 1
(四)break和continue
- break 和 continue 下方的代码都不会被执行
-
break
- 终止当前循环
count = 0 while count < 5: print("茎候佳阴的郭老湿!") # 打印三遍 count = count + 1 if count == 3: break # 当count加到3的时候终止循环
-
continue
- 跳出本次循环,继续下次循环
- 伪装成循环体的最后一行代码
count = 0 while count < 5: if count == 2: count = count + 1 continue count = count + 1 print(str(count)+"粪发涂墙的郭老湿!") # 当count等于3的时候跳出,继续下次循环
(五)两种格式的区别
-
while else 中 else下的代码块属于while
-
while循环结束后的代码块与while无关
- while
count = 1 while count < 5: print(count) count = count + 1 if count == 3: break print("疯牛涕淌的郭老湿!") # break跳出执行
- while else
count = 1 while count < 5: print(count) count = count + 1 if count == 3: break else: print("疯牛涕淌的郭老湿!") # break跳出不执行
(六)while嵌套
-
break只终止当前循环,当break在内层while中,对外层while无影响
-
理解程序自上而下运行的机制
count_a = 0 count_b = 0 while count_a < 5: print("a" + str(count_a), end=" ") count_a += 1 while count_b < 3: print("b" + str(count_b), end=" ") count_b += 1 if count_b == 1: break
输出结果:a0 b0 a1 b1 b2 a2 a3 a4
二、格式化输出
(一)什么是格式化输出
-
先看一个例子
- 输入每个人的信息,并以下面代码块格式输出
*******info******** name:ZXD age:23 sex:nan hobby:年轻漂亮小姐姐 *******************
- 直接用print输出
a = "*******info********" b = "name:" c = "age:" d = "sex:" e = "hobby:" f = "*******************" name = input("name:") age = input("age:") sex = input("sex:") hobby = input("hobby:") print(a) print(b + name) print(c + age) print(d + sex) print(e + hobby) print(f)
- 很长很麻烦,如果利用格式化输出,将变成这个样子
name = input("name:") age = input("age:") sex = input("sex:") hobby = input("hobby:") info = '''*******info******** name:%s age:%s sex:%s hobby:%s ******************* ''' print(info % (name, age, sex, hobby))
- 还可以这样写(python3.6及以上版本可以使用f)
name = input("name:") age = input("age:") sex = input("sex:") hobby = input("hobby:") info = f'''*******info******** name:{name} age:{age} sex:{sex} hobby:{hobby} ******************* ''' print(info)
-
格式化输出就是:可以利用固定的格式,需要变化的部分利用占位符占位,在%后按照占位顺序依次输入
(二)格式化输出写法
-
格式化输出共有三种写法
- 占位符法
- 小f(仅支持python3.6及以前版本)
- format() 方法
md1 = "My name is %s, I'm %s years old." % (name, age) md2 = f"My name is {name}, I'm {age} years old." md3 = "My name is {}, I'm {} years old.".format(name, age)
-
转义符:两个相同的符号就是转义符,如 %%
t = "今日笔记完成进度为%d%%" % count # %% 代表 %
-
占位符类型
- %s:可以填充字符串,也可以填充数字
- %d:可以填充数字
三、基本运算符
(一)比较运算符
-
> 大于 < 小于 >= 大于等于 <= 小于等于 == 等于 != 不等于 <> 不等于(3.7版本以上) -
a = 10 b = 5 print(a > b) # True print(a < b) # False print(a >= b) # True print(a <= b) # False print(a == b) # False print(a != b) # True print(a <> b) # True
(二)算术运算符
-
+ 加 - 减 ***** 乘 / 除 // 整除(地板除) ****** 幂 % 模(取余) -
a = 4 b = 2 print(a + b) # 6 print(a - b) # 2 print(a * b) # 8 print(a / b) # 2 print(a // b) # 2 print(a ** b) # 16 print(a % b) # 0
(三)赋值运算符
-
= 等于 += 加等于 -= 减等于 *= 乘等于 /= 除等于 //= 整出等于 ******= 幂等于 %= 模等于 -
a = 2 a += 2 # 等价于:a = a + 2 a -= 2 # 等价于:a = a - 2 a *= 2 # 等价于:a = a * 2 a /= 2 # 等价于:a = a / 2 a //= 2 # 等价于:a = a // 2 a **= 2 # 等价于:a = a ** 2 a %= 2 # 等价于:a = a % 2
(四)逻辑运算符
-
and 与 or 或 not 非
- 优先级:()> not > and > or
- 查找顺序:按照优先级从左向右
- True 和 False 进行逻辑运算时
- and:同真为真,其余为假
- or:同假为假,其余都真
- 数字进行逻辑运算时
- and:前面是0,就是前面;前面不是0,就是后面
- or:前面是0,就是后面;前面不是0,就是前面
- 推荐记忆:记一个就行,另一个是反着的
- or:前面不是0,就是前面
2 or 8 # 2
(五)成员运算符
-
in 在 not in 不在 -
name = "ZXD" print("ZXD" in name) # True print("zxd" in name) # False
四、编码初识
(一)ASCII码
- 最早的编码,包含数字 + 字母 + 特殊字符
- 每个字符用一个字节(8位)来表示
(二)GBK
- 国标码,涵盖ASCII码,只能中国使用
- 英文:一个字节(8位)表示
- 中文:两个字节(16位)表示
(三)Unicode
- 万国码,涵盖所有国家语言
- 每个字符都用四个字节(32位)表示
- 浪费资源,浪费内存
(四)UTF-8(最流行的编码集)
- 可变长度编码
- 英文:一个字节(8位)表示
- 欧洲文字:两个字节(16位)表示
- 中文:三个字节(24位)表示
(五)单位转换
- 1字节 = 8位
- 1Bytes = 8bit
- 1024Bytes = 1KB
- 1024KB = 1MB
- 1024MB = 1GB
- 1024GB = 1TB
- 1024TB = 1PB