Python知识点

来源:互联网 发布:c语言强制转换 编辑:程序博客网 时间:2024/05/22 14:30

Python的数据类型:

布尔,字符,数字,元组—>他们的值不能发生变化,所以不能进行++或--的操作,若发生了改变,是地址变了

列表,集合,字典,类   —>值可以发生变化。

举例说明:

1.数字

a=5a=a+1                        b=5print(id(a))print(id(b))      
2.1字符
vstr1='hello'print(id(vstr1))vstr1=vstr1*2print(id(vstr1))  
2.2字符(三个双引号或者三个单引号,都会保留文档的格式)

vstr1="""pythonklagl    dljfld            dslkdaj"""print(vstr1)

2.3字符串(按下标范围进行输出)

[] : 下标从零开始,表示第一个字母;(ps:空格也算一个字符)

[0:4] : 下标从零开始到下标为4(不包含下标4)结束 。 与  [:5] 表示的意思一样

[6:] : 表示从下标为6的字符开始,一直到最后

[len(strl)-3] : len(strl)减几,就从整个字符串的倒数第几个字符开始,一直到最后

[-3:] : 与[len(strl)-3]表示的意思一样

[-4:-2] : 表示从整个字符串倒数第4个字符,到倒数第2个字符(不包含)结束

str1='hello world's=str1[0]   
#[0]、[0:4]、[6:]、[:5]、[len(str1)-3:]、[-3:]、[-4:-2]
print(s)

也可以使用for循环:

for s in str1[-5:]:    print(s)

3.1元组

ar=(1,'a',3,4)for i in ar:    print(ar)
3.2元组(后面加上‘ *3’ ,表示ar元组的个数等于元素个数乘以3,切一个元组中的元素每个元素出现三次)

ar=(1,'a',3,4)*3for i in ar:    print(ar)

3.3元组([]截取字符串)

ar=(1,2,3,4,5,6,7,8)ar=ar[2:5]print(ar)

4.列表(推到算法)

la1=[1,2,3]la2=[4,5,6]#rs=[x*y for x in la1 for y in la2]rs=[[x,y,x*y] for x in la1 for y in la2]print(rs)  
5. 两个**为次幂,两个//为取整数,一个/为无论是否能够整除都是小数
a=5a=a**3b=5b=b//2b=b/2print(a)print(b)
6.divmod() : 表示第一个数除以第二个数,得到的值是一个元组,元组的第一个值是商,第二个值是余数

c=divmod(7,2)print(c)     

7.集合与迭代器合用:无序不可重复,  与元组和列表不同,元组和列表可以储存重复数据并记录其顺序

比较1:

#元组定义yz=(2,2,2,3,4)#获取迭代器ii=iter(yz)print (next(ii))   //next()输出下一个
比较2:

#列表定义ar=[2,2,2,3,4]#获取迭代器ari=iter(ar)for i in ari:    print(i)
比较3:
#集合定义set1={2,2,2,3,4}#set1.pop() #默认删除最后一个# #获取迭代器it=iter(set1)print(next(it))print(next(it))print(next(it))       #最后输出结果为 2  3  4

8.1定义字典

可以使用[] 以键找值,也可以使用get()方法 一键找值,get()方法还可以添加默认值

dl={'cn':'中国','en':'英国','us':'美国'}print('us --> ',dl['us'])print('cn --> ',dl.get('cn'))print('no fr --> ',dl.get('fr','字典中没有,你是不是要取法国'))

8.2删除字典的两种方法,,且,删除前后字典地址不会发生变化

dl={'cn':'中国','en':'英国','us':'美国'}print(id(dl))#打印地址#两种删除方法del dl['us']dl.pop('en')print(len(dl))print(id(dl))

9.字典的综合案例

要求:统计控制台输入的字符串中每一个字符出现的次数。

第一种方法:按key 进行排序

zf=input('输入字符串\n')tongji={}for s in zf:    if s in tongji:        tongji[s]=tongji[s]+1     #abc bd abc.cac  第2个b已经在tongji字典中出现过一次,所以第2个b要加1    else:        tongji[s]=1               #第1次出现的d不存在于tongji字典中,所以d出现1次for key in sorted(tongji):  #排序sorted()    print(key,'共出现',tongji[key],'次')

第二种方法:按value值进行排序,使用lambda进行遍历

key=lambda item:item[i]  其中item是iter()迭代器的返回值  ,key是sorted()函数中的关键字

如:it=iter(tongji)

print(next(it))     next()的返回值为item

items()函数以列表 返回可遍历的(键,值)元组数据

print (tongji.items())

zf=input('输入字符串\n')tongji={}for s in zf:    if s in tongji:        tongji[s]=tongji[s]+1    else:        tongji[s]=1#iter();生成键值为元组的一组数for value in sorted(tongji.items(),key=lambda item : item[1]):    print(value[0],'共出现',value[1],'次')

第三种方法:按value值进行排序,使用lambda进行遍历,reverse的默认值为False,正序排列

zf=input('输入字符串\n')tongji={}for s in zf:    if s in tongji:        tongji[s]=tongji[s]+1    else:        tongji[s]=1for key in sorted(tongji.items(),key=lambda item : item[1],reverse=True):    print(key[0],'共出现',key[1],'次')

第四种方法:items()方法,,返回 列表里面套元组模式,如:[(),(),()...]

zf=input('输入字符串\n')tongji={}for s in zf:    if s in tongji:        tongji[s]=tongji[s]+1    else:        tongji[s]=1for key1 in sorted(tongji.items(),key=lambda x:x[0],reverse=True):#lambda后面的 x 代表列表里面每一个元组, 冒号后面的x[0]表示元组中key,如果是x[1]位value    print(key1[0],'共出现',key1[1],'次')

python中动态传参:
def sum(*args):    sum=0    for n in args:        sum+=n    return sumprint(sum(1,2,3,4))

def sum(*args):    sum='';    for n in args:        sum=sum+str(n)    return sumprint(sum(1,2,'hi',4))

#end='<>'或 end=' '都表示不换行,end='\n'表示换行
例如:
print('你好hello python3.6',end='<>')print('你好hello python3.6',end='\n')print('你好hello python3.6',end=' ')