Python100道練習題(不定期更新中)

2022-07-21 06:00:13 字數 4615 閱讀 2753

# 100道練習題

"""2020.7.9 筆記

""""""

題目1:有四個數字:1、2、3、4,能組成多少個互不相同且無重複數字的三位數?各是多少?

"""def exercise_1():

arr =

for i in range(1, 5):

for j in range(1, 5):

for k in range(1, 5):

num = i * 100 + j * 10 + k

if i != j and i != k and j != k:

print(len(arr), arr)

# exercise_1()

"""本題可以直接使用python自帶的排列函式

itertools:combinations 組合,permutations 排列, combinations_with_replace 放回式組合, product 笛卡爾積

"""def exercise_1_1():

import itertools

temp = list(itertools.permutations([1, 2, 3, 4], 3))

arr = [t[0] * 100 + t[1] * 10 + t[0] for t in temp]

print(len(arr), arr)

# exercise_1_1()

"""題目002:企業發放的獎金根據利潤(i)的多少來提成:

低於或等於10萬元時,獎金可提10%;

利潤高於10萬元,低於20萬元時,低於10萬元的部分按10%提成,高於10萬元的部分,可提成7.5%;

20萬到40萬之間時,高於20萬元的部分,可提成5%;

40萬到60萬之間時高於40萬元的部分,可提成3%;

60萬到100萬之間時,高於60萬元的部分,可提成1.5%;

高於100萬元時,超過100萬元的部分按1%提成。

從鍵盤輸入當月利潤i,求應發放獎金總數?

解析:此類問題可以用數軸方法解決。

"""def exercise_2():

money = int(input("please input:"))

arr = [1000000, 600000, 400000, 200000, 100000, 0]

rat = [0.01, 0.015, 0.03, 0.05, 0.075, 0.1]

bonus = 0

for i in range(len(arr)):

if money > arr[i]:

bonus += (money - arr[i]) * rat[i]

money = arr[i]

print(bonus)

# exercise_2()

"""題目003:乙個整數,它加上100後是乙個完全平方數,再加上168又是乙個完全平方數,請問該數是多少?

分析:考慮區間

m + 100 >= 0,m >= -100

(x + 1)^2 - x^2 = 168,得x = 83.5,上界為84,可以取7000

"""def exercise_3():

import math

for i in range(-100, 7000):

m = math.sqrt(i + 100)

n = math.sqrt(i + 100 + 168)

if m % 1 == 0 and n % 1 == 0:

print(i)

# exercise_3()

def exercise_3_1():

arr =

res =

for i in range(84):

for elem in arr:

if elem + 168 in arr:

print(len(res), res)

# exercise_3_1()

"""題目004:輸入某年某月某日,判斷這一天是這一年的第幾天?

分析:python有時間元組

tm_year 年

tm_mon 月(1~12)

tm_mday 日(1~31)

tm_hour 時(0~23)

tm_min 分(0~59)

tm_sec 秒(0~61, 60或61是閏秒)

tm_wday 星期(0~6, 0是周一)

tm_yday 第幾天(1~366)

tm_isdst 夏令時

"""def exercise_4():

import time

data = input('please input data(ex.2018-1-1)')

res = time.strptime(data, '%y-%m-%d') # 格式化

print(res.tm_yday)

# exercise_4()

"""題目005:輸入三個整數x,y,z,請把這三個數由小到大輸出

分析:排序,對於三個數可以直接判斷,sorted()函式即可,此題略。

""""""

題目006:斐波那契數列,根據定義計算即可,略

""""""

題目007:將乙個列表的資料複製到另乙個列表中。

分析:注意列表的複製

"""def exercise_7():

a = [1, 2, 3]

b = a[:]

c = a # 注意區別

a[0] = 4

print(id(a), id(b), id(c), sep='\n')

print(a, b, c, sep='\n')

# exercise_7()

"""題目008:輸出乘法口訣表

分析:略

"""def exercise_8():

for i in range(1, 10):

for j in range(1, 10):

if j <= i:

st = ' * = ' % (j, i, j * i)

print('%-20s' % st, end=' ')

print('')

# exercise_8()

def exercise_8_1():

for i in range(1, 10):

for j in range(1, i + 1):

print(" * = ".format(j, i, i * j), end="\t")

print('')

# exercise_8_1()

"""題目9:暫停1秒輸出

"""def exercise_9():

import time

a = time.time()

time.sleep(1)

b = time.time()

print(b - a)

# exercise_9()

"""題目10:暫停1秒輸出,並格式化時間

"""def exercise_10():

import time

a = time.strftime('%y-%m-%d %h:%m:%s', time.localtime(time.time()))

print(a)

time.sleep(1)

b = time.strftime('%y-%m-%d %h:%m:%s', time.localtime(time.time()))

print(b)

# exercise_10()

"""題目011:古典問題:

有一對兔子,

從出生後第3個月起每個月都生一對兔子,

小兔子長到第三個月後每個月又生一對兔子。

假如兔子都不死。

問每個月的兔子總數為多少?

分析:斐波那契數列的變種

"""def exercise_11():

month = input("please input the number of mouths:")

m_1 = 1

m_2 = 0

m_3 = 0

for i in range(1, int(month) + 1): # 注意mouth的型別

m_3 += m_2

m_2 = m_1

m_1 = m_3

print(i, m_1 + m_2 + m_3)

# exercise_11()

"""題目012:判斷101-200之間有多少個素數,並輸出所有素數。

"""def exercise_12():

import math

arr =

for i in range(101, 201):

flag = false

for j in range(2, int(math.sqrt(i)) + 1):

if i % j == 0:

flag = false

break

else:

flag = true

if flag:

print(len(arr), arr)

# exercise_12()

python 100道練習題

題目 利用條件運算子的巢狀來完成此題 學習成績 90分的同學用a表示,60 89分之間的用b表示,60分以下的用c表示。usr bin python coding utf 8 defk score if score 90 return a elif score 60 return b else re...

Python 100 練習題 01 列表推導式

最近打算好好練習下 python,因此找到乙個練習題 打算每週練習 3 5 題吧。另外,這個 其實也還有 python 的教程,從基礎到高階的知識都有。題目 有四個數字 1 2 3 4,能組成多少個互不相同且無重複數字的三位數?各是多少?思路 最簡單的方法,就是窮舉法了,分別求出在百位 十位 個位上...

Python3經典100道練習題002

題目 企業發放的獎金根據利潤提成。利潤 i 低於或等於 10萬元時,獎金可提 10 利潤高 於10萬元,低於 20萬元時,低於 10萬元的部分按 10 提成,高於 10萬元的部分,可可提 成7.5 20萬到 40萬之間時,高於 20萬元的部分,可提成5 40萬到 60萬之間時高於 40萬元的部分,可...