大家好,小編來(lái)為大家解答以下問(wèn)題,python小程序代碼50 到100行,python編程100個(gè)小程序,現(xiàn)在讓我們一起來(lái)看看吧!
有不少同學(xué)學(xué)完Python
后仍然很難將其靈活運(yùn)用。我整理 37 個(gè)Python
入門的小程序用python畫(huà)滿天星的代碼。在實(shí)踐中應(yīng)用Python
會(huì)有事半功倍的效果。
例子1:華氏溫度轉(zhuǎn)換為攝氏溫度
華氏溫度轉(zhuǎn)攝氏溫度的公式:C = (F - 32) / 1.8
。本例考察Python
的加減乘除運(yùn)算符。
"""
將華氏溫度轉(zhuǎn)換為攝氏溫度
"""
f?=?float(input('輸入華氏溫度:?'))
c?=?(f?-?32)?/?1.8
print('%.1f?華氏度?=?%.1f?攝氏度'?%?(f,?c))
例子2:計(jì)算圓的周長(zhǎng)和面積
輸入半徑,計(jì)算圓的半徑和面積,圓周長(zhǎng)公式:2*π*r,面試公式:π*r^2
"""
半徑計(jì)算圓的周長(zhǎng)和面積
"""
radius?=?float(input('輸入圓的半徑:?'))
perimeter?=?2?*?3.1416?*?radius
area?=?3.1416?*?radius?*?radius
print('周長(zhǎng):?%.2f'?%?perimeter)
print('面積:?%.2f'?%?area)
例子3:實(shí)現(xiàn)一元一次函數(shù)
實(shí)現(xiàn)數(shù)學(xué)里的一元一次函數(shù):f(x) = 2x + 1
"""
一元一次函數(shù)
"""
x?=?int(input('輸入x:'))
y?=?2?*?x?+?1
print('f(%d)?=?%d'?%?(x,?y))
例子4:實(shí)現(xiàn)二元二次函數(shù)
實(shí)現(xiàn)數(shù)學(xué)里的二元二次函數(shù):f(x, y) = 2x^2 + 3y^2 + 4xy
,需要用到指數(shù)運(yùn)算符**
"""
二元二次函數(shù)
"""
x?=?int(input('輸入x:'))
y?=?int(input('輸入y:'))
z?=?2?*?x?**?2?+?3?*?y?**?2?+?4?*?x?*?y
print('f(%d,?%d)?=?%d'?%?(x,?y,?z))
例子5:分離整數(shù)的個(gè)位數(shù)
將一個(gè)正整數(shù)的個(gè)位數(shù),以及除個(gè)位數(shù)外的部分分離。需要用到模(取余數(shù))
運(yùn)算符%
,和整除
運(yùn)算符//
"""
分離整數(shù)個(gè)位數(shù)
"""
x?=?int(input('輸入整數(shù):'))
single_dig?=?x?%?10
exp_single_dig?=?x?//?10
print('個(gè)位數(shù):?%d'?%?single_dig)
print('除個(gè)位數(shù)外:?%d'?%?exp_single_dig)
例子6:實(shí)現(xiàn)一個(gè)累加器
實(shí)現(xiàn)一個(gè)簡(jiǎn)單的累加器,可以接受用戶輸入3個(gè)數(shù)字,并將其累加。需要用到復(fù)合賦值運(yùn)算符:+=
"""
累加器?v1.0
"""
s?=?0
x?=?int(input('輸入整數(shù):'))
s?+=?x
x?=?int(input('輸入整數(shù):'))
s?+=?x
x?=?int(input('輸入整數(shù):'))
s?+=?x
print('總和:%d'?%?s)
例子7:判斷閏年
輸入年份,判斷是否是閏年。閏年判斷方法:能被4整除,但不能被100整除;或者能被 400 整除。需要用到算術(shù)運(yùn)算符
和邏輯運(yùn)算符
"""
判斷閏年
"""
year?=?int(input('輸入年份:?'))
is_leap?=?year?%?4?==?0?and?year?%?100?!=?0?or?year?%?400?==?0
print(is_leap)
例子8:判斷奇偶數(shù)
輸入一個(gè)數(shù)字,判斷基數(shù)還是偶數(shù),需要模
運(yùn)算和if ... else
結(jié)構(gòu)
"""
判斷奇偶數(shù)
"""
in_x?=?int(input('輸入整數(shù):'))
if?in_x?%?2?==?0:
????print('偶數(shù)')
else:
????print('奇數(shù)')
例子9:猜大小
用戶輸入一個(gè) 1-6 之間的整數(shù),與程序隨機(jī)生成的數(shù)字作比較。需要用到if ... elif ... else
結(jié)構(gòu)
"""
猜大小
"""
import?random
in_x?=?int(input('輸入整數(shù):'))
rand_x?=?random.randint(1,?6)
print('程序隨機(jī)數(shù):?%d'?%?rand_x)
if?in_x?>?rand_x:
????print('用戶贏')
elif?in_x?<?rand_x:
????print('程序贏')
else:
????print('打平')
說(shuō)明:random是Python的隨機(jī)數(shù)模塊,調(diào)用 random.randint 可以生成一個(gè)隨機(jī)數(shù),類型為 int。randint(1, 6) 表示生成 [1, 6] 之間的隨機(jī)數(shù)。
例子10:判斷閏年
之前判斷閏年是輸出True
或False
,這次需要輸出文字版閏年
或平年
"""
判斷閏年
"""
year?=?int(input('輸入年份:?'))
if?year?%?4?==?0?and?year?%?100?!=?0?or?year?%?400?==?0:
????print('閏年')
else:
????print('平年')
例子11:攝氏度與華氏度互轉(zhuǎn)
之前做過(guò)華氏度轉(zhuǎn)攝氏度,現(xiàn)在通過(guò)分支結(jié)構(gòu)
實(shí)現(xiàn)二者互轉(zhuǎn)。
"""
攝氏度與華氏度互換
"""
trans_type?=?input('輸入轉(zhuǎn)攝氏度還是華氏度:')
if?trans_type?==?'攝氏度':??#?執(zhí)行華氏度轉(zhuǎn)攝氏度的邏輯
????f?=?float(input('輸入華氏溫度:'))
????c?=?(f?-?32)?/?1.8
????print('攝氏溫度為:%.2f'?%?c)
elif?trans_type?==?'華氏度':??#?執(zhí)行攝氏度轉(zhuǎn)華氏度的邏輯
????c?=?float(input('輸入攝氏溫度:'))
????f?=?c?*?1.8?+?32
????print('華氏溫度為:%.2f'?%?f)
else:
????print('請(qǐng)輸入?華氏度?或?攝氏度')
例子12:是否構(gòu)成三角形
輸入三個(gè)邊長(zhǎng)度,判斷是否構(gòu)成三角形。構(gòu)成三角形的條件:兩邊之和大于第三邊
。
"""
是否構(gòu)成三角形
"""
a?=?float(input('輸入三角形三條邊:\n a =?'))
b?=?float(input('?b?=?'))
c?=?float(input('?c?=?'))
if?a?+?b?>?c?and?a?+?c?>?b?and?b?+?c?>?a:
????print('能夠構(gòu)成三角形')
else:
????print('不能構(gòu)成三角形')
例子13:輸出成績(jī)等級(jí)
輸入成績(jī)分?jǐn)?shù),輸出分?jǐn)?shù)對(duì)應(yīng)的等級(jí)。
>=90分得A,[80, 90) 得B,[70, 80)得C,[60, 70)得D,< 60得E
"""
輸出成績(jī)等級(jí)
"""
score?=?float(input('請(qǐng)輸入成績(jī):?'))
if?score?>=?90:
????grade?=?'A'
elif?score?>=?80:
????grade?=?'B'
elif?score?>=?70:
????grade?=?'C'
elif?score?>=?60:
????grade?=?'D'
else:
????grade?=?'E'
print('成績(jī)等級(jí)是:',?grade)
例子14:計(jì)算提成
某企業(yè)的獎(jiǎng)金根據(jù)銷售利潤(rùn)按照如下規(guī)則計(jì)算提成。輸入銷售利潤(rùn),計(jì)算獎(jiǎng)金。
利潤(rùn) <= 10萬(wàn),獎(jiǎng)金可提10%
10萬(wàn) < 利潤(rùn) <= 20萬(wàn),高出10萬(wàn)的部分提 7.5%
20萬(wàn) < 利潤(rùn) <= 40萬(wàn),高出20萬(wàn)元的部分提5%
40萬(wàn) < 利潤(rùn) <= 60萬(wàn),高出40萬(wàn)元的部分提3%
利潤(rùn) > 60萬(wàn),超過(guò)60萬(wàn)的部分提1%
"""
計(jì)算提成?v1.0
"""
profit?=?float(input('輸入銷售利潤(rùn)(元):?'))
if?profit?<=?100000:
????bonus?=?profit?*?0.1
elif?profit?<=?200000:
????bonus?=?100000?*?0.1?+?(profit?-?100000)?*?0.075
elif?profit?<=?400000:
????bonus?=?100000?*?0.1?+?200000?*?0.075?+?(profit?-?200000)?*?0.05
elif?profit?<=?600000:
????bonus?=?100000?*?0.1?+?200000?*?0.075?+?400000?*?0.05?+?(profit?-?400000)?*?0.03
else:
????bonus?=?100000?*?0.1?+?200000?*?0.075?+?400000?*?0.05?+?600000?*?0.03?+?(profit?-?600000)?*?0.01
print('獎(jiǎng)金:%.2f'?%?bonus)
例子15:實(shí)現(xiàn)分段函數(shù)
數(shù)學(xué)中經(jīng)常會(huì)見(jiàn)到分段函數(shù),用程序?qū)崿F(xiàn)如下分段函數(shù)
"""
分段函數(shù)
"""
x?=?int(input('輸入:'))
if?x?>?0:
????y?=?3?*?x?**?2?+?4
else:
????y?=?2?*?x?+?2
print('f(%d)?=?%d'?%?(x,?y))
例子16:1-n求和
輸入正整數(shù)n,計(jì)算 1 + 2 + ... + n的結(jié)果。
"""
1-n求和
"""
n?=?int(input('輸入n:'))
s?=?0
while?n?>=?1:
????s?+=?n
????n?-=?1
print('1-%d 求和結(jié)果:?%d'?%?(n,?s))
例子17:累加器 v2.0
之前實(shí)現(xiàn)的累加器只能支持 3 個(gè)數(shù)相加,現(xiàn)在需要去掉該限制,可以無(wú)限相加。
"""
累加器?v1.0
"""
s?=?0
while?True:
????in_str?=?input('輸入整數(shù)(輸入q,則退出):')
????if?in_str?==?'q':
????????break
????x?=?int(in_str)
????s?+=?x
????print('加和:%d'?%?s)
例子18:猜數(shù)游戲
程序隨機(jī)生成一個(gè)正整數(shù),用戶來(lái)猜,程序根據(jù)猜的大小給出相應(yīng)的提示。最后,輸出用戶猜了多少次才猜中。
"""
猜數(shù)游戲
"""
import?random
answer?=?random.randint(1,?100)
counter?=?0
while?True:
????counter?+=?1
????number?=?int(input('猜一個(gè)數(shù)字(1-100):?'))
????if?number?<?answer:
????????print('再大一點(diǎn)')
????elif?number?>?answer:
????????print('再小一點(diǎn)')
????else:
????????print('猜對(duì)了')
????????break
print(f'共猜了{(lán)counter}次')
例子19:打印乘法口訣表
"""
打印乘法口訣表
"""
for?i?in?range(1,?10):
????for?j?in?range(1,?i?+?1):
????????print(f'{i}*{j}={i?*?j}',?end='\t')
例子20:是否是素?cái)?shù)
輸入一個(gè)正整數(shù),判斷是否是素?cái)?shù)。素?cái)?shù)定義:大于1的自然數(shù)中,只能被1和它本身整除的自然數(shù)。如:3、5、7
"""
判斷是否是素?cái)?shù)
"""
num?=?int(input('請(qǐng)輸入一個(gè)正整數(shù):?'))
end?=?int(num?//?2)?+?1??#?只判斷前半部分是否能整除即可,前半部分沒(méi)有能整除的因此,后半部分肯定也沒(méi)有
is_prime?=?True
for?x?in?range(2,?end):
????if?num?%?x?==?0:
????????is_prime?=?False
????????break
if?is_prime?and?num?!=?1:
????print('素?cái)?shù)')
else:
????print('不是素?cái)?shù)')
range(2, end) 可以生成 2, 3, ... end序列,并依次賦值給 x 執(zhí)行循環(huán)。range還有如下用法
range(10):生成 0, 1, 2, ... 9 序列
range(1, 10, 2):生成 1, 3, 5, ... 9 序列
例子21:斐波那契數(shù)列
輸入正整數(shù) n,計(jì)算第 n 位的斐波那契數(shù)。斐波那契數(shù)列當(dāng)前位置的數(shù)字等于前兩個(gè)數(shù)字之和,1 1 2 3 5 8 ...
"""
斐波那契數(shù)列?v1.0
"""
n?=?int(input('輸入n:?'))
a,?b?=?0,?1
for?_?in?range(n):
????a,?b?=?b,?a?+?b
print(f'第?{n}?位斐波那契數(shù)是:{a}')
例子22:水仙花數(shù)
水仙花數(shù)是一個(gè)3位數(shù),該數(shù)字每個(gè)位上數(shù)字的立方和正好等于它本身,例如:
"""
水仙花數(shù)
"""
for?num?in?range(100,?1000):
????low?=?num?%?10
????mid?=?num?//?10?%?10
????high?=?num?//?100
????if?num?==?low?**?3?+?mid?**?3?+?high?**?3:
????????print(num)
例子23:猴子吃桃
猴子第一天摘了 n 個(gè)桃子,當(dāng)天吃了一半,還不癮,又多吃了一個(gè)
第二天早上又將剩下的桃子吃掉一半,又多吃了一個(gè)
以后每天早上都吃了前一天剩下的一半零一個(gè)。
到第10天早上想再吃時(shí),剩下一個(gè)桃子。求第一天共摘了多少。
反向思考:第 n-1 天的桃子 = (第n天桃子 + 1) * 2,從 第 10 天循環(huán)計(jì)算道第一天即可
"""
猴子吃桃
"""
peach?=?1
for?i?in?range(9):
????peach?=?(peach?+?1)?*?2
print(peach)
例子24:打印菱形
輸出如下菱形圖案
***
*****
*******
*****
***
"""
輸出菱形
"""
for?star_num?in?range(1,?7,?2):
????blank_num?=?7?-?star_num
????for?_?in?range(blank_num?//?2):
????????print('?',?end='')
????for?_?in?range(star_num):
????????print('*',?end='')
????for?_?in?range(blank_num?//?2):
????????print('?',?end='')
????print()
for?_?in?range(7):
????print('*',?end='')
print()
for?star_num?in?range(5,?0,?-2):
????blank_num?=?7?-?star_num
????for?_?in?range(blank_num?//?2):
????????print('?',?end='')
????for?_?in?range(star_num):
????????print('*',?end='')
????for?_?in?range(blank_num?//?2):
????????print('?',?end='')
????print()
例子25:計(jì)算提成 v2.0
將?例子14:計(jì)算提成
改用列表+循環(huán)的方式,代碼更簡(jiǎn)潔,并且可以處理更靈活。
"""
計(jì)算提成?v2.0
"""
profit?=?int(input('輸入銷售利潤(rùn)(元):?'))
bonus?=?0
thresholds?=?[100000,?200000,?400000,?600000]
rates?=?[0.1,?0.075,?0.05,?0.03,?0.01]
for?i?in?range(len(thresholds)):
????if?profit?<=?thresholds[i]:
????????bonus?+=?profit?*?rates[i]
????????break
????else:
????????bonus?+=?thresholds[i]?*?rates[i]
bonus?+=?(profit?-?thresholds[-1])?*?rates[-1]
print('獎(jiǎng)金:%.2f'?%?bonus)
例子26:某天是一年中的第幾天
輸入某個(gè)日期,計(jì)算當(dāng)天是一年中的第幾天
"""
計(jì)算某天是一年中的第幾天
"""
months?=?[0,?31,?28,?31,?30,?31,?30,?31,?31,?30,?31,?30,?31]
res?=?0
year?=?int(input('年份:?'))
month?=?int(input('月份:?'))
day?=?int(input('幾號(hào):?'))
if?year?%?4?==?0?and?year?%?100?!=?0?or?year?%?400?==?0:?#?閏年二月?29?天
????months[2]?+=?1
for?i?in?range(month):
????res?+=?months[i]
print(res+day)
例子27:回文字符串
判斷一個(gè)字符串是否是回文串
,回文串是一個(gè)正讀和反讀都一樣的字符串,如:level
"""
判斷是否是回文串
"""
s?=?input('輸入字符串:')
i?=?0
j?=?-1
s_len?=?len(s)
flag?=?True
while?i?!=?s_len?+?j:
????if?s[i]?!=?s[j]:
????????flag?=?False
????????break
????i?+=?1
????j?+=?-1
print('是回文串'?if?flag?else?'不是回文串')
例子28:個(gè)人信息輸入輸出
不定義類的情況下,可以將個(gè)人信息保存在元祖中
students?=?[]
while?True:
????input_s?=?input('輸入學(xué)生信息(學(xué)號(hào)?姓名?性別),空格分隔(輸入q,則退出):')
????if?input_s?==?'q':
????????break
????input_cols?=?input_s.split('?')
????students.append((input_cols[0],?input_cols[1],?input_cols[2]))
print(students)
例子29:個(gè)人信息排序
個(gè)人信息保存在元組中,并按照學(xué)號(hào)、姓名或者性別排序。
"""
個(gè)人信息排序
"""
students?=?[]
cols_name?=?['學(xué)號(hào)',?'姓名',?'性別']
while?True:
????input_s?=?input('輸入學(xué)生信息(學(xué)號(hào)?姓名?性別),空格分隔(輸入q,則退出):')
????if?input_s?==?'q':
????????break
????input_cols?=?input_s.split('?')
????students.append((input_cols[0],?input_cols[1],?input_cols[2]))
sorted_col?=?input('輸入排序?qū)傩裕?)
sorted_idx?=?cols_name.index(sorted_col)??#?根據(jù)輸入的屬性獲取元組的索引
print(sorted(students,?key=lambda?x:?x[sorted_idx]))
例子30:對(duì)輸入的內(nèi)容去重
對(duì)輸入的內(nèi)容去重,直接用?Python
中?Set
集合實(shí)現(xiàn)
"""
去重
"""
input_set?=?set()
while?True:
????s?=?input('輸入內(nèi)容(輸入q,則退出):')
????if?s?==?'q':
????????break
????input_set.add(s)
print(input_set)
例子31:輸出集合交集
給定Python web工程師
和算法工程師
需要的技能,計(jì)算二者交集。
"""
集合交集
"""
python_web_programmer?=?set()
python_web_programmer.add('python基礎(chǔ)')
python_web_programmer.add('web知識(shí)')
ai_programmer?=?set()
ai_programmer.add('python基礎(chǔ)')
ai_programmer.add('機(jī)器學(xué)習(xí)')
inter_set?=?python_web_programmer.intersection(ai_programmer)
print('技能交集:',?end='')
print(inter_set)
Python set集合除了能計(jì)算交集,還可以計(jì)算并集、補(bǔ)集
例子32:猜拳游戲
用程序?qū)崿F(xiàn)石頭剪刀布游戲。
"""
猜拳游戲
"""
#?0代表布,1代表剪刀,2代表石頭
import?random
rule?=?{'布':?0,?'剪刀':?1,?'石頭':?2}
rand_res?=?random.randint(0,?2)
input_s?=?input('輸入石頭、剪刀、布:')
input_res?=?rule[input_s]
win?=?True
if?abs(rand_res?-?input_res)?==?2:??#?相差2說(shuō)明是布和石頭相遇,出布一方勝
????if?rand_res?==?0:
????????win?=?False
elif?rand_res?>?input_res:??#?相差1的情況誰(shuí)大誰(shuí)贏
????win?=?False
print(f'程序出:{list(rule.keys())[rand_res]},輸入:{input_res}')
if?rand_res?==?input_res:
????print('平')
else:
????print('贏'?if?win?else?'輸')
例子33:字典排序
字典的key是姓名,value是身高,現(xiàn)在需要按照身高對(duì)字典重新排序。
"""
字典排序
"""
hs?=?{'張三':?178,?'李四':?185,?'王麻子':?175}
print(dict(sorted(hs.items(),?key=lambda?item:?item[1])))
例子34:二元二次函數(shù) v2.0
將二元二次函數(shù)封裝在函數(shù)中,方便調(diào)用
"""
二元二次函數(shù)?v2.0
"""
def?f(x,?y):
????return?2?*?x?**?2?+?3?*?y?**?2?+?4?*?x?*?y
print(f'f(1,?2)?=?{f(1,?2)}')
例子35:斐波那契數(shù)列 v2.0
使用遞歸函數(shù)的形式生成斐波那契數(shù)列
"""
遞歸版斐波那契數(shù)列
"""
def?fib(n):
????return?1?if?n?<=?2?else?fib(n-1)?+?fib(n-2)
print(f'第 10?個(gè)斐波那契數(shù)是:{fib(10)}')
例子36:階乘
定義一個(gè)函數(shù),實(shí)現(xiàn)階乘。n的階乘定義:n! = 1*2*3* ... n
"""
階乘函數(shù)
"""
def?fact(n):
????return?1?if?n?==?1?else?fact(n-1)?*?n
print(f'10!?=?{fact(10)}')
例子37:實(shí)現(xiàn) range 函數(shù)文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-839624.html
編寫(xiě)一個(gè)類似于?Python
中的 range 功能的函數(shù)文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-839624.html
"""
range函數(shù)
"""
def?range_x(start,?stop,?step):
????res?=?[]
????while?start?<?stop:
????????res.append(start)
????????start?+=?step
????return?res
有不少同學(xué)學(xué)完Python
后仍然很難將其靈活運(yùn)用。我整理 37 個(gè)Python
入門的小程序用python畫(huà)滿天星的代碼。在實(shí)踐中應(yīng)用Python
會(huì)有事半功倍的效果。
例子1:華氏溫度轉(zhuǎn)換為攝氏溫度
華氏溫度轉(zhuǎn)攝氏溫度的公式:C = (F - 32) / 1.8
。本例考察Python
的加減乘除運(yùn)算符。
"""
將華氏溫度轉(zhuǎn)換為攝氏溫度
"""
f?=?float(input('輸入華氏溫度:?'))
c?=?(f?-?32)?/?1.8
print('%.1f?華氏度?=?%.1f?攝氏度'?%?(f,?c))
例子2:計(jì)算圓的周長(zhǎng)和面積
輸入半徑,計(jì)算圓的半徑和面積,圓周長(zhǎng)公式:2*π*r,面試公式:π*r^2
"""
半徑計(jì)算圓的周長(zhǎng)和面積
"""
radius?=?float(input('輸入圓的半徑:?'))
perimeter?=?2?*?3.1416?*?radius
area?=?3.1416?*?radius?*?radius
print('周長(zhǎng):?%.2f'?%?perimeter)
print('面積:?%.2f'?%?area)
例子3:實(shí)現(xiàn)一元一次函數(shù)
實(shí)現(xiàn)數(shù)學(xué)里的一元一次函數(shù):f(x) = 2x + 1
"""
一元一次函數(shù)
"""
x?=?int(input('輸入x:'))
y?=?2?*?x?+?1
print('f(%d)?=?%d'?%?(x,?y))
例子4:實(shí)現(xiàn)二元二次函數(shù)
實(shí)現(xiàn)數(shù)學(xué)里的二元二次函數(shù):f(x, y) = 2x^2 + 3y^2 + 4xy
,需要用到指數(shù)運(yùn)算符**
"""
二元二次函數(shù)
"""
x?=?int(input('輸入x:'))
y?=?int(input('輸入y:'))
z?=?2?*?x?**?2?+?3?*?y?**?2?+?4?*?x?*?y
print('f(%d,?%d)?=?%d'?%?(x,?y,?z))
例子5:分離整數(shù)的個(gè)位數(shù)
將一個(gè)正整數(shù)的個(gè)位數(shù),以及除個(gè)位數(shù)外的部分分離。需要用到模(取余數(shù))
運(yùn)算符%
,和整除
運(yùn)算符//
"""
分離整數(shù)個(gè)位數(shù)
"""
x?=?int(input('輸入整數(shù):'))
single_dig?=?x?%?10
exp_single_dig?=?x?//?10
print('個(gè)位數(shù):?%d'?%?single_dig)
print('除個(gè)位數(shù)外:?%d'?%?exp_single_dig)
例子6:實(shí)現(xiàn)一個(gè)累加器
實(shí)現(xiàn)一個(gè)簡(jiǎn)單的累加器,可以接受用戶輸入3個(gè)數(shù)字,并將其累加。需要用到復(fù)合賦值運(yùn)算符:+=
"""
累加器?v1.0
"""
s?=?0
x?=?int(input('輸入整數(shù):'))
s?+=?x
x?=?int(input('輸入整數(shù):'))
s?+=?x
x?=?int(input('輸入整數(shù):'))
s?+=?x
print('總和:%d'?%?s)
例子7:判斷閏年
輸入年份,判斷是否是閏年。閏年判斷方法:能被4整除,但不能被100整除;或者能被 400 整除。需要用到算術(shù)運(yùn)算符
和邏輯運(yùn)算符
"""
判斷閏年
"""
year?=?int(input('輸入年份:?'))
is_leap?=?year?%?4?==?0?and?year?%?100?!=?0?or?year?%?400?==?0
print(is_leap)
例子8:判斷奇偶數(shù)
輸入一個(gè)數(shù)字,判斷基數(shù)還是偶數(shù),需要模
運(yùn)算和if ... else
結(jié)構(gòu)
"""
判斷奇偶數(shù)
"""
in_x?=?int(input('輸入整數(shù):'))
if?in_x?%?2?==?0:
????print('偶數(shù)')
else:
????print('奇數(shù)')
例子9:猜大小
用戶輸入一個(gè) 1-6 之間的整數(shù),與程序隨機(jī)生成的數(shù)字作比較。需要用到if ... elif ... else
結(jié)構(gòu)
"""
猜大小
"""
import?random
in_x?=?int(input('輸入整數(shù):'))
rand_x?=?random.randint(1,?6)
print('程序隨機(jī)數(shù):?%d'?%?rand_x)
if?in_x?>?rand_x:
????print('用戶贏')
elif?in_x?<?rand_x:
????print('程序贏')
else:
????print('打平')
說(shuō)明:random是Python的隨機(jī)數(shù)模塊,調(diào)用 random.randint 可以生成一個(gè)隨機(jī)數(shù),類型為 int。randint(1, 6) 表示生成 [1, 6] 之間的隨機(jī)數(shù)。
例子10:判斷閏年
之前判斷閏年是輸出True
或False
,這次需要輸出文字版閏年
或平年
"""
判斷閏年
"""
year?=?int(input('輸入年份:?'))
if?year?%?4?==?0?and?year?%?100?!=?0?or?year?%?400?==?0:
????print('閏年')
else:
????print('平年')
例子11:攝氏度與華氏度互轉(zhuǎn)
之前做過(guò)華氏度轉(zhuǎn)攝氏度,現(xiàn)在通過(guò)分支結(jié)構(gòu)
實(shí)現(xiàn)二者互轉(zhuǎn)。
"""
攝氏度與華氏度互換
"""
trans_type?=?input('輸入轉(zhuǎn)攝氏度還是華氏度:')
if?trans_type?==?'攝氏度':??#?執(zhí)行華氏度轉(zhuǎn)攝氏度的邏輯
????f?=?float(input('輸入華氏溫度:'))
????c?=?(f?-?32)?/?1.8
????print('攝氏溫度為:%.2f'?%?c)
elif?trans_type?==?'華氏度':??#?執(zhí)行攝氏度轉(zhuǎn)華氏度的邏輯
????c?=?float(input('輸入攝氏溫度:'))
????f?=?c?*?1.8?+?32
????print('華氏溫度為:%.2f'?%?f)
else:
????print('請(qǐng)輸入?華氏度?或?攝氏度')
例子12:是否構(gòu)成三角形
輸入三個(gè)邊長(zhǎng)度,判斷是否構(gòu)成三角形。構(gòu)成三角形的條件:兩邊之和大于第三邊
。
"""
是否構(gòu)成三角形
"""
a?=?float(input('輸入三角形三條邊:\n a =?'))
b?=?float(input('?b?=?'))
c?=?float(input('?c?=?'))
if?a?+?b?>?c?and?a?+?c?>?b?and?b?+?c?>?a:
????print('能夠構(gòu)成三角形')
else:
????print('不能構(gòu)成三角形')
例子13:輸出成績(jī)等級(jí)
輸入成績(jī)分?jǐn)?shù),輸出分?jǐn)?shù)對(duì)應(yīng)的等級(jí)。
>=90分得A,[80, 90) 得B,[70, 80)得C,[60, 70)得D,< 60得E
"""
輸出成績(jī)等級(jí)
"""
score?=?float(input('請(qǐng)輸入成績(jī):?'))
if?score?>=?90:
????grade?=?'A'
elif?score?>=?80:
????grade?=?'B'
elif?score?>=?70:
????grade?=?'C'
elif?score?>=?60:
????grade?=?'D'
else:
????grade?=?'E'
print('成績(jī)等級(jí)是:',?grade)
例子14:計(jì)算提成
某企業(yè)的獎(jiǎng)金根據(jù)銷售利潤(rùn)按照如下規(guī)則計(jì)算提成。輸入銷售利潤(rùn),計(jì)算獎(jiǎng)金。
利潤(rùn) <= 10萬(wàn),獎(jiǎng)金可提10%
10萬(wàn) < 利潤(rùn) <= 20萬(wàn),高出10萬(wàn)的部分提 7.5%
20萬(wàn) < 利潤(rùn) <= 40萬(wàn),高出20萬(wàn)元的部分提5%
40萬(wàn) < 利潤(rùn) <= 60萬(wàn),高出40萬(wàn)元的部分提3%
利潤(rùn) > 60萬(wàn),超過(guò)60萬(wàn)的部分提1%
"""
計(jì)算提成?v1.0
"""
profit?=?float(input('輸入銷售利潤(rùn)(元):?'))
if?profit?<=?100000:
????bonus?=?profit?*?0.1
elif?profit?<=?200000:
????bonus?=?100000?*?0.1?+?(profit?-?100000)?*?0.075
elif?profit?<=?400000:
????bonus?=?100000?*?0.1?+?200000?*?0.075?+?(profit?-?200000)?*?0.05
elif?profit?<=?600000:
????bonus?=?100000?*?0.1?+?200000?*?0.075?+?400000?*?0.05?+?(profit?-?400000)?*?0.03
else:
????bonus?=?100000?*?0.1?+?200000?*?0.075?+?400000?*?0.05?+?600000?*?0.03?+?(profit?-?600000)?*?0.01
print('獎(jiǎng)金:%.2f'?%?bonus)
例子15:實(shí)現(xiàn)分段函數(shù)
數(shù)學(xué)中經(jīng)常會(huì)見(jiàn)到分段函數(shù),用程序?qū)崿F(xiàn)如下分段函數(shù)
"""
分段函數(shù)
"""
x?=?int(input('輸入:'))
if?x?>?0:
????y?=?3?*?x?**?2?+?4
else:
????y?=?2?*?x?+?2
print('f(%d)?=?%d'?%?(x,?y))
例子16:1-n求和
輸入正整數(shù)n,計(jì)算 1 + 2 + ... + n的結(jié)果。
"""
1-n求和
"""
n?=?int(input('輸入n:'))
s?=?0
while?n?>=?1:
????s?+=?n
????n?-=?1
print('1-%d 求和結(jié)果:?%d'?%?(n,?s))
例子17:累加器 v2.0
之前實(shí)現(xiàn)的累加器只能支持 3 個(gè)數(shù)相加,現(xiàn)在需要去掉該限制,可以無(wú)限相加。
"""
累加器?v1.0
"""
s?=?0
while?True:
????in_str?=?input('輸入整數(shù)(輸入q,則退出):')
????if?in_str?==?'q':
????????break
????x?=?int(in_str)
????s?+=?x
????print('加和:%d'?%?s)
例子18:猜數(shù)游戲
程序隨機(jī)生成一個(gè)正整數(shù),用戶來(lái)猜,程序根據(jù)猜的大小給出相應(yīng)的提示。最后,輸出用戶猜了多少次才猜中。
"""
猜數(shù)游戲
"""
import?random
answer?=?random.randint(1,?100)
counter?=?0
while?True:
????counter?+=?1
????number?=?int(input('猜一個(gè)數(shù)字(1-100):?'))
????if?number?<?answer:
????????print('再大一點(diǎn)')
????elif?number?>?answer:
????????print('再小一點(diǎn)')
????else:
????????print('猜對(duì)了')
????????break
print(f'共猜了{(lán)counter}次')
例子19:打印乘法口訣表
"""
打印乘法口訣表
"""
for?i?in?range(1,?10):
????for?j?in?range(1,?i?+?1):
????????print(f'{i}*{j}={i?*?j}',?end='\t')
例子20:是否是素?cái)?shù)
輸入一個(gè)正整數(shù),判斷是否是素?cái)?shù)。素?cái)?shù)定義:大于1的自然數(shù)中,只能被1和它本身整除的自然數(shù)。如:3、5、7
"""
判斷是否是素?cái)?shù)
"""
num?=?int(input('請(qǐng)輸入一個(gè)正整數(shù):?'))
end?=?int(num?//?2)?+?1??#?只判斷前半部分是否能整除即可,前半部分沒(méi)有能整除的因此,后半部分肯定也沒(méi)有
is_prime?=?True
for?x?in?range(2,?end):
????if?num?%?x?==?0:
????????is_prime?=?False
????????break
if?is_prime?and?num?!=?1:
????print('素?cái)?shù)')
else:
????print('不是素?cái)?shù)')
range(2, end) 可以生成 2, 3, ... end序列,并依次賦值給 x 執(zhí)行循環(huán)。range還有如下用法
range(10):生成 0, 1, 2, ... 9 序列
range(1, 10, 2):生成 1, 3, 5, ... 9 序列
例子21:斐波那契數(shù)列
輸入正整數(shù) n,計(jì)算第 n 位的斐波那契數(shù)。斐波那契數(shù)列當(dāng)前位置的數(shù)字等于前兩個(gè)數(shù)字之和,1 1 2 3 5 8 ...
"""
斐波那契數(shù)列?v1.0
"""
n?=?int(input('輸入n:?'))
a,?b?=?0,?1
for?_?in?range(n):
????a,?b?=?b,?a?+?b
print(f'第?{n}?位斐波那契數(shù)是:{a}')
例子22:水仙花數(shù)
水仙花數(shù)是一個(gè)3位數(shù),該數(shù)字每個(gè)位上數(shù)字的立方和正好等于它本身,例如:
"""
水仙花數(shù)
"""
for?num?in?range(100,?1000):
????low?=?num?%?10
????mid?=?num?//?10?%?10
????high?=?num?//?100
????if?num?==?low?**?3?+?mid?**?3?+?high?**?3:
????????print(num)
例子23:猴子吃桃
猴子第一天摘了 n 個(gè)桃子,當(dāng)天吃了一半,還不癮,又多吃了一個(gè)
第二天早上又將剩下的桃子吃掉一半,又多吃了一個(gè)
以后每天早上都吃了前一天剩下的一半零一個(gè)。
到第10天早上想再吃時(shí),剩下一個(gè)桃子。求第一天共摘了多少。
反向思考:第 n-1 天的桃子 = (第n天桃子 + 1) * 2,從 第 10 天循環(huán)計(jì)算道第一天即可
"""
猴子吃桃
"""
peach?=?1
for?i?in?range(9):
????peach?=?(peach?+?1)?*?2
print(peach)
例子24:打印菱形
輸出如下菱形圖案
***
*****
*******
*****
***
"""
輸出菱形
"""
for?star_num?in?range(1,?7,?2):
????blank_num?=?7?-?star_num
????for?_?in?range(blank_num?//?2):
????????print('?',?end='')
????for?_?in?range(star_num):
????????print('*',?end='')
????for?_?in?range(blank_num?//?2):
????????print('?',?end='')
????print()
for?_?in?range(7):
????print('*',?end='')
print()
for?star_num?in?range(5,?0,?-2):
????blank_num?=?7?-?star_num
????for?_?in?range(blank_num?//?2):
????????print('?',?end='')
????for?_?in?range(star_num):
????????print('*',?end='')
????for?_?in?range(blank_num?//?2):
????????print('?',?end='')
????print()
例子25:計(jì)算提成 v2.0
將?例子14:計(jì)算提成
改用列表+循環(huán)的方式,代碼更簡(jiǎn)潔,并且可以處理更靈活。
"""
計(jì)算提成?v2.0
"""
profit?=?int(input('輸入銷售利潤(rùn)(元):?'))
bonus?=?0
thresholds?=?[100000,?200000,?400000,?600000]
rates?=?[0.1,?0.075,?0.05,?0.03,?0.01]
for?i?in?range(len(thresholds)):
????if?profit?<=?thresholds[i]:
????????bonus?+=?profit?*?rates[i]
????????break
????else:
????????bonus?+=?thresholds[i]?*?rates[i]
bonus?+=?(profit?-?thresholds[-1])?*?rates[-1]
print('獎(jiǎng)金:%.2f'?%?bonus)
例子26:某天是一年中的第幾天
輸入某個(gè)日期,計(jì)算當(dāng)天是一年中的第幾天
"""
計(jì)算某天是一年中的第幾天
"""
months?=?[0,?31,?28,?31,?30,?31,?30,?31,?31,?30,?31,?30,?31]
res?=?0
year?=?int(input('年份:?'))
month?=?int(input('月份:?'))
day?=?int(input('幾號(hào):?'))
if?year?%?4?==?0?and?year?%?100?!=?0?or?year?%?400?==?0:?#?閏年二月?29?天
????months[2]?+=?1
for?i?in?range(month):
????res?+=?months[i]
print(res+day)
例子27:回文字符串
判斷一個(gè)字符串是否是回文串
,回文串是一個(gè)正讀和反讀都一樣的字符串,如:level
"""
判斷是否是回文串
"""
s?=?input('輸入字符串:')
i?=?0
j?=?-1
s_len?=?len(s)
flag?=?True
while?i?!=?s_len?+?j:
????if?s[i]?!=?s[j]:
????????flag?=?False
????????break
????i?+=?1
????j?+=?-1
print('是回文串'?if?flag?else?'不是回文串')
例子28:個(gè)人信息輸入輸出
不定義類的情況下,可以將個(gè)人信息保存在元祖中
students?=?[]
while?True:
????input_s?=?input('輸入學(xué)生信息(學(xué)號(hào)?姓名?性別),空格分隔(輸入q,則退出):')
????if?input_s?==?'q':
????????break
????input_cols?=?input_s.split('?')
????students.append((input_cols[0],?input_cols[1],?input_cols[2]))
print(students)
例子29:個(gè)人信息排序
個(gè)人信息保存在元組中,并按照學(xué)號(hào)、姓名或者性別排序。
"""
個(gè)人信息排序
"""
students?=?[]
cols_name?=?['學(xué)號(hào)',?'姓名',?'性別']
while?True:
????input_s?=?input('輸入學(xué)生信息(學(xué)號(hào)?姓名?性別),空格分隔(輸入q,則退出):')
????if?input_s?==?'q':
????????break
????input_cols?=?input_s.split('?')
????students.append((input_cols[0],?input_cols[1],?input_cols[2]))
sorted_col?=?input('輸入排序?qū)傩裕?)
sorted_idx?=?cols_name.index(sorted_col)??#?根據(jù)輸入的屬性獲取元組的索引
print(sorted(students,?key=lambda?x:?x[sorted_idx]))
例子30:對(duì)輸入的內(nèi)容去重
對(duì)輸入的內(nèi)容去重,直接用?Python
中?Set
集合實(shí)現(xiàn)
"""
去重
"""
input_set?=?set()
while?True:
????s?=?input('輸入內(nèi)容(輸入q,則退出):')
????if?s?==?'q':
????????break
????input_set.add(s)
print(input_set)
例子31:輸出集合交集
給定Python web工程師
和算法工程師
需要的技能,計(jì)算二者交集。
"""
集合交集
"""
python_web_programmer?=?set()
python_web_programmer.add('python基礎(chǔ)')
python_web_programmer.add('web知識(shí)')
ai_programmer?=?set()
ai_programmer.add('python基礎(chǔ)')
ai_programmer.add('機(jī)器學(xué)習(xí)')
inter_set?=?python_web_programmer.intersection(ai_programmer)
print('技能交集:',?end='')
print(inter_set)
Python set集合除了能計(jì)算交集,還可以計(jì)算并集、補(bǔ)集
例子32:猜拳游戲
用程序?qū)崿F(xiàn)石頭剪刀布游戲。
"""
猜拳游戲
"""
#?0代表布,1代表剪刀,2代表石頭
import?random
rule?=?{'布':?0,?'剪刀':?1,?'石頭':?2}
rand_res?=?random.randint(0,?2)
input_s?=?input('輸入石頭、剪刀、布:')
input_res?=?rule[input_s]
win?=?True
if?abs(rand_res?-?input_res)?==?2:??#?相差2說(shuō)明是布和石頭相遇,出布一方勝
????if?rand_res?==?0:
????????win?=?False
elif?rand_res?>?input_res:??#?相差1的情況誰(shuí)大誰(shuí)贏
????win?=?False
print(f'程序出:{list(rule.keys())[rand_res]},輸入:{input_res}')
if?rand_res?==?input_res:
????print('平')
else:
????print('贏'?if?win?else?'輸')
例子33:字典排序
字典的key是姓名,value是身高,現(xiàn)在需要按照身高對(duì)字典重新排序。
"""
字典排序
"""
hs?=?{'張三':?178,?'李四':?185,?'王麻子':?175}
print(dict(sorted(hs.items(),?key=lambda?item:?item[1])))
例子34:二元二次函數(shù) v2.0
將二元二次函數(shù)封裝在函數(shù)中,方便調(diào)用
"""
二元二次函數(shù)?v2.0
"""
def?f(x,?y):
????return?2?*?x?**?2?+?3?*?y?**?2?+?4?*?x?*?y
print(f'f(1,?2)?=?{f(1,?2)}')
例子35:斐波那契數(shù)列 v2.0
使用遞歸函數(shù)的形式生成斐波那契數(shù)列
"""
遞歸版斐波那契數(shù)列
"""
def?fib(n):
????return?1?if?n?<=?2?else?fib(n-1)?+?fib(n-2)
print(f'第 10?個(gè)斐波那契數(shù)是:{fib(10)}')
例子36:階乘
定義一個(gè)函數(shù),實(shí)現(xiàn)階乘。n的階乘定義:n! = 1*2*3* ... n
"""
階乘函數(shù)
"""
def?fact(n):
????return?1?if?n?==?1?else?fact(n-1)?*?n
print(f'10!?=?{fact(10)}')
例子37:實(shí)現(xiàn) range 函數(shù)
編寫(xiě)一個(gè)類似于?Python
中的 range 功能的函數(shù)
"""
range函數(shù)
"""
def?range_x(start,?stop,?step):
????res?=?[]
????while?start?<?stop:
????????res.append(start)
????????start?+=?step
????return?res
到了這里,關(guān)于python小程序代碼50 到100行,python編程100個(gè)小程序的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!