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. 缩进
建议每级缩进都使用四个空格
2. 行长
每行不超过80个字符
3. 空行
合理使用空行来让代码更利于阅读
例子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'
例子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 .
例子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.
例子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'
例子1:利用float()函数将其他类型转换成浮点型
>>>float(True)
1.0
>>>float(False)
0.0
>>>float(98)
98.0
>>>float('99')
99.0
>>>float('98.0') #将包含有效浮点数的字符串转换为真正的浮点型数字
98.0
例子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
例子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
布尔值只有2个值False和True,注意区分大小写,都可以保存在变量里,0,0.0,''被认为是False
数据类型:NoneType,只有一个值None
总结,上面介绍的是Python原子内容,下面总结Python容器相关的内容,主要包括:元组、列表、字典、集合
联系客服