1.列印以下圖形
* * * * *
* * * *
* * *
* **
for i in range(5, 0, -1):
print('*' * i)
2.列印以下圖形
* * * * *
* * * *
* * *
* **
for i in range(5, 0, -1):
print(('*' * i).rjust(5, ' '))
3.列印以下圖形
** *
* * *
* * * *
* * * * *
for i in range(1, 6, 1):
print(('*' * i).rjust(5, ' '))
4.列印出9x9乘法表
1x1=1
1x2=2 2x2=4
.....
1x9=9 .... 9x9=81
for i in range(1, 10):
for j in range(1, 10):
if i >= j:
print(f' * = ', end='\t')
print()
for i in range(1, 10):
for j in range(1, i + 1):
print(f' * = ', end='\t')
print()
5、求 0 -1 + 2 - 3 + 4 - 5 + 6 -7.... + 100
s = 0
for i in range(101):
if i % 2 == 0:
s = s + i
else:
s = s - i
print(s)
6、水仙花數:水仙花數是指乙個 n 位數 ( n 大於等於 3 ),它的每個位上的數字的 n 次冪之和等於它本身。
(例如:1的3次方 + 5的三次方 + 3三次方 = 153)。根據這個要求,列印所有三位數的水仙花數。
for n in range(100, 1000, 1):
a = n % 10
b = (n // 10) % 10
c = n // 100
if n == a ** 3 + b ** 3 + c ** 3:
print(n)
7、題目:猴子吃桃問題:猴子第一天摘下若干個桃子,當即吃了一半,還不癮,又多吃了乙個,第二天早上又將剩下的桃子吃掉一半,又多吃了乙個。
以後每天早上都吃了前一天剩下的一半零乙個。到第10天早上想再吃時,見只剩下乙個桃子了。求第一天共摘了多少。
程式分析:採取逆向思維的方法,從後往前推斷。
num = 1
for i in range(1, 10):
print(num)
num = (1 + num) * 2
print(num)
另一種方式
peach = [1]
for i in range(9):
peach.reverse()
print(peach)
8.練習:將列表[45,23,2,5,3,2,6,45,43,21,66,2,3,2]進行從小到大排序,不能用sort()函式,思路:
新建乙個列表的形式實現
li = [45, 23, 2, 5, 3, 2, 6, 45, 43, 21, 66, 2, 3, 2]
line =
for i in range(len(li) - 1): # n-1趟排序
for j in range(len(li) - 1 - i):
if li[j] < li[j + 1]:
li[j], li[j + 1] = li[j + 1], li[j]
print(line)
直接使用排序方法轉化
for i in range(len(li) - 1):#氣泡排序
for j in range(len(li) - i - 1):
if li[j] > li[j + 1]:
li[j + 1], li[j] = li[j], li[j + 1]
for i in range(1, len(arr)):#for+while實現插入排序
key = arr[i]
j = i - 1
while j >= 0 and key < arr[j]:
arr[j + 1] = arr[j]
j -= 1
arr[j + 1] = key
for i in range(1, len(li)):#兩個for實現插入排序
for j in range(i, 0, -1):
if li[j] < li[j - 1]:
li[j], li[j - 1] = li[j - 1], li[j]
def select_sort_******(li): # 選擇排序演算法簡單版
li_new = # 新建乙個列表
for i in range(len(li)):
min_val = min(li) # 獲取無序區列表最小值
li.remove(min_val) # 無序區列表刪除最小值
print(li_new)
def select_sort(li):
for i in range(len(li) - 1): # i是第幾趟
min_loc = i # i是無須區第乙個數
for j in range(i + 1, len(li)): # range(i + 1, len(li))代表除i外剩下的無序數
if li[j] < li[min_loc]: # 將無序區剩下的數與第乙個無序數i比較
min_loc = j # 獲取無序區列表最小值下標
li[i], li[min_loc] = li[min_loc], li[i] # 交換最小值
print(li)
Python習題集(四)
如果乙個 3 位數等於其各位數字的立方和,則稱這個數為水仙花數。例如 153 1 3 5 3 3 3,因此 153 就是乙個水仙花數 那麼問題來了,求1000以內的水仙花數 3位數 int轉字串序列,獲取到每一位數 呼叫math.pow函式求立方和 三個數字立方和相加 lists for i in ...
Python習題集(十二)
請寫乙個函式find odd,引數是1個列表,請返回該列表 現奇數次的元素 比如 find odd 1,1,2,2,5,2,4,4,1,2,5 1 find odd 20,1,1,2,2,3,3,5,5,4,20,4,5 5 find odd 10 10 迴圈列表 呼叫列表內建統計函式計算當前元素出...
Python習題集(十六)
寫乙個函式replace,該函式引數是兩個字串,第乙個引數給出乙個源,第二個引數是指定範圍。要求該函式將 第乙個引數裡面的字串中 落在第二個引數指定範圍內的字串替換為 號 比如replace abcdef c e ab f replace rattle r z a le replace micros...