Python强大的功能
a=[i for i in range(1000)]
print(a)
b=[a[i][i] for i in range(len(a))] 输出1,5,9
b=[a[i][2-i] for i in range(len(a))]输出 1,5,7
print(b)
金典题目
a=[[2*j+1+i+j for i in range(3)] for j in range(3)]
print(a)
输出123456789
反转
a={1:2,3:4,5:6}
b={v:k for k,v in a.items()}
print(b)
遍历
a='123'
for b in a:
print(b)
a=['123',1,2,3,(1,2)]
for b in a:
print(b)
for i in range(2,7,3):起始值,结束值,间隔
print(i)
a='qrwyyqd'
for xb,z in enumerate(a):打印下标和值
print(xb,z)
a={'name':'张三','age':18}
for x in a:
print(x)
for x in a.keys():
print(x) 输出键,默认输出键
a="125abc__aAA@@"
#以下都是初始值
i=0
sz=0
xhx=0
zm=0
while i<len(a):
if a[i]>='a' and a[i]<='z'or a[i]>='A' and a[i]<='Z':
print(i,"位置是字母",a[i])
zm+=1#统计字母个数
elif a[i]>='0' and a[i]<='9':
print(i,'位置是数字',a[i])
sz+=1#统计数字个数
elif a[i]=='_':
print(i,'位置是下划线',a[i])
xhx+=1#统计下划线个数
i=i+1
print('字母是',zm)
print('数字椒是',sz)
print('下划线是',xhx)
求 大字母 小字母 数字的个数
a='123abcABC__@'
xzm=0
dzm=0
sz=0
xhx=0
for zf in a:
if zf>='a' and zf<='z':
print('小写字母',zf)
xzm+=1
elif zf>='A' and zf<='Z':
print('大写字母',zf)
dzm+=1
elif zf>='0' and zf<='9':
print('数字',zf)
sz+=1
print('小字母',xzm)
print('大字母',dzm)
print('数字',sz)
倒着排列
a=[1,2,3,4,5,0]
i=0 开头下标
j=len(a)-1 结束下标
while i<j:
t=a[i]
a[i]=a[j]
a[j]=t
i+=1
j-=1
print(a)
传送带
import time
a=[1,2,3,4,5]
while True:
t=a[0]
i=0
while i<len(a)-1:
a[i]=a[i+1]
i+=1
a[len(a)-1]=t
print(a)
time.sleep(1)
#[3,34,54,76,17,31,97,182] 所有质数输出
a=[3,34,54,76,17,31,97,182]
for i in range(0,len(a)):
j=2
while j<a[i]:
if a[i]%j==0:
print(a[i],'不是质数')
break
j+=1
else:
print(a[i],'是质数')
i=20
for i in range(20,101):
if i%3==0 or i%7==0:
print(i)
i+=1
a='1527fag61'
i=0
b=0
while i<len(a):
if '0'<=a[i]<='9':
b=b*10+int(a[i])
i+=1
print(b)
遍历字典
a={
'001':{'name':'张三','age':'18','adress':'北京'},
'002':{'name':'张二','age':'28','adress':'上海'},
'003':{'name':'张大','age':'38','adress':'北京'},
}
一,
b=str(input('请输入序号')) str表示字符串
for i,j in a[b].items():#items表示 键和值同时输出
print(i,j)
二,
for k in a.keys():#把a里的key每一个拿出来
print(k,end=' ')
for k1 in a[k].keys(): #a[k]是k对应的每个value,也是一个字典,字典有keys属性,一个个拿出来给k1
print(k1,a[k][k1],end=' ')
print()
三,
for k,v in a.items():
print(k,end=' ')
for k1,v1 in v.items():
print(k1,v1,end=' ')
print()
重点 get提取字典的值
a={'a':20,'b':30,'A':4,'B':22,'c':4}
b={k.lower(): a.get(k.lower(),0)+a.get(k.upper(),0) for k in a.keys()}
print(b)
行加加输出
a='1234567890abc'
hang=1
count=0
i=0
while i<len(a):
print(a[i],end='')
if count==hang:
print()
count=0
hang+=1
i+=1
输出金字塔(掏空后的三角形)
class Aa():
def Bb(self):
i=1
while i<6:
j=1
while j<=5-i:
print(' ',end='')
j+=1
j=1
while j<=2*i-1:
if j==1 or j==2*i-1 or i==5:
print('*',end='')
else:
print(' ',end='')
j+=1
print()
i+=1
p=Aa()
p.Bb()
类属性常考面试题
class Student():
count=0类属性
def __init__(self,name,age):初始化
self.name=name增加对象属性
self.age=age
Student.count+=1
def say(self):
print(self.name,self.age)
zs=Student('张三',18)
ls=Student('李四',29)
zs.count=10
ww=Student('www',21)
print(Student.count)
delattr(zs,'count')删除属性
print(zs.count)
print(ls.count)
print(ww.count)
计算阶乘
hanshu()
def jiecheng(n): 阶乘
if n==1:
return 1
else:
return n*jiecheng(n-1)
print(jiecheng(5))
金典题目
a=[lambda x:x*i for i in range(3)]
print(a0)
print(a1)
print(a2)面试
a=100
b=30
c=1
def waibu():
b=200
c=2
def neibu():
c=300
print(c)#LOCAL局部作用域
print(b)#ENLCOSE嵌套
print(a)#GLOBAL全局
print(max)#B-BUILT-TN内置
neibu()
waibu() 面试
请输入两个数,求两个数之间的所有质数,以及所有质数的和,并且求出最大值最小值
i=0
l=[]
while i<2:
data=int(input('请输入第{}个数'.format(i+1)))
data2=int(input('请输入第{}个数'.format(i+2)))
for i in range(data,data2+1):
j=2
while j<i:
if i%j==0:
break
j+=1
else:
l.append(i)
print(l)
sum=0
j=0
while j<len(l):
if j==0:
max=l[j]
min=l[j]
else:
if j>max:
max=l[j]
elif j<min:
min=l[j]
sum+=l[j]
j+=1
print(sum,min,max)