1.1 设置代码格式,养成一个良好的Python代码编写习惯 2.1变量 3.1输入和输出 4.1运算符 5.1 数据类型:整型 5.2 数据类型:浮点型 5.3 数据类型:字符串 5.3.1 字符串方法,注意字符串方法的用法,str.方法 5.4 数据类型:布尔值 6.1 容器内容一:列表 6.1.1:列表的方法 6.2 容器二:元组 6.3容器三:字典 6.3.1.字典的方法 7.1 容器四:集合 8.1 控制流语句if,while,for 9.1函数 10.1函数编写指南 1.1 设置代码格式,养成一个良好的Python代码编写习惯1. 缩进 建议每级缩进都使用四个空格 2. 行长 每行不超过80个字符 3. 空行 合理使用空行来让代码更利于阅读 2.1变量例子1:变量的定义,通过=赋值,命名原则如下: 1)变量名只能包含 数字、字母、下划线; 2)变量名不能使用数字开头; 3)变量名不能包含空格,但可以使用下划线_来区分不同意义的单词; 4)变量名应该既简单又具有描述性; 5)变量名最好使用小写。 6)不要将Python关键字和函数名用作变量名。 例子2: 整型赋值给变量 >>> spam= 40 >>> spam 40 例子3: 字符串赋值给变量 >>> spam= 'Hello' >>> spam 'Hello' 例子4: 函数返回值赋值给变量 >>>myName = input() I am Olivia >>>myName 'I am Olivia' 例子5: 列表,元组,字典,集合赋值给变量,列表赋值给多个变量 >>>girlName, boyName, itName = ['Olivia', 'Jerry', 'dog'] >>>girlName 'Olivia' >>>boyName 'Jerry' >>>itName 'dog' >>> spam= (1, 2, 4) >>> spam (1, 2, 4) >>> myCat= {'size':'fat', 'color':'gray', 'disposition':'loud'} >>> myCat {'size':'fat','color':'gray', 'disposition':'loud'} >>>treeName = {'a', 'b', 'c'} >>>treeName {'b', 'a', 'c'} 例子6: 注意变量的特性,可以将复杂的表达式或者计算式赋值给变量,后续只通过使用变量名来完成复杂的表达或者计算过程。 >>>first_name = 'ada' >>>last_name = 'lovelace' >>>full_name = first_name + '' + last_name >>>message = 'hello' + full_name.title() + '!' >>>print(message) 例子7:变量的一个重要特性,变量代表的是一种引用(只对可变数据类型来说,变量赋值的是引用;对于不可变类型比如数值、字符串、元组,变量保存的是值非引用),并不是把真实值赋值给了变量 >>>treeName = ['a', 'b', 'c'] >>>myName = treeName >>>myName ['a', 'b', 'c'] >>> treeName[1]= treeName[0] >>>myName ['a', 'a', 'c'] 例子8:增强赋值,利用变量自己给自己赋值 >>> spam= 'Jerry' >>> spam= spam + 'Olivia' >>> spam 'JerryOlivia' 用变量自己给自己赋值,有以下几种符号:+=,-=,*=,/=,%= >>> spam+= 'Olivia' >>> spam 'JerryOliviaOlivia' 3.1输入和输出例子1:print()输出,print在用逗号分隔的情况下,会自动用空格分隔; +连接2个字符串的时候,之间是没有空格的 >>>print('I am a good girl.') I am a good girl. >>> a ='Jerry' print('I am a goodgirl' + 'and' + a) I am a goodgirlandJerry >>>print('I am a good girl', 'and', a) I am a good girland Jerry 例子2:改变print在有逗号的情况下默认空格分隔的行为 >>>print('cat', 'dog', 'mouse', seq = ',') #注意一下这句代码,结果出错 cat,dog,mouse
例子3:改变print的另一个默认行为:在每一个字符串后面添加换行符 >>> deftest(): print('hello') print('world') 上面这个代码有问题,注意格式,正确代码如下: >>> deftest(): print('hello') print('world') >>>test() hello world >>> defotest(): print('hello', end = '') #添加的是空字符,而不是空格字符 print('world') >>>otest() helloworld >>> defatest(): print('hello', end = '+') print('world') >>> atest() hello+world
例子4:format函数, 是一个字符串方法str.format() >>> age =25 >>> name= 'Caroline' str.format()中str的参数使用{num}进行表示,0表示第一个参数,1表示第二个参数, >>>print('{0} is {1} years old.'.format(name, age)) #输出参数 Caroline is 25years old. >>>print('{0} is a girl.'.format(name)) # Caroline is agirl. :代表元素需要的操作,{:.3}代表小数点后需要三位,{:8}占8个字符串空间,没有的用空格填充 >>>print('{0:.3} is a decimal.'.format(1/3)) #小数点后三位 0.333 is a decimal >>>print('{0:_^11} is a 11 length.'.format(name)) #使用_补齐空位 _Caroline__ is a11 length >>> print('{first}is as {second}.'.format(first=name, second='Wendy')) #别名替换 Caroline is asWendy >>>print('My name is {0.name}'.format(open('out.txt', 'w'))) #调用方法 My name is out.txt >>>print('My name is {0:8}.'.format('Fred')) #指定宽度 My name isFred . 4.1运算符例子1:运算符本身的计算结果,+、-、*、/、//、%、** >>> 2 + 2 4 >>> 4 - 2 2 >>> 4 * 5 20 >>> 6 / 3#除法,即使能整除,也是浮点数结果 2.0 >>> 8 //3 #商数取整 2 >>> 9 % 2 1 >>> 2 **2 #指数 4 例子2:运算符之间是存在优先级别的,详细优先级(优先级排序:1.指数 2.%,/,//,* 3.-,+ 4.&,5.比较操作符 6.赋值操作符 7.标示操作符 8.成员操作符 9.逻辑操作符 ) >>> 5 **2 // 4 % 3 0 >>> 5 **2 / 4 % 3 0.25 >>> (5 **2) / ( 4 % 3) 25 转义字符的用法 >>>print('Hello there!\nHow are you?\nI\'m doing fine.') Hello there! How are you? I'm doing fine. 5.1 数据类型:整型例子1:整型自带的整型转换器int(),不同用法 >>>int(34.5) 34 >>>int('ox2d', 16) 45 >>> int('0o55',8) 45 >>>int('ob101101', 2) 45 >>>int(0b101101) 45 >>>int(0o55) 45 >>> x =0b101101 >>>int(x) 45 >>> x =0x2d >>>int(x) 45 例子2:将整型转化成二进制、八进制、十六进制 >>> x =45 >>>bin(x) '0b101101' >>>oct(x) '0o55' >>>hex(x) '0x2d' 例子3:如果输出结果不想带0b、0x、0o,可以使用format()函数 >>> x =45 >>>format(x, 'b') '101101' >>>format(x, 'x') '2d' >>>format(x, 'o') '55' 5.2 数据类型:浮点型例子1:利用float()函数将其他类型转换成浮点型 >>>float(True) 1.0 >>>float(False) 0.0 >>>float(98) 98.0 >>>float('99') 99.0 >>>float('98.0') #将包含有效浮点数的字符串转换为真正的浮点型数字 98.0 5.3 数据类型:字符串例子1:创建字符串,注意:字符串不可变 >>>'Snap' 'Snap' >>>'Crackle' 'Crackle'
例子2:双引号的作用体现在当创建本身就包含单引号的字符串 >>>''Nay, ' said the naysayer.' ''Nay, ' saidthe naysayer.' 例子3:当字符串中单引号和双引号都有的时候,需要用到转义符\'' >>> '\'do you know \'' ''do youknow'' #备注:三元引号'''或者'''用于创建多行字符串 例子4:用+连接2个字符换类型的数据,注意+连接的2个必须都是字符串类型 >>>'Alice'+'Olivia' 'AliceOlivia' >>> x =99 >>> y =str(x) >>> z=str(x) + y >>> z '9999' 例子5:当字符串和*相遇的时候,*代表复制 >>>'Alice'*6 'AliceAliceAliceAliceAliceAlice' 例子6:原始字符串,忽略字符串中的转义符号,打印出原始字符串 >>>print(r'That is Carol\'s cat.') That is Carol\'scat.
例子7:用下标可以获取子字符串,下标注意:从开始下标开始,从结束下标-1结束。 >>> spam= 'Hello world!' >>>spam[0] 'H' >>>spam[4] 'o' >>>spam[-1] '!' >>>spam[0:5] 'Hello' >>>spam[6:] 'world!'
>>> fizz= spam[0:5] >>> fizz 'Hello' 通过切片并将结果子字符串保存在另一个变量中,就可以同时拥有完整的字符串和子字符串,便于快速简单的访问。 例子8:字符串中in和not in >>>'Hello' in 'Hello world' True >>>'cats' not in 'cats and dogs' False 5.3.1 字符串方法,注意字符串方法的用法,str.方法例子1:upper()和lower() >>> spam= 'Hello world!' >>> spam= spam.upper() >>> spam 'HELLO WORLD!' >>> spam= spam.lower() >>> spam 'hello world!' upper()和lower()方法,返回的是一个新的字符串,不会改变原来的字符串,若想改变原来的字符串可以把返回的新的字符串赋值给原来的变量,如上面的例子。 >>> spam= 'My name is Olivia.' >>>spam.upper() 'MY NAME ISOLIVIA.' >>> spam 'My name isOlivia.' 例子2:isupper()和islower() >>> spam= 'Hello world!' >>>spam.islower() False >>>spam.isupper() False >>>'HELLO'.isupper() True >>>'abc12345'.islower() #只判断所有的字母都是小写或大写 True >>>'12345'.islower() False >>>'12345'.isupper() False
例子3:综合应用,返回True和False的方法关注一下,可以应用到if或者while循环中用于判断 while True: print('Enter your age:') age = input() if age.isdecimal(): break print('Please enter a number for yourage.')
while True: print('Select a new password (letters andnumbers only):') password = input() if password.isalnum(): break print('Passwords can only have lettersand numbers.')
例子4:startswith()、endswith(),当只是检查字符串的开头或结束部分的时候,这两个方法很好用 >>>'Hello world!'.startswith('Hello') True >>>'Hello world!'.endswith('world!') True >>>'abc123'.startswith('abcdef') False >>>'abc123'.endswith('12') False >>>'Hello world!'.startswith('Hello world!') True >>>'Hello world!'.endswith('Hello world!') True
例子5:isalpha():如果字符串只包含字母,返回true,无参数,注意用法str.isalpha() >>> str1= 'my name is Olivia' >>> str1.isalpha() >>>str1.isalpha() False #str1字符串中包含空格了 >>> str2= 'my' >>>str2.isalpha() True
例子6:isalnum():如果字符串只包含字母和数字,返回true,无参数,注意用法str.isalnum() >>> str3= 'myname 123' >>>str3.isalnum() False #包含空格 >>> str4= 'myname123' True >>> str5= '123' >>> str5.isalnum() True >>> str6= 'my' >>>str6.isalnum() True
例子7:isdecimal():如果字符串只包含数字字符,返回true,无参数,注意用法str.isdecimal() >>> str7= '123 4' >>>str7.isdecimal() False #包含空格 >>> str8= 'my' >>>str8.isdecimal() False >>> str9= '123' >>>str9.isdecimal() True
例子8:isspace():如果字符串只包含空格、制表符、换行,返回true,注意用法,str.isspace()
例子9: istitle():如果字符串只包含以大写字母开头,后面都是小写字母的单词,返回true,注意用法str.istitle() >>> str10= 'My name is olivia' >>>str10.istitle() False >>> str11= 'Mynameisolivia' >>>str11.istitle() True
例子10: title()方法可以修改字符串中单词的大小写 >>> name= 'ada lovelace' >>>print(name.title()) Ada Lovelace 总结:三种方法可以修改字符串的大小写, title(), upper(),lower()因为我们无法依靠用户来正确的输入字符串的大小写,所以可以通过这几种方法对字符串进行处理后 再执行别的代码。
例子11: join():将一个字符串列表中的值连接起来形成一个单独的字符串,使用方法:连接符号.join(列表或列表变量) >>> ','.join(['cats', 'rats', 'bats']) 'cats, rats, bats' >>> ''.join(['My', 'name', 'is', 'Simon']) 'My name is Simon' >>>'ABC'.join(['My', 'name', 'is', 'Simon']) 'MyABCnameABCisABCSimon'
例子12:split():针对字符串调用,返回字符串列表,有参数,参数是分隔符(即确定按照字符串中什么符号进行分割),注意用法str.split(参数)默认的分隔符:空格、制表符、换行符 >>> 'Myname is Simon'.split() ['My', 'name','is', 'Simon'] 也可以向split()中输入一个分割字符串 >>>'MyABCnameABCisABCSimon'.split('ABC') ['My', 'name','is', 'Simon'] split()一个常见的用法,按照换行符分割多行字符串 >>> spam= ''' Dear Alice, How have you been?I am fine. There is acontainer in the fridge that is labeled'Milk Experiment'.
Please do notdrink it. Sincerely, Bob''' >>>spam.split('\n') ['Dear Alice,','How have you been? I am fine.', 'There is a container in the fridge', 'that islabeled 'Milk Experiment'.','','Please do not drink it.','Sincerely,','Bob']
例子13:rjust():用于对齐字符串(右对齐),有两个参数,第一个参数是整数,代表字符串长度;第二个参数是填充字符,在没有第二个参数的情况下默认填充字符是空格 ljust()代表左对齐,始终记住字符串方法的用法str.rjust() >>>'Hello'.rjust(20, '*') '***************Hello' >>>'Hello'.ljust(20, '-') 'Hello---------------'
例子14:center()字符串方法与ljust()与rjust()方法类似,让文本居中
例子15:strip():返回一个新字符串,把字符串左边、右边或两边的空白字符(空格、制表符、换行符)删除掉,lstrip()删除左边的,rstrip()删除右边的 strip()有一个可选参数,代表删除字符串两端中出现参数的字符 >>> spam= 'SpamSpamBaconSpamEggsSpamSpam' >>>spam.strip('ampS') 'BaconSpamEggs' #注意参数中的字符顺序并不重要,ampS,Spam,mapS是一样的
>>> name= ' python' >>>name.lstrip() #只是输出了新的字符串,但是并没有修改原来的name 'python' >>> name ' python' >>> name= name.lstrip() #若想要永久的保存删除空格后的字符串,需要将新字符串赋值到原来的变量中 >>> name 'python'
例子16:用pyperclip模块拷贝粘贴字符串,pyperclip()模块有copy()和paste()函数,模块非自带,需要安装,安装完成后要导入 >>>import pyperclip >>>pyperclip.copy('Hello World!') >>>pyperclip.paste() 'Hello World!'
例子17:pop(),获取列表中指定偏移量的元素,在获取之后,改元素自动被删除;返回值是被删除的值,参数是偏移量,如果不指定偏移量,默认参数为-1
5.4 数据类型:布尔值布尔值只有2个值False和True,注意区分大小写,都可以保存在变量里,0,0.0,''被认为是False
数据类型:NoneType,只有一个值None
总结,上面介绍的是Python原子内容,下面总结Python容器相关的内容,主要包括:元组、列表、字典、集合 |
|