python学习总结
1.程序中注释的用法、意义和作用;
2.学习Python语言的第一个简单的程序"Hello World!",以及函数print()的用法;
3.常见的几种进制(2,8,16)的构成基数、特点,以及它们和十进制之间互相的转换;
4.在Python程序中使用的基本数据类型,主要包括整型、浮点型、字符串、布尔类型、空值;并学习各种数据的运算处理;
5.学习变量的作用和命名要求,以及在动态语言Python中和其他静态语言中变量赋值方式的不同;
6.在Python中运算符的类型,相应的作用以及操作方法。
1. 注释
注释:代码中不会被编译器执行的部分(不会起到任何程序作用,用来备注、说明用的)
注释的作用:
a.对程序进行说明注释 b.关闭程序中的某些功能,对某些需要保留但又需要沉默的代码进行注释c.建议:写程序一定要多写注释,即为了自己以后容易修改和找出毛病,也为了别人容易理解代码块的意义和作用
1.1 单行注释
在说明性文字前加 # 键可以当行注释,该方法在前面包含有义代码时也可以在后部添加注释(代码行1,2都可以);也可以使用快捷键 Ctrl+/ ,该快捷键具有添加注释和取消注释的双重功能,但是当前面有有义代码时不可使用此方法在后部添加注释(代码行1可以,代码行2不可以)。
1.#print("hello world!")
2.print("hello world!") #注释,这行前面的就是有义代码
1.2 多行注释
1.多行注释可以采用三个单引号 '''或三个双引号"""成对使用的方法实现。
'''
这是多行注释,采用三个单引号成对使用
'''
"""
这也是一个多行注释,采用三个双引号成对使用
"""
2. 对于多行需要注释掉的代码进行注释时也可以将全部代码选中后,用快捷键Ctrl+/ ,这个功能很有用,当我们希望恢复代码块功能的时候又可以将其全部选中,再次 Ctrl+/ ,取消注释。
#print("Hello world!")
# print("Hello world!")
# print("Hello world!")
# print("Hello world!")
2. 第一个Python程序
在我们学习语言的时候,接触的第一个程序通常都是"Hello World!",这是最简单的程序,其实现是使用函数print(){print()是一个系统提供的函数,作用是控制台打印括号里包含的内容},将文本信息"Hello World!"放置到括号()中,即可运行后打印出"Hello World!"
print("Hello world!")
print("Hello world!");print("Hello Python!")
每条语句结束后可以不写分号,但是如果在单行里输入多条语句则必须写分号隔离;一般为了避免出错和力求代码简洁,不建议单行多语句。
3. 进制及不同进制间的转换
进制是指计数时采用的进位方式,我们平常生活中常用的是十进制,即计数时是逢10进1,比如189的下一位是190,其构成基数有:0,1,2,3,4,5,6,7,8,9 .通常我们看到一个由0-9基数构成的数字时,如果没有加以特别说明,我们都会默认为其为十进制数字。
3.1 二进制
二进制是计算机中比较出去常用的进制,机器语言就是二进制,其基数只包含0和1,其特点是缝2进1,比如01101,下一位就是01110,通常为了与十进制数字区分,加前缀0b表示二进制数值,即0b1001表示二进制数1001.
3.2 八进制
八进制是指基数只有0,1,2,3,4,5,6,7的进制,其特点是缝8进1,比如1367,下一位就是1370.通常为了与十进制数字区分,加前缀0o表示二进制数值,即0o1071表示二进制数1001.
3.3 十六进制
十六进制也是计算机中比较常见的进制,在表示颜色时就采用了这种进制。基数有0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f;其中a,b,c,d,e,f分别对应10,11,12,13,14,15.特点是缝16进1,比如2ff,下一位就是300。通常为了与十进制数字区分,加前缀0x表示二进制数值,即0x1001表示二进制数0x2ef1.
3.4 进制间的转换
在不同的环境,同一数据有不同的进制标识的需要,因此进制间的转换也十分重要。
3.4.1 二进制转换成其他进制
1.二进制数->十进制数:将二进制数从右往左一次将数字乘以2的相应乘方,比如从右往左第一位就是2^0,第二位就是2^1,以此类推。
例1: 0b1101=1*2^0+1*2^2+1*2^3=13
例2: 0b11011=1+2+0+8+16=27
例3: 0b110110110=6(1+8+64)=438=2716+6=270+162+6;简便计算(110=6,分隔三段,每段三位,差2^3,所以等于6(1+2^3+2^3*2^3);另一种简便计算:11011=27,后面四位差2^4,所以等于272^4+0110=332+6
2.二进制->八进制:从右边向左开始,三位转成一位,不够三位时添0补齐位数,如1001只有四位,就在左边添加00,补齐成六位即001 001,每三位都可以转换成0-7的数,转换后的数字即为八进制数。
例1: 1000101->1 000 101->001 000 101->1 0 5->105,即二进制中的1000101,转换成八进制时是105
3.二进制->十六进制:从右边向左开始,四位转成一位,不够四位时添0补齐位数,如101101只有六位,就在左边添加00,补齐成八位即001 01101,每四位都可以转换成0-f的数,转换后的数字即为十六进制数。
例1: 1001000101->10 0100 0101->0010 0100 0101->2 4 5->245,即二进制中的1001000101,转换成十六进制时是245
4.在Python中提供了将其他进制数转换成二进制数的函数bin(),该函数可以将括号()里的数字转换成前缀为0b的二进制数。
print(bin(121)) #代码
print(bin(0o121))
print(bin(0x121))
0b1111001 #运行结果
0b1010001
0b100100001
3.4.2 八进制转换成其他进制
1.八进制数->十进制数:将八进制数从右往左一次将数字乘以8的相应乘方,比如从右往左第一位就是8^0,第二位就是8^1,以此类推。
例1: 0o142=2*8^0+4*8^1+1*8^2=2+32+64=98
例2: 0o14212=98*8^2+2*8^0+1*8^1=98*64+2+8=6282(简便计算法)
2.八进制数->二进制数:从右边向左开始,一位转成三位,转换后的数字即为二进制数,当获得的数左边第一位为0时可以去掉,直达为1为止。
例1.:0o124->0b 001 010 100->0b1010100
3.八进制数->十六进制数:将八进制转换成二进制,再将二进制转换成十六进制
例1 : 0o2345->0b 010 011 100 101->0b 0100 1110 0101->0x 4 d 5->0x4d5
4.在Python中提供了将其他进制数转换成八进制数的函数oct(),该函数可以将括号()里的数字转换成前缀为0o的八进制数。
print(oct(121))
print(oct(0b110001))
print(oct(0x121)) #代码块
0o171
0o61
0o441 #运行结果
3.4.3 十进制转换成其他进制
十进制数转换成二进制、八进制、十六进制数的方式都是求余的方式。下面以二进制为例1:{或使用函数bin()}
34/2=17~0 #商为17,余数为0
17/2=8~1 #取上面的商再次除2,余数为1
8/2=4~0
4/2=2~0
2/2=1~0
1/2=0~1 #直至商为零结束,
34-> 0b100010 #从下往上取余数,依次从右往左写,即为二进制数
例2: 十进制数->八进制数{或使用函数oct()}
329/8=41~1
41/8=5~1
5/8=0~5
329-> 0o511
例3 : 十进制数->十六进制数{或使用函数hex()}
346/16=21~10
21/16=1~5
1/16=0~1
345->0x15a
3.4.4 十六进制转换成其他进制
1.十六进制数->十进制数:将十六进制数从右往左一次将数字乘以16的相应乘方,比如从右往左第一位就是16^0,第二位就是16^1,以此类推。
例1: 0x2e4->4*16^0+14*16^1+2*16^2=4+224+512=740
2.十六进制数->二进制数:从右边向左开始,一位转成四位,转换后的数字即为二进制数,当获得的数左边第一位为0时可以去掉,直达为1为止。
例1: 0x2e4->0b 0010 1110 0100->0b1011100100
3.十六进制数->八进制数:将十六进制转换成二进制,再将二进制转换成八进制
例1 :0x3f7->0b 0011 1111 0111->0b 001 111 110 111->0o 1 7 6 7->0o1767
4.在Python中提供了将其他进制数转换成十六进制数的函数hex(),该函数可以将括号()里的数字转换成前缀为0x的十六进制数。
print(hex(121))
print(hex(0o121))
print(hex(0b1001001001001)) #代码块
0x79
0x51
0x1249 #运行结果
4. 基础数据类型
Python语言中的基本数据类型包含:整型、浮点型、字符串、布尔值、空值。
4.1 整型
整型包含正整数、负整数和零。当我们希望将一个数据类型转换成整型的时候可以使用函数 int(),其用法是将需要转换的数据放置于()内,用print(int(数据))的方式打印出来。函数int() :可以将数据转换成整型;浮点数直接去尾取整数部分作为结果,字符串转换必须是全数字字符串,函数int()无法直接将字符串"234.9"转换成234,会导致报错,但是可以将字符串"234"转换成整型234,即函数 int()可以直接将整型数字字符串转换成浮点型。
a = "123"
b = 243.9
c = True
d = False
print(int(a)) # =123
print(int(b)) # =243
print(int(c)) # =1
print(int(d)) # =0
print(int()) # =0
# 函数 int()可以转换的数据类型包括:整型、浮点型、数字型(只能是整型)字符串、布尔类型、空值
4.2 浮点型
浮点型包含小数,即由数字和小数点构成的数字。当我们希望讲一个函数转换成浮点数的时候可以使用函数 float(),其用法是将需要转换的数据放置在()内,用print(float(数据))的方式打印出来。函数 float():将数据转换成浮点型
a = "123.8"
b = 243
c = True
d = False
e = 1e4
f = "abc" # 函数float()、int()都无法将非数字型字符串转化成浮点型、整型,会导致报错
print(float(a)) # = 123.8
print(float(b)) # =243.0
print(float(c)) # =1.0
print(float(d)) # =0.0
print(float(e)) # =10000.0
print(float()) # =0.0
# 函数float()可以转换的数据类型包括:整型、浮点型、数字型(整型或浮点型)字符串、布尔类型、空值
4.3 字符串
字符串(string)是用双引号或单引号括起来的所有文本信息,其中文本信息可以是数字、字母、文字、符号、空格等。
4.3.1 转义字符
1.在需要进行转义的字符前加 \ 可以将一些特殊的没有办法直接用文本表示出来的字符打印出来。比如当我们直接用print(""")希望打印一个"的时候会报错,但是print("\"")可以成功打印出" ,但是我们希望打印\的时候需要再额外加一个\ ,部分转义结果 :
# \'->' ; \"->" ;\\->\ ; \\\"->\"
print("\'")
print("\"")
print("\\")
print("\\\"") #代码块
'
"
\
\" #运行结果
2.转行符和缩进符:换行可以在字符串前面添加 转行符 \n;
缩进四个空格或一个制表符,可以在字符串前面添加 缩进符 \t。
print("\t and")
print("\n and") #代码块
1. and
2.
3.and #运行结果
4.3.2 特殊的字符串
"”(仅有一对双引号表示的字符串):空串;" "(一对双引号中间一个空格):空格字符串,"\0"==None(空),这个是C语言里的字符串的结束字符,当一个运算结果没有数据输出时会显示None.
print("") #用函数len()测算长度为0
print(" ") #用函数len()测算长度为1
print("\0") #代码块 #用函数len()测算长度为1
1.
2.
3.<0X00> #运行结果
4.3.3 可以用以处理字符串的部分常用函数
1.函数 title(): 将字符串首字母大写:使用函数 title(),用法是将变量放置在前,后面加上.title()
str1="jessica"
str2="hello world"
print(str1.title())
print(str2.title()) #代码块
Jessica
Hello World #运行结果
2.函数 upper():将字符串中的字母全部大写:使用函数upper(),用法是将变量放置在前,后面加上 .upper()
str1="jessica"
str2="hello world!"
print(str1.upper())
print(str2.upper()) #代码块
JESSICA
HELLO WORLD! #运行结果
3.函数 lower(): 将字符全部转换成小写字母:使用函数lower(),用法是将变量放置在前,后面加上.lower()
str1="Jessica"
str2="Hello World"
print(str1.lower())
print(str2.lower()) #代码块
jessica
hello world #运行结果
4.函数 startswith():有时候我们需要准确的打印字符串,因此需要进行验证,使用函数startswith() 可以让我们知道打印的字符是否以我们指定的字符串开头的,用法: string.startswith(指定字符串),这个函数返回布尔值,一致时返回True,不一致时返回False。
#代码块
string="hello world!"
print(string.startswith("he")) #指定以"he"开头,如果是返回True
print(string.startswith("we")) #指定以"we"开头,如果不是返回False
#运行结果
True
False
5.函数 endswith():有时候我们也需要去验证打印的字符串其结尾是否以指定的字符串结尾,使用函数endswith(),用法:string.endswith(指定字符串),这个函数返回布尔值。
string="hello world!"print(string.endswith("he"))print(string.endswith("ld!"))#代码块
FalseTrue #运行结果
6.函数 len():获取字符串的长度,使用函数len()获取;用法是将变量放置在()中
print(len("Hello World!")) #代码块
12 #运行结果
7.函数 str():可以将所有的非字符串类型转换成字符串类型打印输出,用法是将变量放入()中。
a = 2b = 3c = a + bd = "abc"e = "def"f = d + eprint(c)print(f)print(str(a)+d)#代码块
5 #运算结果abcdef2abc#将整型数据2转换成字符类型"2"并与字符串"abc"进行拼接
8.拼接运算符 + :当我们希望将两个字符串进行连接拼接的时候,可以直接使用运算符+,其作用是将引号内的信息进行简单拼接并放置到一个引号中,成为新的字符串。例:
str1="i love you,"str2="my baby!"str3=str1+str2print(str3)#代码块
"i love you,my baby!" #运行结果
4.4 布尔类型
布尔类型的数据只有两个值:True 和 False(注意首字母是大写),True->真,或者条件成立; False->假,或条件不成立。比较运算返回的数据类型是布尔值类型,判断语句需要返回值时布尔类型的值。二进制中的1和0分别对应布尔类型中的True和False,所以当使用函数 int()和float()对布尔值进行转换的时候将会有以下结果:
print(int(True))
print(int(False))
print(float(True))
print(float(False)) #代码块
101.00.0 #运行结果
布尔函数 bool()可以将其他数据类型转换成布尔类型。函数bool()可以转换的类型有:所有数据类型(数据本身没有错误)都会返回结果True,除了0、False(布尔值本身)、空值、空串(注意空格字符为真)、None(空)。
a = "123.8"; b = 243 ; c = 243.7 ; d = True ; e = False;f = "abc" ; g = 0 ; h = 5+2j ; i = -4 print(bool(a))# Trueprint(bool(b))# Trueprint(bool(c))# Trueprint(bool(d))# Trueprint(bool(e))#False,布尔值False本身print(bool(f))# Trueprint(bool(g))#False,0print(bool(h))# Trueprint(bool(i))# Trueprint(bool())#False,空值print(bool(""))#False,空串print(bool(" "))# True,空格print(bool("\0"))# True,print(bool(None)) #False
4.5 空值
空值:None,是指运算后没有结果或数据输出的情况就是None.
5. 变量
变量是用于存储数据,便于对数据进行操作的容器。声明变量:一般是变量的类型+变量名,如整数型变量 int(3),float(2.3)
标识符,在编程语言中,标识符是用户编程时使用的名字,对于变量、常量、函数、语句块也有名字,我们统统称之为标识符。标识符的命名要求:
1.必须是由字母、数字和下划线(int_float)组成,并且数字不能作为变量名的开头(强制)
2.大小写敏感(大小写不一致表明标识符不一致,name 和 Name 不是一致标识符)
3.如果标识符是由多个单词组成的,每个单词之间用下划线隔开(my_friends_names)(规范) 4.命名最好要见名知义 5.变量名所有字母小写
6.不能是关键字或者Python系统提供的函数的函数名,比如print、title 等
代码块 name = "you_tao" 中name就是一个字符串类型的标识符,= 是赋值操作符,将字符串"you_tao"赋值给name.
python 是动态语言,变量声明的时候不用指定变量的类型,可以赋任意的值,并且可以改变变量的值,以及变量的类型。Python存储数据的原理是在内存块中开辟一个空间,先将数据存入其中,再将变量指向数据值,数据值就会赋予给变量;当有新数据出现的时候,将会在内存空间中新开辟一个空间存储数据,原来的指向连接将会断裂,变量将会指向新的数据值,因此其可以赋予不同类型的值。而其他静态语言是先在内存中开辟一个固定类型和大小的空间用以装在变量所表示的数据类型,并以此空间表示变量,当有新数据出现的时候,旧数据将会被移除并将新数据装载在该空间中表示变量,因此静态语言的变量具有类型和大小的限制性。
6. 运算符
6.1 数字运算符
学习了基本的数字运算符,包括求和(+),求差(-),求积(*),求商(/),求余(%),整除(//),乘方(**)。
1.求和运算符 + 可以将数字进行简单相加求和,也可以对字符串进行拼接。
a = 2b = 3c = a + bd = "abc"e = "def"f = d + eprint(c) # = 5print(f)# = abcdefprint(str(a)+d) # = 2abc
2.求差运算符 - 可以对数字进行简单的相减求差。
a = 3b = 2print(a-b)# = 1
3.求积运算符 * 可以对数字进行相乘求积。
a = 4b = 5print(a*b) # = 20
4.求商运算符 / 可以对两个数进行除法运算求商。
a = 6b = 8print(a/b)# = 0.75,6/8=0.75
5.求余运算符 % 可以获得两个数做除法时所得的余数。注意,在Python语言中,不存在百分号的字符,因此不可在Python语言中将%当做百分号使用。
a = 7b = 4print(a%b)# = 3,7/4=1……3,余数是3
6.整除运算符 //可以对两个数进行除法运算后获得商的整数部分。
a = 13b = 6print(a//b)# = 2,13/6的证书部分
7.乘方运算符**可以对两个数进行乘方运算。
a = 4b = 3print(a**b)# = 64,a^b,4的3次方
在Python中的复合(是指包含多种运算符的运算,即数学中的混合运算)运算和数学中是一样的,其优先次序是一致的,括号中的运算优先级最高。
6.2赋值运算符
赋值运算符:=,+=,-=,*=,/=,**=,//=,%=,可以通过赋值运算符将符号右边的值通过相应的计算方式将值赋予给左侧的变量。其具体运算规则如下列代码所示:
num1=12# 直接把右边的值赋予给左边的变量num2=1,num2+=3 #它是num2=num2+3 的变式,注意:这必须给num2 先赋值,num3=2,num3-=1 # 它是num3=num3-1 的变式,注意:num3 必须先赋值num4=3,num4*=7 # 它是num4=num4*7 的变式,注意:num4 必须先赋值num5=43,num5/=6 # 它是num5=num5/6 的变式,注意:num5 必须先赋值num6=5,num6**=3 # 它是num6=num6**3 的变式,注意:num6 必须先赋值num7=387,num7//=5 # 它是num7=num7//5 的变式,注意:num7 必须先赋值num8=89,num8%=3 # 它是num8=num8%3 的变式,注意:num8 必须先赋值
6.3 比较运算符
比较运算符:包括>,>=,<,<=,==,!=,其作用是对数据的大小进行比较,比较运算的运算结果是布尔类型,因此其只会返回True和False的其中一个值。
print(2>3)# = False,2>3是错误的print(2>=3)# = False,2>=3是错误的print(2<3)# = True,2<3是正确的print(2<=3)# = True,2<=3是正确的num=100print(num==100)# = True,num确实是等于100的print(num!=100)# = False,num不等于100是错的print(int(2<3))# = 1,因为2<3返回的值是True,而True对应数字1, # 所以用整型转换函数int()处理后将会得到结果1print(float(2<3))# = 1.0,同上,用浮点型转换函数float()处理得到1.0
6.4 逻辑运算符
逻辑运算符:(and,or,not),它们分别可以与数学逻辑运算中的且,或,非相对应,其运算规则也一致。逻辑运算符只能对布尔类型的数据进行运算。
1.and (与):前后数据类型都为True 结果为True,否则为False。
a = True and True # = Trueb = True and False # = Falsec = False and False # = Falsed = 2<3 and 3<4 # = Truee = 2<3 and 3>4 # = Falsef = 2>3 and 3>4 # = Falselists=[a,b,c,d,e,f] # 将以上对象放入到列表中并依次打印出来 for i in lists: print(i)
2.or (或) :前后数据类型有其一为True,结果为True,否则为False。
a = True or True# = Trueb = True or False# = Truec = False or False # = Falsed = 2<3 or 3<4 # = Truee = 2<3 or 3>4# = Truef = 2>3 or 3>4# = Falselists=[a,b,c,d,e,f]#将以上对象放入到列表中并依次打印出来for i in lists:print(i)
3.not (非) : 数据类型的反面,True->False; False->True
a = not True# = Falseb = not False # = Truec = not 2<3# = Falselists=[a,b,c]#将以上对象放入到列表中并依次打印出来for i in lists:print(i)