python 基础学习 2
and or not:
逻辑运算:在没有()的情况下not 优先级高于 and,and优先级高于or,即优先级关系为( )>not>and>or,同一优先级从左往右计算。
优先级:() > not > and > or
x or y x为非0,则返回x;
x and y ,x为真,则返回y;
x or y , x为真,值就是x,x为假,值是y;
x and y, x为真,值是y,x为假,值是x。
int--->bool ,非零转化成bool为true,零转化成bool为false。
只要是0就是false,非0就是true
bool--->int,true--->1,false--->0
in,not in :
判断子元素是否在原字符串(字典,列表,集合)中:
#print('喜欢' in 'dkfljadklf喜欢hfjdkas') #print('a' in 'bcvd') #print('y' not in 'ofkjdslaf')
字符串的索引与切片:
索引:s1 = s[0]
索引下标从0开始。
a = 'ABCDEFGHIJK' print(a[0]) print(a[3]) print(a[5])
切片:切片就是通过索引(索引:索引:步长)截取字符串的一段,形成新的字符串,步长可为负数。
顾头不顾尾,前开后闭
a = 'ABCDEFGHIJK' print(a[0:3]) print(a[2:5]) print(a[0:]) #默认到最后 print(a[0:-1]) #-1就是最后一个 print(a[0:5:2]) #加步长 print(a[5:0:-2]) #反向加步长
while 1 比 while true 效率高,因为计算机最终识别的是二进制0和1。
int方法
int.bit_length:表示数字的二进制值有效位数
字符串方法
capitalize:首字母大写
upper:字符串全大写
lower:字符串全小写
swapcase :大小写翻转
title:每个单词首字母大写
#captalize,swapcase,title print(name.capitalize()) #首字母大写 print(name.swapcase()) #大小写翻转 msg='egon say hi' print(msg.title()) #每个单词的首字母大写
center:居中
# 内同居中,总长度,空白处填充 ret2 = a1.center(20,"*") print(ret2)
count:字符串中该元素出现的个数
#数字符串中的元素出现的个数。 # ret3 = a1.count("a",0,4) # 可切片 # print(ret3)
expandtads
a2 = "hqw\t" #\t前面的补全 # 默认将一个tab键变成8个空格,如果tab前面的字符长度不足8个,则补全8个,如果tab键前面的字符长度超过8个不足16个则补全16个,以此类推每次补全8个。 ret4 = a2.expandtabs() print(ret4)
startwith:
endwith:
a4 = "dkfjdkfasf54" #startswith 判断是否以...开头 #endswith 判断是否以...结尾 # ret4 = a4.endswith('jdk',3,6) # 顾头不顾腚 # print(ret4) # 返回的是布尔值 # ret5 = a4.startswith("kfj",1,4) # print(ret5)
find:通过元素找索引,找不到为-1
#寻找字符串中的元素是否存在 # ret6 = a4.find("fjdk",1,6) # print(ret6) # 返回的找到的元素的索引,如果找不到返回-1
index:通过元素找索引,找不到报错
# ret61 = a4.index("fjdk",4,6) # print(ret61) # 返回的找到的元素的索引,找不到报错。
split:以什么分割,最终形成一个列表,此列表不含有这个分割的元素
#split 以什么分割,最终形成一个列表此列表不含有这个分割的元素。 # ret9 = 'title,Tilte,atre,'.split('t') # print(ret9) # ret91 = 'title,Tilte,atre,'.rsplit('t',1) # print(ret91)
strip:
#strip name='*egon**' print(name.strip('*')) print(name.lstrip('*')) print(name.rstrip('*'))
format三种格式化输出:
#format的三种玩法 格式化输出 res='{} {} {}'.format('egon',18,'male') res='{1} {0} {1}'.format('egon',18,'male') res='{name} {age} {sex}'.format(sex='male',name='egon',age=1 8)
replace:字符替换(old,new,count)
#replace name='alex say :i have one tesla,my name is alex' print(name.replace('alex','SB',1))
is系列
#####is系列 name='jinxin123' print(name.isalnum()) #字符串由字母或数字组成 print(name.isalpha()) #字符串只由字母组成 print(name.isdigit()) #字符串只由数字组成
len:字符长度
isdight:返回是否为数字的bool值
startwith:判断首字母是否为xxx
字符串 str---->bool ,''--->false
"0"--->true
python在编译安装时,可以通过参数,分别用于指定使用2个字节或者4个字节表示一个Unicode字符;python3无法进行选择,默认用ucs4.
数据类型:
int 用于1,2,3计算
bool true false 用户判断
str:存储少量数据,进行操作 'xxxxx'
list:存储大量数据 [1,2,3,'xxxxx']
元组tuple:只读 (123,'xxx')
dict:字典
{'kobe':'player','age':28}
集合:{2,3,4}
列表的增删改查
他是以[]括起来,每个元素以逗号隔开,而且他里面可以存放各种数据类型
增加:append(‘a’),添加在列表末尾;
insert(index,'a'),
插入;extend();插入可迭代对象。
li = [1,'a','b',2,3,'a'] # li.insert(0,55) #按照索引去增加 # print(li) # # li.append('aaa') #增加到最后 # li.append([1,2,3]) #增加到最后 # print(li) # # li.extend(['q,a,w']) #迭代的去增 # li.extend(['q,a,w','aaa']) # li.extend('a') # li.extend('abc') # li.extend('a,b,c') # print(li)
删除:pop(index),按照索引删除;
remove(‘x’)按元素去删除;
clear()清空列表,但不会删除列表;
# l1 = li.pop(1) #按照位置去删除,有返回值 # print(l1) # del li[1:3] #按照位置去删除,也可切片删除没有返回值。 # print(li) # li.remove('a') #按照元素去删除 # print(li) # li.clear() #清空列表
def list,删除列表;可以切片删除def list[0:3]
改:直接给列表元素赋值;list[1] = ‘1’,赋值的是可迭代对象
# 改 # li = [1,'a','b',2,3,'a'] # li[1] = 'dfasdfas' # print(li) # li[1:3] = ['a','b'] # print(li)
查:for 循环 for i in list
切片去查,或者循环去查。
其他方法
count():统计某个元素在列表中出现的次数
1 a = ["q","w","q","r","t","y"] 2 print(a.count("q"))
sort():用于在原位置对列表进行排序。反序sort(reserve = true)
1 a = [2,1,3,4,5] 2 a.sort()# 他没有返回值,所以只能打印a 3 print(a) 4 a.reverse()#他也没有返回值,所以只能打印a 5 print(a)
公共方法
len();测量列表长度
列表的嵌套
元组tuple
元组被称为只读列表,即数据可以被查询,但不能被修改,所以,字符串的切片操作同样适用于元组
只读列表,可循环查询,可切片。其中的元素不能改,元组中含列表,列表中的元素可以改。
字典dict
字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据。python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且key必须是可哈希的。可哈希表示key必须是不可变类型,如:数字、字符串、元组。
字典(dictionary)是除列表意外python之中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
增:
setdefault 在字典中添加键值对,如果只有键那对应的值是none,但是如果原字典中存在设置的键值对,则他不会更改或者覆盖。
# dic['li'] = ["a","b","c"] # print(dic) # setdefault 在字典中添加键值对,如果只有键那对应的值是none,但是如果原字典中存在设置的键值对,则他不会更改或者覆盖。 # dic.setdefault('k','v') # print(dic) # {'age': 18, 'name': 'jin', 'sex': 'male', 'k': 'v'} # dic.setdefault('k','v1') # {'age': 18, 'name': 'jin', 'sex': 'male', 'k': 'v'} # print(dic)
删:
pop();popitem();clear();
# dic_pop = dic.pop("a",'无key默认返回值') # pop根据key删除键值对,并返回对应的值,如果没有key则返回默认返回值 # print(dic_pop) # del dic["name"] # 没有返回值。 # print(dic) # dic_pop1 = dic.popitem() # 随机删除字典中的某个键值对,将删除的键值对以元祖的形式返回 # print(dic_pop1) # ('name','jin') # dic_clear = dic.clear() # 清空字典 # print(dic,dic_clear) # {} None 字典的删
改
update()
# 改 # dic = {"name":"jin","age":18,"sex":"male"} # dic2 = {"name":"alex","weight":75} # dic2.update(dic) # 将dic所有的键值对覆盖添加(相同的覆盖,没有的添加)到dic2中 # print(dic2)
查
get()
# value1 = dic["name"] # 没有会报错 # print(value1) # # value2 = dic.get("djffdsafg","默认返回值") # 没有可以返回设定的返回值 # print(value2)
其他方法:
# item = dic.items() # print(item,type(item)) # dict_items([('name', 'jin'), ('sex', 'male'), ('age', 18)]) <class 'dict_items'> # 这个类型就是dict_items类型,可迭代的 # keys = dic.keys() # print(keys,type(keys)) # dict_keys(['sex', 'age', 'name']) <class 'dict_keys'> # values = dic.values() # print(values,type(values)) # dict_values(['male', 18, 'jin']) <class 'dict_values'> 同上
字典的循环:
# dic = {"name":"jin","age":18,"sex":"male"} # for key in dic: # print(key) # for item in dic.items(): # print(item) # for key,value in dic.items(): # print(key,value)
其他(for ,enumerate,range)
for循环:用户按照顺序循环可迭代对象的内容
enumerate:枚举,对于一个可迭代的(iterable)/可遍历的对象(如列表、字符串),enumerate将其组成一个索引序列,利用它可以同时获得索引和值。
range:指定范围,生成指定数字。
join,列表转化为字符串。
join 链接列表中的字符串
range(0,1..100...),for i in range():