1.已知一段程序,用列表保存几个用户名,要求通过终端输入新的用户名并判断输入的用户名是否为已经设置好的用户名,并且给出友好提示,如果已经输入过,要允许用户多次尝试,知道正确为止
names=['xiaofeng','zangjing','tom']
name=input("请输入您的名字:")
for i in names:
if name==i:
name=input("此名字已经用过了哦!请再次输入您的名字:")
print("命名成功!")
names.append(name)
结果:
小知识:
l.append(“ ”) 列表插入函数
2.统计单词出现的次数
l=("How are you . How are you .")
l=l.split(" ")
l1={}
for i in l:
if i=='.':
continue
else:
l1[i]=l1.get(i,0)+1
print(l1)
结果:
小知识:
l.split(" ")为分割函数
3.将一段字符串中的数字输出来并形成一个新的字符串
a="aAsmr3idd4bgs7D1sf9eAF"
newa=[]
for i in a:
if ord(i)>=48 and ord(i)<=57:
newa.append(i)
print("".join(newa)) #将列表变成字符串
结果:
小知识:
print("".join( )) 将列表变成字符串
4.统计字符串每个字母出现的次数(忽略大小写)
a="aAsmr3idd4bgs7D1sf9eAF"
l1={}
a=a.lower() #a.lower()将大写变成小写字母
for i in a:
if ord(i)>=48 and ord(i)<=57:
continue
else:
l1[i]=l1.get(i,0)+1
print(l1)
结果:
小知识:
a.lower()将大写变成小写字母
5.去除字符串中多次出现的字母,不区分大小写。
s="aaAAffEEeefe"
s=s.lower()
d={} #计算出现的次数
a=[] #存放
for i in s:
a.append(i)
for i in s:
d[i]=d.get(i,0)+1
max1=d[s[0]] #字典中最大的元素,先随便找一个当最大的
for j in d: #找出待删除最小元素的重复最大元素
if d[j]>d[s[0]]:
max1=d[j]
b=[] #存放字符串中出现最大的的字母
for k in d:
if d[k]==max1:
for i in range(max1):
b.append(k)
for i in range(len(b)):
for j in range(len(a)):
if b[i]==a[j]:
del a[j]
break
c='' #存放删除完的字符串
for k in range(len(a)):
c += a[k]
print("结果为:",c)
结果:
6.编写一个摄氏温度和华氏温度之间的换算,公式为:F=9*C/5+32
ques=eval(input("请问您输入的是摄氏度①还是华氏度②:"))
cf=float(input("请输入度数:"))
if ques==1:
f=cf*1.8+32
print("{}C等于{}F".format(cf,f))
elif ques==2:
c=(cf-32)/1.8
print("{}F等于{}C".format(cf,c))
结果:
小知识:
eval()去掉输入时代的双引号
7.有n个小孩围成一圈报数(1,2,3)数到3的小孩就出去,之后重新从1开始数,数到1就出去,判断最后那个小孩是第几个。
child=[x for x in range(1,11)]
print(child)
i=1 #计算数到3的小朋友
j=0 #编号
while len(child)>1: #当只有一个小孩的时候就跳出循环
if j==len(child):
j=0
if i==3:
i=1 #将i重置为1
print("{}出局".format(child[j]))
del child[j]
print(child)
else:
i+=1
j+=1
print("最后那个小孩是{}号".format(child[0]))
结果:
8.哥德巴赫1742年给欧拉的信中哥德巴赫提出了以下猜想:任一大于2的偶数都可写成两个素数之和。 请输出6-20之间所有偶数的所有拆分结果。输出结果如下:
6=3+3
8=3+5
8=5+3
10=3+7
10=5+5
10=7+3
12=5+7
12=7+5
14=3+11
14=7+7
14=11+3
16=3+13
16=5+11
16=11+5
16=13+3
18=5+13
18=7+11
18=11+7
18=13+5
20=3+17
20=7+13
20=13+7
20=17+3
import math
#is_prime():判别素数
def is_prime(n):
if n==1: return False #1不是素数就直接返回false
if n==2: return True #2是素数就直接返回True
for i in range(2,int (math. sqrt(n))+1): #(math. sqrt(n))+1减少循环次数,也可以用n
if n%i==0: #找出不是素数就返回false
return False
else:return True #其他情况就返回True
for i in range(6,21):
for j in range(2,i):
if is_prime(j) and is_prime(i-j): #将i拆解分别放入is_prime函数中检验是否是素数
print("{}+{}={}".format(j,i-j,i))
结果:
9.将两个列表写进字典中
citys=['shangahi','daqing','hangzhou','nanijing','beijig']
codes=['0521','5246','5','664','5565']
print(dict(zip(citys,codes)))
结果:
小知识:
dict() 函数用于创建一个字典。
dict(zip(A, B)) # 映射函数方式来构造字典
zip(A, B) # 打包为元组的列表