-----------------------------------------------------------------------------
注意:
下文中,引用和 Python 开发环境相同的风格,看到如下情况:
'''
这里面的内容其实都是注释,可以多行显示的注释.
'''
(在Python里,注释的前后文分别使用三个 ' 包裹,这表示可以换行的注释)
-----------------------------------------------------------------------------
以下是正文:
# 井号表示的是一个注释,注释的目的是为了对代码进行说明,
#注释是给程序员看的,是给人看的,计算机不DIAO你的注释
#注释在本行有效,换行失去注释的功能
#在python中,除了单行注释之外,还有多行注释,允许换行,但是需要使用如下方法:
'''
这上面的三个单引号作为注释的开始符号,再以最后一行的三个单引号作为注释的终止符号
这是多行注释
允许在里面换行
'''
#注释代码的快捷键:Ctrl+/(重要,重要,重要)
# 注释写在代码之后,养成写代码注释的好习惯
print("hello world!!")#在控制台打印输出 ===>hello world
——在你决定阅读下面的笔记之前,请认真阅读以上内容。
'''
01 & 02.Python里的数据类型
1.数字类型:int(整数型),float(浮点型),complex(复数型)
1.1 整数类型分为二进制,八进制,十进制,十六进制。在Python里都可以表示上述类型。
1.2 二进制以 0b 作为开头表示
1.3 八进制以 0o 作为开头表示(在Python2中,以 0o 或者 0 开头的数字都表示八进制,但是在Python3中,只允许使用0o表示八进制)
1.4 十六进制以 0x 作为开头表示:0 1 2 3 4 5 6 7 8 9 a b c d e f (所以 f 是十六进制中最大的数字)
1.5 怎么把十进制转换成二进制呢:用十进制数字除以2,不断的取余数,然后从下往上列举出即可。
一个二进制是一位(即1个byte,简写1b),一个字节是八位(8个byte,简写为8b)
1kb=1024b
1mb=1024kb
三个二进制表示一个八进制
举例子:十进制数字 23
二进制数字 0b10111
八进制数字 0o27
十六进制 0x17
1.6 怎么把二进制转化成十进制呢?
1.7 二进制转八进制
1.8 二进制转十六进制
2.其他类型
2.1 字符串类型:str
2.2布尔类型:bool
2.3列表类型:list
2.4元祖类型:tuple
2.5字典:dict
2.6集合:set
【以上类型会在后续的笔记中详细讲解。】
03.使用代码进行进制转换
3.1 使用bin()可以将二进制转换成十进制 #print(bin(这里填写变量名称))
3.2 使用oct()可以将八进制转换成十进制 #print(oct(这里填写变量名称))
3.3 使用hex()可以将十六进制转换成十进制 #print(hex(这里填写变量名称))
04.数据类型的转换
4.1 进制转换:表示是将int类型的数字在不同进制之间的转换
4.2 类型转换:将一个类型的数据转换为其他类型的数据(int==>str; str==>int; bool==>int; int==>float)
4.3 问题:为什么要转换数据类型?因为不同的数据类型在进行运算时,运算规则不同,所以需要把数据按照对应的规则在进行计算。
05.转换成为整数
5.1 使用 int() 内置类可以将变量(数据)转换成为整数
5.2 使用 float() 内置类可以转换成为浮点数
5.3 使用 str() 转换成为字符串
5.4 使用 bool() 内置类可以将其他的数据类型转换成为布尔值 bool(100),在数字里,有且只有把0转换为布尔值时为False。
5.4.1 除了数字0之外,其余数字转换为布尔值时均为True,字符串转换为布尔值的时候也是True.
5.4.2 如果把 False 转换为布尔值的时候,其结果也是True.
5.4.3 在字符串里,只有空字符串可以转成 False ,其余都是转换为 True .
5.4.4 None 表示没有,因此转换为布尔值的结果也是 False .
5.4.5 空的列表转换为布尔值结果也是 False,代码表达方式 print(bool([])) # 结果也是False
5.4.5 空的元祖转换为布尔值的结果也是 False,代码表达方式 print(bool(())) # 结果也是False
5.4.6 空的字典转换为布尔值的结果也是False,代码表达方式 print(bool({})) # 结果也是False
总结:在Python里,只有 空字符串 ‘’ “” 数字0 空字典{} 空列表[] 空元祖() 空数据None 会被转换为False,
其余都会被转换成为True.
5.5 空的集合 set() 也可以被 bool 转换为 False .
举例:
s = set() #这表示一个空的集合
print(bool(s)) #这时候打印输出的结果是False
5.6 隐式类型转换
if 3 > 2:
print("hello")
'''
# 下面是代码示例练习
a = 98 # 一般默认为十进制,所以这里写的98为十进制的十字类型b = 0b1010100101001 #在Python里,以 0b 开头的数字为二进制类型的数据,在二进制中最大的个位数是1,没有2print(a,b,sep="+")c = 0o555d = 0x555e = 0x01aprint(d,e,sep="+")m = 45print(m) #注意,这里写出 m = 045 (在Python3里,已经不允许这样赋值了。)print(bool(100)) # 将数字100转换成为布尔值print(bool('')) #空字符串 ‘’print(bool("")) #空字符串 ""print(bool([])) #空列表print(bool(0)) #数字0print(bool({})) #空字典print(bool(())) #空元祖print(bool(None)) #空数据print(True+1) #输出结果为2print(False+1) #输出结果为1if 3 > 2: print("hello")if 1: print("good") #此时如果是0的话,转换为布尔值为False,因此不能被转换
'''
6.标识符和关键字课堂笔记
6.1 标识符的分类:变量名称,模块的名称,函数名称,类名称
6.2 标识符的命名规范与规则:
6.2.1 由数字,字母和下划线组成,不能以数字开头(铁律);
6.2.2 严格区分大小写,计算机编程里一共有52个英语字母,大写和小写均为不同的字符
6.2.3 不能使用关键字,在Python里,有特殊含义的单词都不能使用
(比如True/False/if/for/in/while/None/from等等这些都是不可以被用来作为变量命名的。)
6.3 什么是规范:建议遵守的规矩就是规范,这样显得专业易读。
6.3.1 一般不使用汉语言文字,单独的一个字母来作为变量的名字(最好做到顾名思义,使用简短的英文单词或者缩略词作为命名规范)
6.3.2 小驼峰命名法:第一个单词的首字母小写,以后的每个单词的首字母大写,例如userNameAndPassword
6.3.3 大驼峰命名法:每个单词的首字母都是大写的,PersonModel
6.3.4 使用下划线连接:user_name_password
6.3.5 在Python里,变量、函数和模块名称使用下划线连接;Python里的类名使用大驼峰命名法。
'''
# 下面是代码示例练习
a=23 # 这里,a就是标识符,这是一个赋值运算语句a_b = "hello" # OK,no problem_x = "goodmorning!" # OK,no problemx3b = "yes mandem" # OK,no problem3m = "hahahah" # 注意,这里就会有报错,开头不能用数字(铁律)m="hello kugou"print(M) # 注意,这报错了
'''
07.Python里的输出语句
(print(value,...,sep="+",end="\n",file=sys.stdout,flush=False)
7.1.Python里使用 print内置函数 来输出内容
7.2.value 表述要打印输出的内容
7.3.sep= 参数用来表示输出时,每个值之间使用哪种字符来作为分隔符。默认使用空格作为分隔符。
7.4.end= 当执行完一个 print 语句以后,接下来要输出的字符。默认值为 \n表示换行
7.5.file 表示文件操作,读取文件。(以后详细讲解)
08.输入语句的使用
8.1.Python里使用 input() 内置函数接收用户的输入信息,注意【#在括号内使用双引号包裹提示内容】
8.2.input()==> #注意,要在括号里填写提示信息。
8.3.定义一个变量可以保存用户输入的信息。
'''
# 下面是代码示例练习
print("hello","hi","baby","what","is","your","name","?",sep="+") # 这里使用sep=后加"+"作为分隔符password = input("请输入您的银行卡密码:") #在括号内使用双引号包裹提示内容print(password)age = input("请告诉我你的年龄是多少:") #不管用户输入的是什么,变量保存的结果都是字符串print(type(age))age_now = input ("请输入您的年龄:") #输入您的年龄age_now = int(age_now) #使用 int 内置类 该功能可以将age_now转换成整数数字age_before = (age_now - 2) #变量之间的运算,此时变量 age_now 已经被转换成了整数,可以和数字进行数学运算print(age_before)
'''
09.算数运算符的使用
9.1 Python支持的运算符如下:
+ 加法运算
- 减法运算
* 乘法运算
/ 除法运算
** 幂运算
// 整除
% 取余
9.2 在Python3中,两个整数相除得到的结果为浮点数(float),而在Python2里,两个整数相除得到的结果是一个整数(例如 10/2=>>>3)
9.3 关于幂运算,用两个连续的 ** 表示幂运算,也叫做指数运算。
9.4 开方的表达方式(用某个数的 0.5 次方)
9.5 整除运算 使用 // 表示整除
9.6 取余数的运算 % 注意:当除数大于被除数的时候,余数和被除数相等
'''
#下面是代码示例练习
print(1+1) #计算 1+1 的和print(4-2) #计算 4-2 的差print(5/4) #计算5除以4的商print(6/2) # 结果是3.0 (float)print(9/2) # 结果是4.5 (float)print(3**2) #计算3的二次方的结果(幂运算)print(3**0.5) #计算3的0.5次方的结果(幂运算)print(27**(1/3)) #计算3的 1/3 次方的结果(幂运算)print(10%3) # 读作 10 模于运算 3 取余1print(1928%9876) # 其运算结果是1928 注意:当除数大于被除数的时候,余数和被除数相等
'''
10.算数运算符在字符串里的使用
10.1 字符串里有限度的支持加法和乘法的运算符
10.2 加法运算符:只适用于两个字符串类型的数据,用来拼接两个字符串
10.3 在Python里,数字和字符串之间不可以做加法运算
10.4 乘法运算,字符串使用乘法计算会以乘数为倍数的方式在后面续接
(这种方式只在Python语言适用,其他语言并不支持这种编译方式)
print("hello"*2) #=>>> hellohello
注意:字符串除了支持上述运算符之外,其余的运算符并不支持
'''
# 以下为代码举例
print("hello"*2) # hellohello
'''
11.赋值运算符
11.1 一般使用 = 表示赋值运算符
11.2 在计算机编程里, = 表示赋值运算,表示将等号右边的数字赋值给等号左边的变量。
11.3 += -= *= /= **= //= %= 以上这些表示复合赋值运算符,在变量的原来数值基础上进行赋值运算
11.4 赋值运算符的特殊场景
'''
# 以下为代码举例
a = 4 # 把数字4赋值给变量 ab = 7 # 把数字7赋值给变量 bprint(a+b) # 把a+b 的结果打印输出
'''
12.赋值运算符的特殊场景
12.1 使用 = 连接的变量可以传递赋值
12.2 赋值运算符一定是从右往左进行运算的
12.3 拆包时,变量的个数和数值的个数不一致的时候,会报错
(但是可以使用 * 延长其中某一个变量的赋值长度,如果哪个需要延长,就在其前面加 * 即可,见举例代码
'''
# 以下为代码举例
a = b = c = d = "hello"print(a,b,c,d)# x = "yes" = y = zm , n = (3,5) # 拆包print(m,n)x = "hello","good","yes" # 这是一个元祖,一般情况下包裹元祖的小括号可以省略print(x) # ("hello","good","yes")# y,z = 1,2,3,4,5# print(y,z) 报错的原因:变量的数量与对应值的数量不一致,变量只有2个,而数值有5个,因此不可以拆包# o,p,q,r,s,t = 1,2,3# print(o,p,q,r,s,t) 报错的原因:变量的数量与对应值的数量不一致,变量有5个,而数值只有3个。因此不可以拆包h, *i, j = 1,2,3,4,5,6,7 # 其中,把1赋值给h,把7赋值给j,把中间的所有数值均赋值给i(*表示i为可变赋值长度的变量)print(h,i,j) # 输出的结果是 1 [2, 3, 4, 5, 6] 7*h, i, j = 1,2,3,4,5,6,7 # 其中,把1,2,3,4,5赋值给h,把6赋值给i,把7赋值给j(*表示h为可变赋值长度的变量)print(h,i,j) # 输出的结果是 [1, 2, 3, 4, 5] 6 7# 注意:* 在哪个变量前面,哪个变量就是可变赋值长度的变量!!!根据以上例子以此类推即可.
'''
13.比较运算符的使用
13.1 比较运算符有如下 :
大于 >
小于 <
大于等于 >=
小于等于 <=
判断是否相等的符号,等等于 ==
不等于运算符 != (也可以使用<>表示不等于,但是这只在Python2中适用,而Python3里不支持这种语法了)
13.2 比较运算符在字符串的使用:字符串之间使用比较运算符,会根据各个字符出现的编码值逐一进行比较
ASCII码表:a~z, A~Z 的表达,都是使用数字表达的,每个字母都有其对应的数字,然后计算机再把这些数字转换成为二进制,再被计算机识别
这些二进制以表示大小写英文字母
13.3 数字和字符串一般不支持比较运算 (但是在做 == != 运算的时候,前者运算的结果是False,后者为True)
'''
# 下面是代码举例
print("hello" == "hello") # Trueprint(5!=6) # 如果在Python3 里写成 print(5<>6) 则是不被支持的写法print(("abc" > "b")) # False ,字符串之间使用比较运算符,会根据各个字符出现的编码值逐一进行比较
'''
14.逻辑运算符
14.1 逻辑与 and # 表示并且,规则是只要有一个运算结果是False,结果就是False;只有当所有的运算结果都是True的时候,
运算结果才是True;
14.2 逻辑或 or # 表示或,规则是只要有一个运算结果是True,结果就是True;只有当所有的运算结果都是False的时候,
运算结果才是False;
14.3 逻辑非 not # 表示取反向结果;
'''
'''
15.逻辑运算的短路问题
15.1 逻辑与(and) 的运算中,只有所有的运算结果都是 True, 结果才是 True, 只要有一个运算的结果是 False,结果就是 False.
只要出现错误的运算,程序则不会继续运行,这就是逻辑与运算的短路问题。
15.2 逻辑或(or) 的运算中,只有所有的运算结果都是 False, 结果才是 False, 只要有一个运算的结果是 True,结果就是 True.
只要出现正确的运算,程序则不会继续运行,这就是逻辑或运算的短路问题。
15.3 逻辑运算的结果,一定要是布尔值吗?答案是:不一定。
15.4 逻辑与 and 运算做取值的时候,取第一个为False的值,如果所有的运算结果都是True,则取最后一个运算结果的值。
15.5 逻辑或 or 运算做取值的时候,取第一个为True的值,如果所有的运算结果都是False,则取最后一个运算结果的值。
'''
# 下面是代码举例
4 > 3 and print("hello world!!!")4 < 4 and print("你好,世界。") # hello world!!! 这是最终输出结果4 > 3 or print("哈哈哈")4 < 3 or print("嘿嘿嘿")# 嘿嘿嘿 这是最终输出结果(因为此时,第一句里 4 > 3 是正确的 ,接下来的 代码不予理会)# 而下一行代码的开头 4 < 3 是错误的 ,所以才会执行接下来的代码print((3 and 5 and 0 and "hello")) # 运行的结果是 0
# 休息,暂停。接下来从 P38 节课开始听 2020.11.25 。