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()