Python基础知识
条件表达式
三元操作符
small = x if x<y else y
断言(assert)
assert称为断言,当关键字后面的条件为假时候,出现自动崩溃并抛出AssertionError的异常
如
## for循环
```py
favor = "cicarius"
for i in favor:
print(i,end=" ")
break 终止并退出
continue 中止本轮循环并开始下一次循环
range()
range(start,stop,step=1)
start,step可选,step默认为1
list(range(5)) # [0,1,2,3,4] 不包含5
for i in range(2,9)
print(i)
# 2,3,4,5,6,7,8 包含2不包含9
创建列表
member = ['Make','Jake','Joe','Sam']
number = [1,2,3,4,5]
mix = [1,2,3.21,'Kaste','Max',2.34] #混合列表
empty = [] # 空列表
len(member) #长度
列表的append()
member.append('Charle') # 添加新一个数组,append方法属于member的方法
列表的extend()
member.extend(['Xiaomi','Kou']) # 以列表形式使用extend追加多个元素
列表的insert()
member.insert(1,'牡丹') #排在第二位
获取元素
member[0] #获取元素
列表的remove()
member.remove('删除')
del
del member
列表的pop()
name = member.pop() # 有返回值
member.pop(1)
列表分片Slice(获取多个元素)
member[1:3] # 从第2个开始到第3个元素
member[:3] # 从开头到第3个元素
member[1:]
two = member[:] # 元素拷贝
列表元素的比较
list1=[123]
list2=[234]
list1>list2 # False
list3=[123,456]
list3>list2 # False,只比较第一个元素
list4=list1+list2 # 类型一致
list3*3 # 复制3编
# [123, 456, 123, 456, 123, 456]
in包含
123 in list3 # True
'KK' not in list3 # False
list5 = [123,['Jake','Max'],898]
'Jake' in list5 # False
'Jake' in list5[1] # True 遍历二维数组中的元素
list5[1][1] # 访问二维数组中的元素
dir(list) list中的函数
['add', 'class', 'contains', 'delattr', 'delitem', 'dir', 'doc', 'eq', 'format', 'ge', 'getattribute', 'getitem', 'gt', 'hash', 'iadd', 'imul', 'init', 'init_subclass', 'iter', 'le', 'len', 'lt', 'mul', 'ne', 'new', 'reduce', 'reduce_ex', 'repr', 'reversed', 'rmul', 'setattr', 'setitem', 'sizeof', 'str', 'subclasshook', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
列表中的count
list3.count(123) # 123在列表中出现次数
列表中的index
list3.index(123) # 123第一次出现的序列
list3.index(123,3,7) # 123在指定位置出现的序列
列表中的reverse
list3.reverse() # 列表的反转
列表中的sort
list6 = [4,2,5,1,9,23,32,0]
list6.sort() # 从小到大排序
list6.sort(reverse=True) # 从大到小排序
list7=list6[:] # 拷贝,list6修改llist7不变
list8=list6 # 墙头草,多一个指向 list6变换list8也跟着变
元组
元组不可改变,使用括号
tuple1=(1,2,3,4,5,6,7,8,9)
tupe1[1]
tupe1[2:]
tupe1[:5]
tuple2 = tupe1[:]
元组的标志是逗号
temp=(1,)
temp=()
temp=1,2,3
8 * (8) # 64 整型
8 * (8,) # (8, 8, 8, 8, 8, 8, 8, 8) 元组
元组的更新
temp = (1,2,3,4,5)
temp = temp[:2]+('Jake',)+temp[2:]
del temp 删除
字符串
str1='I love IT'
str1[:6] # 分片'I love'
str1[5] # 字符串截取
插入字符
str1 = str1[:3]+"插入字符串"+str1[3:]
字符串的capitalize()
str2 = 'xiaoxie'
str2.capitalize() # 首字母大写 Xiaoxie
字符串的casefold()
str2 = 'XIAOXIE'
str2.casefold() # 把整个字符串的所有字符改为小写
center(width) 将字符串居中,并使用空格填充至长度width的新字符串
str2 = '居中'
str2.center(50)
字符串的count(sub,start,end) 返回sub在字符串里出现的次数,start,end表示范围
str2 = 'hellojake'
str2.count('e') # e出现2次
字符串的encode(encoding='utf-8',errors='strict')
字符串的endswith(sub,start,end) 检查字符串是否以sub字符串姐视,如果是返回True,否则返回False,start和end参数可选,表示范围
字符串的find(sub,start,end) 检测sub是否包含在字符串中,如果有则返回索引值,否则返回-1
字符串的index(sub,start,end) 与find方法一样,不过如果sub不在string中会产生一个异常(ValueError: substring not found)
字符串的isnumeric() 如果字符串中只包含数字字符,返回True,否则返回False
字符串的isspace() 如果字符串中只包含空格,则返回True,否则返回False
字符串的isalnum() 如果字符串至少有一个字符并且所有字符都是字母或数字则返回True,否则返回False
字符串的isalpha() 如果字符串至少有一个字符并且所有字符都是字母数字则返回True,否则返回False
字符串的join(sub) 以字符串作为分隔符,插入到sub中的额所有字母之间
str='hello'
str.join('123') # '1Hello2Hello3'
字符串的ljust(width) 返回一个左对齐的字符串,并使用空格填充至长度为width的新字符串
字符串的lower() 转换字符串中所有大写字符为小写
字符串的lstrip() 去掉字符串在左边所有空格
字符串的partition(sub) 找到字符串sub,把字符串分成一个3元组(pre_sub,sub,fol_sub),如果字符串中不包含sub则返回('原字符串','','')
str='I love IT'
str.partition(' ')
# ('I', ' ', 'love IT')
字符串的replace(old,new,count) 把字符串中的old子字符串替换成new子字符串,如果count指定,则替换不超过count次
str='I love IT'
str.replace('IT','Girl')
字符串的split(sep=None,maxsplit=-1) 不带参数默认是以空格为分隔符切片字符串,如果maxsplit参数有设置,则仅分隔maxsplit个子字符串,返回切片后的字符串拼接的列表
str="I love IT"
str.split()
# [ 'I', 'love', 'IT']
字符串的strip(chars) 删除字符串前边和后边所有的空格,chars参数可以定制删除字符
字符串的translate(table)
str="sssasss"
str.translate(str.maketrans('s','b')) # 转换后 bbbabbb
格式化
"{0} love {1}.{2}".format("I","IT","com")
"{a} love {b}.{c}".format(a="I",b="IT",c="com") # 关键字写法
"{0} love {a}.{b}".format("I","a=IT",b="com") # 序号在前,关键字在后
# 错误写法"{a} love {1}.{2}".format(a="I","IT","com") # 关键字必须在序号之后(positional argument follows keyword argument)
如果打印出{0}
"{{0}}".format("不打印") # 结果为{0}
四舍五入
"{0:.1f}{1}".format(26.678,"GB") # 27.7GB
字符串格式化符号含义
符 号 说 明
%c 格式化字符及其ASCII码
%s 格式化字符串
%d 格式化整数
%o 格式化无符号八进制数
%x 格式化无符号十六进制数
%X 格式化无符号十六进制数(大写)
%f 格式化定点数,可指定小数点后的精度
%e 用科学计数法格式化定点数
%E 作用同%e
%g 根据值的大小决定使用%f或%e
%G 作用同%g,根据值大小决定使用%f或%e
'%c' % 97 # 'a'
'%c %c %c' % (97.98,99) # 'a' 'b' 'c'
'%s' % 'I love IT' # 'I love IT'
'%d + %d = %d' % (4,5,4+5) # '4 + 5 = 9'
'%e' % 27.658 # 2.765800e+01
'%E' % 27.658 # 2.765800E+01
格式化操作符辅助指令
符号 说明
m.n m是显示的最小总宽度,n是小数点后的位数
- 用于左对齐
- 在正数前面显示加号(+)
在八进制前面显示('0o'),在十六进制前面显示'0x'或'0X'
0 显示的数字前面填充'0'取代空格
'%5.1f' % 27.658 # '27.7'
'%.2e' % 27.658 # '2.77e+01'
'%#o' % 10 # 0o12
'%#X' % 108 # 0X6C
'%05d' % 5 # '00005'
'%+05d' % 5 # '+0005'
'%-+05d' % 5 $ '+5 ' 左对齐,显示正号,占据五个宽度
字符串转义字符含义
符号 说明
' 单引号
" 双引号
\a 发出系统响铃声
\b 退格符
\n 换行符
\t 横向制表符
\v 纵向制表符
\r 回车键
\f 换页符
\o 八进制数代表的字符
\x 十六进制数代表的字符
\0 表示一个空字符
\ 反斜杠
序列的常用函数
list() 把一个可迭代对象转换为列表
str()
len()
max() 返回序列或者参数集合中的最大值,类型一致
min() 返回序列或者参数集合的最小值, 类型一致
sum(iterable,start=0) 返回序列iterable和可选参数start的总和
sorted()
reversed() <list_reverseiterator>返回值是迭代器对象
enumerate()
number=(123,455,22,456,63)
list(enumerate(number))
# [(0,123),(1,455),(2,22),(3,456),(4,63)]
zip()
a=[1,2,3,4,5,6,7,8]
b=[4,5,6,23,44]
list(zip(a,b))
# [(1,4),(2,5),(3,6),(4,23),(5,44)]
函数
函数文档
def MyFuncion(name):
'函数定义过程中的name是叫形参' # 函数文档
# 因为只是一个形式,表示占据一个参数的位置
print('传递进来的'+name+'叫做实参,因为是具体的参数值')
#### 文档输出方法1 ####
MyFuncion.__doc__
# 打印效果:'函数定义过程中的name是叫形参'
#### 文档输出方法2 ####
help(MyFuncion)
关键字参数
def SaySome(name,words):
print(name+'->'+words)
SaySome(words="I love U",name="KK")
收集参数
def test(*params,esp):
print('参数的长度是:',len(params))
print('第二个参数是:',params[1])
print('esp为:',esp)
test("jake","max",esp=8)
函数可以有多个返回值,默认统一为一个元组形式
def back():
return 1,'jack','max';
局部变量与全局变量
函数内部形成一个与外部相同的参数old_price,并且离开函数后就失去效果,为局部变量
def change(old_price):
old_price=50 # 局部变量
print("函数内部:old_price = ",old_price)
return old_price*0.8
old_price=100 # 全局变量
change(old_price)
print("函数外部:old_price = ",old_price)
文件读取
显示当前文件目录
import os
print(os.getcwd())
f = open("test.txt","r")
g = f.read()
print(g)
f.close()
f = open("text.txt","w")
f.write("CJJF")
f.write("\n")
f.write("6666")
f.close()