15個(gè)Python入門小程序,你都知道哪些
有不少同學(xué)學(xué)完P(guān)ython后仍然很難將其靈活運(yùn)用。我整理15個(gè)Python入門的小程序。在實(shí)踐中應(yīng)用Python會(huì)有事半功倍的效果。
01 實(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))
02 分離整數(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)
03 實(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)
04 判斷閏年
輸入年份,判斷是否是閏年。閏年判斷方法:能被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)
05 判斷奇偶數(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ù)')
06 攝氏度與華氏度互轉(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)輸入 華氏度 或 攝氏度')
07 是否構(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)成三角形')
08 輸出成績(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)
09 計(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)
10 猜數(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}次')
11 打印乘法口訣表
- """
- 打印乘法口訣表
- """
- for i in range(1, 10):
- for j in range(1, i + 1):
- print(f'{i}*{j}={i * j}', end='\t')
12 是否是素?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 序列
13 猜拳游戲
用程序?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 '輸')
14 字典排序
字典的key是姓名,value是身高,現(xiàn)在需要按照身高對(duì)字典重新排序。
- """
- 字典排序
- """
- hs = {'張三': 178, '李四': 185, '王麻子': 175}
- print(dict(sorted(hs.items(), key=lambda item: item[1])))
15 二元二次函數(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)}')
最后
初學(xué)python的小伙伴注意哦~不要只依賴于教程,而忽視實(shí)操的能力。不然,是很難有進(jìn)步的??梢远鄤?dòng)動(dòng)手,嘗試一下,積累經(jīng)驗(yàn)。
希望對(duì)你們有幫助,喜歡這篇內(nèi)容的小伙伴們就點(diǎn)個(gè)贊和關(guān)注!