第 1 題,輸出九九乘法表
分析思路:
1. for 迴圈機制,先取第乙個for迴圈i的第1個值,跟j遍歷完來組合。11 12 13 ... 21 22 23...
得出結論,此處的 i 無需做限制。
2. 找規律
第1行: j = 1 i = 1
第2行: j = 1,2 i = 2
第3行: j = 1,2,3 i = 3
得出結論:j 的最大取值不可大於 i ,只能小於等於,故限制 j 取值範圍(1, i+1) => range 函式左閉右開
3. 注意點:
必須使用格式化輸出,\t製表符排版,j 遍歷完一次就必須換行。
for i in range(1, 10):
for j in range(1, i+1):
print("%d*%d=%d" % (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
第 2 題,有 1 2 3 4 這四個數字,能組成多少個互相不同且無重複數字的 3 位數,分別是什麼。
思路:要組成幾位數,就用幾個for迴圈,無論給了幾個數字,全部放進列表,都不用改**。
count = 0
m = [1, 2, 3, 4]
for a in m:
for b in m:
for c in m:
if a != b and b != c and a != c:
count += 1
print(a, b, c)
print()
print("能組成%d 個不相同且無重複的3位數" % count)
第 3 題,跟電腦玩剪刀石頭布遊戲,一直迴圈玩,可手動退出,不玩了就計算玩家勝率
def play_game():
# 總把數
count = 0
# 勝率把數
player_win = 0
while true:
import random
computer = random.randint(1, 3)
player = int(input("請輸入數字,1剪刀,2石頭,3布,0手動退出:"))
# 手動退出遊戲
if player == 0:
# 判斷一次沒玩就退出遊戲
if count == 0:
print("您還沒開始遊戲!!!")
break
print("遊戲結束!!!")
print("玩家玩了:%d把,贏了:%d把,勝率:%.2f%%" % (count, player_win, player_win/count * 100))
break
# elif player < 1 or player > 3:
elif player not in (1, 2, 3):
print("請輸入1-3之間的數字")
# 增加換行,美化顯示效果
print()
continue
# 把數計數
count += 1
print("電腦出拳為:%d" % computer)
if player == computer - 1 or player == computer + 2:
print("玩家勝利!")
# 玩家勝利計數
player_win += 1
elif player == computer:
print("平局!")
else:
print("電腦勝利")
print()
play_game()
第 4 題,尋找15到20歲的女孩子當拉拉隊員,詢問,符合要求輸出加入成功,詢問10次後,輸出滿足條件總人數
member = {}
count = 0
met_count = 0
def laladui(num):
global met_count
if num["gender"] == "女" and 15 <= num["age"] <= 20:
print("可以加入球隊!")
met_count += 1
else:
return
while true:
gender, age = eval(input("請輸入性別(加引號),年齡:"))
member["gender"] = gender
member["age"] = age
laladui(member)
count += 1
if count > 5:
print()
print("已經詢問過%d個人" % count)
print("符合條件的人數是:%d" % met_count)
break
第 5 題,利用 for 迴圈給列表 ls = [1,7,4,89,34,2,100,0] 從小到大排序,==>氣泡排序法
思路:先取列表的第乙個數字,依次跟後面的數字比較大小,如果第乙個數字比後面的大,則交換位置。
利用下標來取值,第乙個數字a依次從 第一位取到倒數第一位(把最後一位留給第二個數字b來取,好做比較)
第二個數字b依次從第二位取到最後一位。以此類推,當把列表中數字取完,結果就出來了。
a = [1, 7, 4, 89, 34, 2, 100, 0]
for i in range(0, len(a)-1):
for j in range(i+1, len(a)):
if a[i] > a[j]:
a[i], a[j] = a[j], a[i]
print(a)
Python入門經典練習題之坦克大戰(簡化版)
coding utf 8 author keen created on 2019 5 18 e mail keen2020 outlook.com import random class basetank object 類屬性,定義初始值 def init self self.live 1 self...
python入門練習題
1.使用者鍵盤輸入一年份,判斷是否為閏年?如果是閏年,則輸出 是閏年 如果不是閏年,則輸出 不是閏年 判斷閏年的方法 1 能被4整除但不能被100整除 2 能被400整除 2.for迴圈巢狀 列印9 9乘法表 3.輸入兩個數,求這兩個數的最大公約數和最小公倍數 1.企業發放的獎金根據利潤提成。利潤 ...
python入門練習題2
1.利用遞迴方法求5!def tang j sum value 0 if j 0 sum value 1 else sum value j tang j 1 return sum valuefor i in range 10 print d d i,tang i 利用遞迴函式呼叫方式,將所輸入的5個...