一. if 小知识
1 if 2 > 1: 2 print(666) 3 if 3 > 2: 4 print(111) 5 else: 6 print(222) 7 8 # 这里的两个 if 语句之间是没有关系的, 下面的 if 只能 else 语句是一个代码块 9 # 因此两者之间的结果不受影响,故打印结果是 10 # 666 11 # 111
二. while 循环相关知识点
1 while True: 2 print("凉凉") 3 print("起风了") 4 5 print(666) 6 7 # 注意这里的 while 语句是一个死循环,所以不会打印出 666 这个结果
1 flage = True 2 3 while flag: 4 print("凉凉") 5 print("起风了") 6 flag = False 7 print("还会运行") 8 9 # 在 while 循环里加了 flag = True 这个条件,这样就不再是死循环了 10 # "还会运行" 能打印出来,因为循环会把缩进的内容都打印出来,不会因为上面的 flag = True 这个条件就马上结束 while 循环的运行 11 # 注意与下面的 break 语句对比
1 # break — 直接终止循环 2 3 while True: 4 print(111) 5 print(222) 6 break 7 print(333) 8 9 # 这个程序与上面的结果不同,这里会打印出 111 222 ,但是不会打印出 333 10 # 注意与下面的 continue 语句比较
1 # continue — 中断本次循环,接着下一次循环 2 3 # 打印出 1-10 的所有数字(7除外) 4 5 # 方法一 6 # 同时使用 continue 和 break 进去 7 count = 0 8 9 while True: 10 count = count + 1 11 if count == 7: 12 continue 13 if count == 11: 14 break 15 print(count) 16 17 # 方法二 18 count = 0 19 20 while count < 10: 21 count = count + 1 22 if count == 7: 23 continue 24 print(count) # 注意 print 的位置不在 if 语句缩进内容 25 26 # 方法三 27 count = 0 28 29 while count < 10: 30 count = count +1 31 if count == 7: 32 pass 33 else: 34 print(count) 35 36 # 方法四 37 count = 0 38 39 while count < 10: 40 count = count + 1 41 if count == 7: 42 count = count + 1 43 print(count)
1 # 使用 while 循环打印出 1-100 2 3 # 方法一 4 number = 0 5 6 while number < 100: 7 number = number + 1 8 print(number) 9 10 # 方法二 11 count = 1 12 flag = True 13 14 while flag: 15 print(count) 16 count = count + 1 17 if count == 101: 18 flag = False 19 # 这种方法貌似更麻烦,但是用法必须会
1 # 从 1 加到 100 使用 while 循环 2 3 # 方法一:不使用 break 语句 4 count = 1 5 sum1 = 0 6 7 while count < 101: 8 sum1 = sum1 + count 9 count = count + 1 10 11 print(sum1) 12 13 # 方法二:使用 break 语句的用法 14 count = 1 15 sum1 = 0 16 17 while True: 18 sum1 = sum1 + count 19 count = count + 1 20 if count == 101: 21 break 22 23 print(sum1)
1 # 另外,在 while - else 循环中,如果 while 循环中有 break 语句, 那么下面的 else 语句不执行。 2 # for...in - else 语句是一样的用法 注意:两个都必须有break的情况下用 else 语句来分流 3 count = 0 4 5 while count < 5: 6 count += 1 7 print("计数", count) 8 9 else: 10 print("到这里程序结束.") 11 12 # 注意与下面的比较 13 14 count = 0 15 16 while count < 5: 17 count += 1 18 if count == 3: break 19 print("计数", count) 20 21 else: 22 print("这个 else 语句不会执行.")
三. 使用 格式化输出 来制作一个公共模板
1 # %-占位符 s-字符串 d-数字 2 3 name = input("请输入姓名:") 4 age = input("请输入年龄:") 5 job = input("请输入工作:") 6 hobby = input("请输入爱好:") 7 8 msg = ''' 9 -------- info of %s -------- 10 Name: %s 11 Age: %s 12 Job: %s 13 Hobby: %s 14 ---------- end ---------- 15 ''' % (name, name, age, job, hobby) 16 17 print(msg) 18 19 # 这里注意一个小坑,如果需要在格式化输出中把 % 当作占位符,需要写两个 %
四. 运算符相关知识
1. 优先级:
( ) > not > and > or
Python运算符优先级
以下表格列出了从最高到最低优先级的所有运算符:
运算符 描述
** 指数 (最高优先级)
~ + - 按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@)
* / % // 乘,除,取模和取整除
+ - 加法减法
>> << 右移,左移运算符
& 位 'AND'
^ | 位运算符
<= < > >= 比较运算符
<> == != 等于运算符
= %= /= //= -= += *= **= 赋值运算符
is is not 身份运算符
in not in 成员运算符
not and or 逻辑运算符
2. 数据之间的转换
1 # 整数型转为布尔值 int ---> bool 2 3 print(bool(-2)) # True 4 print(bool(0)) # False 5 print(bool(4)) # True 6 7 # 由此可见,只要整数不是 0, 那么它的布尔值就是 True 8 9 10 # 布尔值转为整数型 bool ---> int 11 # 布尔值就两个, True False 12 13 print(int(True)) # 1 14 print(int(False)) # 0 15 16 # 布尔值 True 转为 整数型 即为 1,因此在 while 循环中 17 # while True 等同于 while 1 18 19 20 # 字符串转为整数型 str ---> int 21 # 转换前提是 字符串必须都是由数字组成 22 23 print(int('100'), type(int('100'))) # 100 <class 'int'> 24 25 26 # 整数型转为字符串 int ---> str 27 28 print(str(100), type(str(100))) # 100 <class 'str'> 29 30 31 # 字符串转为布尔值 str ---> bool 32 33 print(bool('askdjalk'), type(bool('askdjalk'))) # True 34 print(bool('0'), type(bool('0'))) # True 35 print(bool('000'), type(bool('000'))) # True 36 print(bool('111'), type(bool('111'))) # True 37 print(bool(""), type(bool(""))) # False 38 39 # 由此可见,字符串转为布尔值只需记住一点:非空即True 40 41 42 # 布尔值转为字符串 bool ---> str 43 44 print(str(False), type(str(False))) # False <class 'str'> 45 print(str(True), type(str(True))) # True <class 'str'> 46 # 这个和整数型转为字符串一样,就直接变成字符串了
补充: 如果一个字符串的引号之间没有内容,但是有空格隔开,比如 s = " ",哪怕有一个空格,那这个 s 也是一个字符串,不是空字符串!
3. 运算符的几种方式
1 # 两边都是不等式 2 3 print(1 < 2 and 3 > 4 or 2 > 1 and 5 < 2) 4 5 # 比较方法如下 6 # 先比较两个 and 的内容 7 # 首先第一个 and 左右两边, 1 < 2 为 True, 3 > 4 为 False. 8 # 这样就转为 True and False , 结果为 False (and 两边都为真才是真) 9 # 依次推出第二个 and 的比较, 结果为 False 10 # 这样就变成 False or False , 结果为 False (or 两边只要有一个是真即为真)
1 # 运算符两边都是数字 2 # 只需记住这一点: 3 # x or y 中, 如果 x 为 True, 那么比较结果即是 x,否则结果是 y. 4 # x and y 的情况与 x or y 的情况相反,只需记住上面的情况即可! 5 6 print(0 or 4 and 3 or 7 or 9 and 6) # 3 7 8 # 比较方法如下: 9 # 先比较两个 and 的内容 10 # 首先,4 and 3 , 如果是 or,4 为 True,结果即是 4. 但这里是 and, 结果即为 3 11 # 然后 9 and 6, 推断过程一样,结果即为 6 12 # 接下来就是 0 or 3 or 7 or 6 13 # 先比较 0 or 3,0 为 False,结果是 3 14 # 依次类推,剩下的是 3 or 7 or 6。 3 or 7 结果是 3 15 # 此时变为 3 or 6, 同理结果是 3 16 17 print(0 and False) # 0 18 19 # 比较方法如下: 20 # 先比较 0 or False, 0 为 False, 所为结果是 y, 即 False。 21 # 这里是 and 比较,所以结果反过来,即为 0 22 # 注意不要反过来的时候反错了,我一开始就把 False 反过来变为 True...
4. in 的判断方法
1 print("喜欢" in "akljslkaj喜欢jlkaj") # True 2 3 print("喜欢" in "sajdkl喜3欢akjslk") # False 4 5 # 注意这里的 "喜欢" 是一个整体
五. 字符编码相关知识
1. 编码的定义:
简单来说,编码就是人类能识别的文字与机器能够读懂的二进制的对应关系表。
2. ASCII:
最早的编码本,只包含:数字、字母、特殊字符
8位(bit)一个字节表示一个字符
3. Unicode:
万国码——将全世界所有的语言都包含进去
早期:
16位(bit)两个字节表示一个字符
升级:
32位(bit)四个字节表示一个字符
4. UTF-8:
a: 一个字节表示一个字符
欧:两个字节表示一个字符
中: 三个字节表示一个字符
5. GBK:
每个国家都有每个国家的标准
a: 一个字节表示一个字符
中:两个字节表示一个字符
注意:
数字、字母、特殊字符映射的是 ASCII
6. 示例:
"Python学习"
Unicode中,占用 32 个字节——不管是汉字还是字母,都是四个字节表示一个字符,这里有 6 个英文字符和 2 个中文字符
UTF-8中,占用 12 个字节。同理推出,在 GBK 中,占用 10 个字节。