Python基础知识笔记(二)

一. 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)
continue 与 break 比较
 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 个字节。

原文地址:https://www.cnblogs.com/shawnhuang/p/10149459.html