1.题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
string=''
count=0
for i in range(1,5):
for k in range(1,5):
for j in range(1,5):
for m in range(1,5):
string=(str(i)+str(k)+str(j)+str(m))
count+=1
print('第{0}个为{1}'.format(count,string))
2.已知一个列表[['A','1'],['B','2'], ['C','3'], ['A','4'], ['B','5'], ['C','6'], ['A','1'], ['B','1'],['D','3'],['C','1']],分别将这里面的A所对应的数都相加,B所对应的数相加,C所对应的数相加。能力好的请不要去自己去数列表中有哪些字母,要认为这里面的A,B,C是随机的 有可能下回说不定就是G,H,I了。
def num_add(l):
list1=[]
list2=[]
for i in range(len(l)-1):
for j in range(i+1,len(l)):
if l[i][0]==l[j][0]:
l[i][1]=int(l[i][1])+int(l[j][1]) #将第数字加到第一次出现该字母的位置
for m in l: #第一次出现该字母时,添加该列表元素到新列表中
if m[0] in list1:
continue
else:
list1.append(m[0])
list2.append(m)
return list2
if __name__=='__main__':
l=[['A','1'],['B','2'], ['C','3'], ['A','4'], ['B','5'], ['C','6'], ['A','1'], ['B','1'], ['D','3'],['C','1']]
print(num_add(l))
3.假如你要为一个应用搞限时促销,生成激活码(或者优惠券),请用 Python 如何生成 200 个激活码(或者优惠券)。激活码的格式为asqE-9xRK-lqWU-QkMT
要求1:使用随机生成时,生成数字概率为1/5,大写字母和小写字母概率各为2/5
要求2:200个激活码,他们各不相同
import random
#生成四位随机验证码
def creat_key(times):
list1=[]
list2=[]
for i in range(times):
string=''
for i in range(26):
key=chr(65+i)
list1.extend([key,key.lower()])
for i in range(13):
num=random.randint(0,9)
list1.append(str(num))
random.shuffle(list1) #打乱下顺序,更随机
for j in range(4):
string=string+''.join(random.sample(list1,4))
if j!=3:
string=string+'-'
list2.append(string)
return list2
if __name__='__main__':
print(creat_key(200))
4.文件中有高中英语单词词汇,需要使用文件操作,将文件内容读取出来,放入一个你认为
不错的数据类型中。
程序功能1:让用户输入需要考查单词的数量(数量必须20个以及上)
功能2:随机出一个单词,给出ABCD 4个汉语意思,一个正确的,三个错误的
功能3:用户输入ABCD进行选择相应选项
功能4:用户选择后,代码需要判断正误,立即给出正确或错误,并给出正确答案
功能5:单词数量测试完毕后,按这种格式输出:测试数量:100 正确:70 错误:30 正确率:70%
功能6:提示用户是否需要查看选错的单词,是->列出错误的单词,否->退出程序
import xlrd
import random
#读取sheet页里面的内容,返回单词、释义为键值对的字典
def read(bookname,sheetname):
#打开Excel文件
wb=xlrd.open_workbook(bookname)
#根据sheet名实例化sheet页
sheet=wb.sheet_by_name(sheetname)
for rownum in range(1,sheet.nrows):#第一行为标头,第一列为编号
list1.append(sheet.cell(rownum,1).value)#sheet.cell(行,列).value确定行列对象
list2.append(sheet.cell(rownum,3).value)#sheet页,行列下标从0 开始
dic[sheet.cell(rownum,1).value]=sheet.cell(rownum,3).value
return dic
if __name__=='__main__':
bookname='words.xls'
sheetname='结果'
words=read(bookname,sheetname)
right=0
wrong=0
list1=[]
list2=[]
list3=[]
dic={}
wrong_word=[]
num=int(input('输入要考查单词的数量:'))
for i in range(num):
word=random.choice(list1)
list3.extend(random.sample(list2,3))
list3.append(dic[word])
random.shuffle(list3)#打乱顺序
print('单词为:{0}'.format(word))
print('A.{0} B.{1} C.{2} D.{3}'.format(list3[0],list3[1],list3[2],list3[3]))
user_word=input('请选择:')
if user_word=='A':
if list3[0]==dic[word]:
print('正确')
right+=1
else:
print('错误')
wrong_word.append(word)
print('正确答案为:{0}'.format(dic[word]))
wrong+=1
elif user_word=='B':
if list3[1]==dic[word]:
print('正确')
right+=1
else:
print('错误')
wrong_word.append(word)
print('正确答案为{0}'.format(dic[word]))
wrong+=1
elif user_word=='C':
if list3[2]==dic[word]:
print('正确')
right+=1
else:
print('错误')
wrong_word.append(word)
print('正确答案为{0}'.format(dic[word]))
wrong+=1
elif user_word=='D':
if list3[3]==dic[word]:
print('正确')
right+=1
else:
print('错误')
wrong_word.append(word)
print('正确答案为{0}'.format(dic[word]))
wrong+=1
print('正确数:{0}个,错误数:{1}个,正确率为{2}%'.format(right,wrong,right/num*100))
tip=input('是否需要查看选错的单词:')
if tip=='是':
for i in wrong_word:
print(i,dic[i])
else:
exit()