1.求100(含100)以內(nèi)所有偶數(shù)的和
range(start,end,step)這個(gè)序列生成器,和那個(gè)切片的語(yǔ)法一樣,含頭不含尾,step是步長(zhǎng),這里就不需要在對(duì)j進(jìn)行判斷了,對(duì)于這些簡(jiǎn)單求奇數(shù)和、求偶數(shù)和,就n的倍數(shù)和等等就可以這樣做。
for j in range(0,101,2):
s = s + j
print(s)
2.求第n位斐波那契數(shù)
這是求第n位斐波那契數(shù),大家可以嘗試多種方法做,我這就不做多的演示了,要是求n(包含n)位前所有斐波那契數(shù)了,創(chuàng)建一個(gè)列表保存一下就好,希望大家可以去做一下,加深對(duì)列表方法的使用
# 斐波那契數(shù)列:1,1,2,3,5,8,13,21,34,55.....
# 從第三位開始:后一個(gè)數(shù)等于前面兩數(shù)相加
n = int(input('請(qǐng)輸入你要求第幾位斐波那契數(shù):'))
a = 0
b = 1
for i in range(n):
# c = a
# a = b
# b = c + b
# 上三式可以簡(jiǎn)寫為:
a,b = b,a+b
print(a)
3.求水仙花數(shù)
我這定義了一個(gè)函數(shù)去求n位數(shù)的水仙花數(shù),不過水仙花數(shù)就是100-1000內(nèi)個(gè)位十位百位3次方的和等于本身的數(shù),我那只是類推一下,當(dāng)然也可以不定義函數(shù),直接使用input輸入一個(gè)n或者直接給定n的值
def get_Narcissistic(n):
for i in range(pow(10,n-1),pow(10,n)):
s = 0
for j in range(n):
s = s+pow(i//10**j%10,n)
if i==s:
print(i)
get_Narcissistic(3)
# 153
# 370
# 371
# 407
4.打印99乘法表
用于理解循環(huán)的使用
# a=0
# while a<9:
# a+=1
# b=0
# while b<a:
# b+=1
# print(b,'*',a,'=',a*b,sep='',end='\t') #sep是分隔符默認(rèn)是空格,\t是制表符
# print()
for i in range(1,10):
for j in range(1,i+1):
print(f'{j}*{i}={i*j}',end='\t')
print()
"""
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
"""
5.百馬百擔(dān)
一匹大馬能背3擔(dān)貨,一匹中馬能背2擔(dān)貨,兩匹小馬能背1擔(dān)貨,如果用一百匹馬背一百擔(dān)貨,有哪些不同的背法
for i in range(34): # i代表大馬的匹數(shù)
for j in range(51): # j代表中馬的匹數(shù)
if i*3+j*2+(100-i-j)/2 == 100:
print(f'大馬={i},中馬={j},小馬={100-i-j}')
# 大馬=2,中馬=30,小馬=68
# 大馬=5,中馬=25,小馬=70
# 大馬=8,中馬=20,小馬=72
# 大馬=11,中馬=15,小馬=74
# 大馬=14,中馬=10,小馬=76
# 大馬=17,中馬=5,小馬=78
# 大馬=20,中馬=0,小馬=80
6.判斷用戶輸入的年份是否為閏年
輸入一個(gè)數(shù),先判斷如果是400的倍數(shù),則滿足;如果不是400的倍數(shù),再判斷如果該數(shù)能夠被4整除,卻不能被100整除,則滿足。
n = int(input('請(qǐng)輸入年份:'))
if n % 400 == 0 or n % 4 == 0 and n % 100 != 0:
print('{0}是閏年'.format(n))
else:
print('{0}不是閏年'.format(n))
高效方法:
python 的 calendar 庫(kù)中已經(jīng)封裝好了一個(gè)方法 isleap() 來實(shí)現(xiàn)這個(gè)判斷是否為閏年:
import calendar
n = int(input("請(qǐng)輸入年份:"))
year = calendar.isleap(n)
if year == True:
print ("{0}是閏年".format(n))
else:
print ("{0}不是閏年".format(n))
推薦好課:Python3 入門、Python3 進(jìn)階