杂事
备注与调用属性
函数名._doc_
#调用默认属性,函数的解释文本
help(函数名)
print._doc_
#这个打印出来就格式比较难看
help(list)
help(tuple)
help(string)
\转换,\n下一行,\t是tab
打印\:\
打印{}:{{}}
:格式化符号的开始
.1四舍五入保留1位小数点
f定点数(与浮点数区分)
i%2:i余2
if i%2 != 0 i余2不等于0,也就是说i不是偶数
*重复操作符
列举:dir()
dir(list)
dir(bif)
#列举包含的bif函数,或者list函数
print()
数值类型
整型int,浮点float,布尔bool(真假),字符串string
type()看属性,和isinstance()一样
type(temp)
#会输出<class 'int'>
一、创建列表
列表里的都用
列表名.函数名
member = [ ‘AAA’, ‘BB’]
或者
number = [1,2]
或者
mix = [1, 'AAA’]
或者
empty= [ ]
添加元素
法一(加一个元素)APPEND:
member . append ('ABAB')
#.就是范围的意思
法二(添加一个列表)EXTEND:
member.extend(['ABAB','AACC'])
法三:插入中间INSERT:
member.insert(1, 'MD')
1是索引值,’'里面写要插入的东西
就会像:
[‘AAA’,‘MD’,‘BBB’]
顺序应该从0开始
二、 从列表获取元素
从列表中提取第0位的元素:member
member[0]
交换两个元素位置:赋值temp
temp = member[0]
#把temp赋值为第0位元素
member [0] = member [1]
#把第0位元素赋值为第1位元素
这样原本[‘AAA’,‘MD’] will change to [‘MD’,‘MD’]
member [1] = temp
#把第1位元素赋值为temp
这样就是交换位置,change to [‘MD’,‘AAA’]
数个数:.count
list3.count(123)
#123在列表3出现了多少次
返回元素xx在列表位置:.index(xx元素) “索引”
list3.index(123,3,7)
#从第3位置开始数,到结束位置第7位置,123这个元素出现的次数
整个倒过来:.reverse
list3.reverse()
指定方式排序:.sort
list6.sort()
#从小到大排
list6.sort(func,key)
#func指定排序算法,key关键字
list6.sort(reverse=true)
#倒过来排序
删除元素:.remove ,del
remove
member.remove('MD')
del
del member [1]
#删掉排在第1位(左数第二
del member
# delete 全部列表
pop
member. pop(1)
#然后会出现删除的值,第1位
name = member.pop()
name
#然后出现被删除的人名
三、列表分片slice[ :]
member[1:3]
#显示第1位(含)到第3位(不含),会出现3-1=2个元素
#到两边尽头
#简略某一边
member[ :3]
#或者
member[1:]
#拷贝
list7=list6[ : ]
#这之后6变化,7不会变,因为7是拷贝了一份新列表
list8=list6
#这之后6变化,8变了,因为8也是指向6这个列表的标签
四、常用操作符
比较时候默认从第0个元素开始比较,如错的话,直接false
list4 = list1 + list 2
#直接拼接,等于用 extend
list3*3
#直接复制3次
in
123 in list 3
#返回true or false
list 5 =[ 123, [‘ABB,MD'],456]
'ABB' in list5
#会返回false
'ABB' in list5[1]
#会返回true
'MD' in list5[1][1]
#会返回true
五、元组tuple (2,3,4)
和列表近似,
但列表可以任意增删元素
创建空列表
temp=[ ]
元组是不可改变的
创建和访问元组
#创建
temp=( )
temp=(1,)
temp=1,
tuple1 = (1,2,3)
#区分
8*(8)
#得到64
8*(8,)
得到(8,8,8,8,8,8,)
#访问
tuple1[1]
tuple1[5: ]
tuple1[ :5]
#不能更改元素
更新和删除元组
#增加
temp=temp[ :2] + ('意境',) +temp[2:]
#删除(很少用
del temp
if else
elif,也就是else if
eg:
if 100 >= score >= 90 :
print('A')
elif 90 > score >= 80 :
print('B')
元组相关操作符
拼接[]
*
关系:> <
成员 in not in
and or
六、字符串
str1 = ' I LOVE U'
str1[ :6]会出现’ I LOVE'
str1[6]会出现' '
str1[ :6] + '插入的字符串‘ + str1[6:]
会出现' I LOVE 插入的字符串 U'
首字母大写
str2.capitalize()
所有字符小写
str2.casefold()
居中 空格填充长度40的新字符串
str2.center(40)
返回sub在字符串出现的次数。
str2.count('xi'[,start[,end]])
是否以sub结尾, true?
str2.endswith('xie')
isalpha 有数字就不行
islower如果全是中文也会false
lstrip 去掉左边的空格
rstrip 右边
partition(sub)
split:无参数,则默认以空格为界限来切
去掉前后的所有空格,或者去掉前后的所有xx字符
字符串格式化方法:format{}
未知参数
关键字参数
综合:未知必须在关键字之前
%o 把一个数字搞成八进制
m.n
最小总宽度等于5,所以27.7左边有个空格
d是十进制
七、序列(列表、元组、字符串
字符串变列表
sum
sum(iterable[,start=0])
#返回iterable和可选参数start的总和
sorted
sorted(列表名)
reversed
list(reversed(列表名))
enumerate
list(enumerate(列表名))
返回索引值
zip
对应元素变成元组
assert断言
eg:assert 3 > 4
报错
while循环
for循环
for 目标 in 表达式
循环体
eg:
bingo = ' QUICK'
answer = input( '请输入想要的话:')
while true:
if answer == bingo
break
answer = input( '抱歉,请重新输入:')
print('牛!')
里面的每个字符(?),用i表示,个体用each?
eg:想给’fish’每个字后面加一个空格
fav = 'fish'
for i in fav
print(i, end=' ')
就会输出f i s h
len
数长度
eg:
member = [ 'AAA','BB']
for each in member
print ( each, len(member))
会输出:
AAA 2
BB 2
for each in member
print ( each, len(each))
会输出:
AAA 3
BB 2
range()
range ( [start , ] stop [, step=1])
#生成一个从start开始,到stop结束的值(不含stop
[]这两个非必要参数,step表示第三个参数“步进”默认值=1(等差的额度)
默认从0开始
break
直接结束
continue
中止本轮循环,开始下一轮(如果下一轮true)
八、函数
创建与调用
#创建
def MyFirst(name):
print(name +’我爱你' )
#调用这个函数
MyFrist('小甲鱼‘)
#会出现“小甲鱼我爱你”
收集参数
def test(*params)
#*就是收集参数,用元组打包起来
关键参数:设定好某某元素=几
不然跟在收集参数后面的参数会被默认在收集参数里面
虽然有全局变量,py会自动定义一个局部变量old price,在函数内部,并且屏蔽全局变量
全局变量
global count
def MyFun():
global count
#然后就把下面变量定义为全局变量
count=10
print(10)
内嵌函数(内部函数
fun2只能在fun1里面被调用
闭包closure
避免闭包:nonlocal
匿名函数
lambda
省下定义函数的空间
filter
filter(function or none, iterable)
把非ture的内容过滤
map
映射
九、递归recursion
control+c暂停
写阶乘factorial
用递归的写法:
写斐波那契
递归:
写汉诺塔
十、字典:索引不好用的时候{映射}
创建和访问
索引
字典{ }
{‘键’:‘值’}或者(键=‘值’} 后面这种键不用加‘ ’
fromkeys
values
items
设置没有
一个键是否在字典中?in
查找键,而不是值
序列里查找值,而不是索引号
清空 clear()
dict1.clear( )
#另一种方法↓
原来的字典b没有被清空
浅拷贝
是一个不同的地址,而赋值是同一个地址
pop随机弹出一个项
setdefault
update映射更新
十一、集合{1,2}
里面的元素都是唯一的,但是无法索引