注:復制代碼時注意縮進浑侥, 以免bug浮声。
1.四位玫瑰數(shù)是4位數(shù)的自冪數(shù)。自冪數(shù)是指一個 n 位數(shù)屋剑,它的每個位上的數(shù)字的 n 次冪之和等于它本身,求10000以內(nèi)的玫瑰數(shù)
for i in range(1000,10000):
a=i//1000 #千位
b=i//100%10 #百位
c=i//10%10 #十位
d=i%10 #個位
if a**4+b**4+c**4+d**4==i:
print(i,end=" ")
2.100以內(nèi)素數(shù)之和(素數(shù)也叫質(zhì)數(shù)孟抗。一個大于1的正整數(shù)迁杨,如果除了1和它本身以外,不能被其他正整數(shù)整除)
con=sum=0
for i in range(2,101):
for j in range(2,i):
if i%j==0:
break
else:
print(i,end=" ")
con+=1
sum+=i
print("素數(shù)之和為:",sum)
print("共有",con,"個素數(shù)凄硼!")
3.使用*打印一個正方形
print("* "*6)
for i in range(3):
print("*","*".rjust(9))
print("* "*6)
4.輸入一行字符,分別統(tǒng)計出其中的數(shù)字铅协、大小寫字母和其他字符,總個數(shù)
inp=input("請任意輸入:\n")
a=b=c=w=m=con=0
for i in inp:
if i.isalpha():
b+=1 #字母
if i.isupper():
w+=1 #大寫字母
if i.islower():
m+=1 #小寫字母
elif i.isnumeric():
a+=1 #數(shù)字
elif i.isalnum()==0:
c+=1 #非 數(shù)字或字母
con+=1
print("數(shù)字:",a,"帆喇,字母:",b,"警医,其他字符:",c)
print("輸入總字符為:%d其中大寫字母有%d個,小寫字母有%d個坯钦。"%(con,w,m))
5.打印99乘法表
for i in range(1,10):
for j in range(1,i+1):
print(str(j)+"*"+str(i)+"=",i*j,end=" ")
print()
- 一個一萬以內(nèi)整數(shù), 加上100和加上268 以后都是一個完全平方數(shù), 請問該數(shù)是多少
import math
for i in range(10000):
m = int(math.sqrt(i + 100))
n = int(math.sqrt(i + 268))
if m * m == i + 100 and n * n == i + 268:
print(i)
7.求1000以內(nèi)水仙花數(shù): 如果一個3位數(shù)等于其各位數(shù)字的立方和,這個數(shù)就是水仙花數(shù)
for i in range(100,1000):
a=int(i/100)
b=int(i/10)%10
c=i%10
if a**3+b**3+c**3==i:
print(i)
8.斐波那契數(shù)列指的是這樣一個數(shù)列 0, 1, 1, 2, 3, 5, 8, 13,特別指出:第0項是0预皇,第1項是第一個1。從第三項開始婉刀,每一項都等于前兩項之和吟温。
實現(xiàn)輸入需要顯示多少項數(shù),然后在程序輸出相應的斐波那契數(shù)列: 比如 輸入5 輸出 : 0突颊,1鲁豪,1潘悼,2,3爬橡。(使用一般方式治唤,遞歸,迭代或生成器三種方式)
n=int(input("請輸入打印的斐波那契數(shù)列個數(shù):"))
a, b = 0, 1
for i in range(n):
a, b = b, a + b
print(a, end=' ')
#-----------------------------------------------
inp=int(input("請輸入數(shù)字:\n"))
def dgc(n,a=0,b=1):
if n==0:
return b
print(a,end=" ")
return dgc(n-1,b,a+b)
dgc(inp)
#-----------------------------------------------
def fib(n):
a,b,counter=0,1,0
while True:
if (counter>n):
return
yield a
a,b=b,a+b
conter=counter+1
n=int(input("請輸入你想要的數(shù)列長度:"))
f=fib(n) #f 相當于一個迭代器,由生成器返回生成
for i in range(n):
print(next(f),end=" ")
- 抓球問題糙申,5個紅球宾添,8個黑球,7個白球柜裸, 隨機取出10個缕陕, 且白球不少于2個黑球不大于3個, 計數(shù)可能的顏色組合
sun=0
for i in range(6): #紅球
for j in range(9): #黑球
for k in range(2,8): #白球
if j<=3 and i+j+k==10:
sun+=1
print("顏色組合為:%d"%sun)
10.打印 等腰三角型(循環(huán)內(nèi)用一句代碼輸出)
for i in range(6):
for k in range(5-i):
print(" ",end=" ")
for j in range(2*i+1):
print("*", end=" ")
print()
11.冒泡排序以下列表:li=[1,9,4,7,7,8,2,3,5,8,13,10,11]
li=[1,9,4,7,7,8,2,3,5,8,13,10,11]
for i in range(len(li)-1):
for j in range(len(li)-1-i):
if li[j]>li[j+1]:
li[j+1],li[j]=li[j],li[j+1]
print(li)
12.做一個1-10 的列表,并分別取出偶數(shù)成為新的列表疙挺。
li=[]
li01=[]
for i in range(1,11):
li.append(i)
print(li)
j=-1
while j<len(li)-2:
j=j+2
li01.append(li[j])
print(li01)
13.輸入年扛邑, 月 , 日 判斷此日期是當年的第幾天
date=input("請輸入你要輸入的日期(格式為20200202的八位數(shù)):\n")
if date.isnumeric() and len(date)==8:
years=int(date[0:4])
month=int(date[4:6])
day=int(date[6:])
#這是平年一年的月份天數(shù)
cale=[31,28,31,30,31,30,31,31,30,31,30,31]
con=i=0 #con為總天數(shù)
if 0<month<=12:
#判斷是否為閏年铐然,是則改第二月為29天
if years%4==0 and years%100!=0 or years%400==0:
cale[1]=29
if day<=cale[month]: #判斷輸入的天數(shù)的月份在月份的天數(shù)內(nèi)
#循環(huán)月份并算出月份和的天數(shù)
while i<month-1:
con+=cale[i]
i+=1
con+=day
print(years,"年的第",con,"天")
else:
print("輸入天數(shù)錯誤蔬崩,退出!")
else:
print("輸入月份錯誤搀暑,退出舱殿!")
else:
print("輸入格式錯誤,退出险掀!")
14.猜數(shù)字游戲, 系統(tǒng)隨機生成一個1000以內(nèi)的數(shù)字,用戶輸入一個數(shù)字, 如果輸入數(shù)字大于系統(tǒng)數(shù)字則提示大了,并統(tǒng)計猜的總次數(shù)湾宙。
import random #導入模塊
computer=random.randint(0, 1000) #生成隨機數(shù)
num=0 #統(tǒng)計猜的次數(shù)
while True:
user=input("請輸入數(shù)字(退出:輸入e):\n")
if user[0]=="e":
break
elif user.isnumeric():
user=int(user)
if computer>user:
num+=1
print("猜小了樟氢,重新猜。")
elif computer<user:
num+=1
print("猜小了侠鳄,重新猜埠啃。")
else:
print("猜對了,通關伟恶!")
break
else:
print("輸入格式碴开,重新開始!")
print("總共猜的次數(shù)為:",num)
15.已知有:user = ["aa","bb","cc"] ,passwd = ["111","222","333"]
模擬登陸:1博秫、從控制臺接受 用戶名和密碼:2潦牛、判斷 用戶名和密碼是否正確:如果正確提示登錄成功,如果錯誤提示錯誤的原因挡育。3巴碗、用戶名和密碼錯誤總共不能超過3次。
user=["aa","bb","cc"]
passwd=["111","222","333"]
k=None
count=0 #統(tǒng)計次數(shù)
while True:
if count>=3: #開關
print("輸入次數(shù)超過三次即寒!鎖定橡淆。")
break
use=input('請輸入用戶名:')
if use in user:
k=user.index(use) #取下標值
while count<3:
pwd = input('請輸入密碼:')
if passwd[k]==pwd:
print('登錄成功')
exit(0)
else:
count+=1
print('密碼錯誤')
else:
print('用戶名不存在')
count+=1
#----------------------------------------------------------------------------
com=0 #統(tǒng)計次數(shù)
falg=1 #開關
while True:
if com==3 and falg==0: #錯誤三次召噩,退出
print("用戶名或者密碼錯誤三次,已鎖定逸爵。")
break
if falg==3: #登錄成功具滴,退出
break
use=input("輸入用戶名:")
for i in range(len(user)):
if use==user[i]: #判斷用戶名
for j in range(len(passwd)):
pwd=input("輸入密碼:")
if passwd[i]==pwd: #判斷密碼
print("登錄成功!")
falg=3
break
else:
com+=1
print("密碼錯誤")
if com==3:
falg=0
break
else:
if falg==1 and i>=len(user): #判斷遍歷結(jié)束后师倔,確認沒此用戶
com+=1
print("用戶名錯誤构韵!")
if com==3:
falg=0
16.做一個nextdate程序?qū)崿F(xiàn)輸入一個日期,程序自動輸出這個日期后一天的日期.
date=input("請輸入你要輸入的日期(格式為20200202的八位數(shù)):\n")
if date.isnumeric() and len(date)==8:
years=int(date[0:4])
month=int(date[4:6])
day=int(date[6:])
#這是平年一年的月份天數(shù)
cale=[31,28,31,30,31,30,31,31,30,31,30,31]
if 0<month<=12:
if years%4==0 and years%100!=0 or years%400==0: #閏年2月
cale[1]=29
if day<=cale[month-1]: #判斷輸入的天數(shù)的月份在月份的天數(shù)內(nèi)
if month==12 and day==31: #判斷12月31日
years+=1
month=1
day=1
print("后一天為%d年1月1日"%years)
elif day==cale[month-1]: #判斷月末(本月最后一天)
month+=1
day=1
print("后一天為{0}年{1}月{2}日".format(years,month,day))
else:
day+=1
print("后一天為%d年%d月%d日"%(years,month,day))
else:
print("輸入天數(shù)錯誤,退出溯革!")
else:
print("輸入月份錯誤贞绳,退出!")
else:
print("輸入格式錯誤致稀,退出冈闭!")