Python練習
1、 使用python輸出如下圖形,用while循環
# 使用while循環輸出如下圖形:(必須使用雙重while循環實作)
# *
# * *
# * * *
# * * * *
# * * * * *
i = 1
j = 1
while i <= 5:
while j == i:
print('* ' * (i-1)+'*')
j += 1
i += 1
2、 使用python輸出如下圖形,用while循環
# 使用while循環輸出如下圖形:(必須使用雙重while循環實作)
# *
# * *
# * * *
# * * * *
# * * * * *
i = 1
while i <= 5:
j = 1
while j <= i:
if j == 1:
print(" " * (5 - i), end="")
print("* ", end="")
j += 1
print("")
i += 1
3、 過7遊戲
# 設計“過7遊戲”的程式, 列印出1-100之間除了含7和7的倍數之外的所有數字。
num = []
for i in range(1, 101):
if i % 7 != 0 and (i +3) % 10 != 0 and i % 10 != 7:
# 能被7整除、加3以後能被10整除、被10除以後取整等于7
num.append(i)
print(num)
4、水仙花數
# 題目:列印出所有的"水仙花數",所謂"水仙花數"是指一個三位數,
# 其各個位上數字的立方和等于該數本身。例如:153是一個”水仙花數",
num = []
for i in range(100, 1000):
a = i // 100
b = (i - a * 100) // 10
c = i - a * 100 - b * 10
if i == a ** 3 + b ** 3 + c ** 3:
num.append(i)
print(num)
5、石頭剪刀布
# 使用while、if來完成剪刀石頭布程式,要求,
# 當玩家第3次獲勝時才退出遊戲,否則繼續玩。
import random
winNum = 0
while winNum != 3:
computer = random.randint(1, 3)
print(computer)
player = int(input('1是剪刀,2是石頭,3是布。請輸入你要出的數字:'))
if (computer == 1 and player == 2) or (computer == 2 and player == 3) or(computer == 3 and player == 1):
winNum += 1
6、 猜數字:遊戲随機給出一個0~99(包括0和99)的數字,然後讓你猜是什麼數字。你可以随便猜一個數字,遊戲會提示太大還是太小,進而縮小結果範圍。經過幾次猜測與提示後,最終推出答案。在遊戲過程中,記錄你最終猜對時所需要的次數,遊戲結束後公布結果。 說明:
1~2次猜中,列印你太TM有才了!
3~6次猜中,列印這麼快就猜出來了,很聰明嘛!
大于7次猜中,列印猜了半天才猜出來,小同志,尚需努力啊!
猜測次數最多20次。
import random
guessNum = random.randint(0, 99)
print(guessNum)
guessTimes = 0 # 猜的次數
gameTimes = 0 # 遊戲運作次數,主要是用來控制遊戲狀态
game = True # 遊戲狀态
while gameTimes != 20:
while game:
player = int(input('a number:'))
guessTimes += 1
gameTimes += 1
if gameTimes == 20: # 當運作了20次後,關閉遊戲
game = False
if player != guessNum: # 猜的不對時給出提示
if player < guessNum:
print('小了,再一次。')
elif player > guessNum:
print('大了,再來一次。')
else: # 猜對的時候停止遊戲,并輸出結果
game = False
if guessTimes < 2:
print('你太TM有才了!')
elif guessTimes < 6:
print('這麼快就猜出來了,很聰明嘛!')
else:
print('半天才猜出來,小同志,尚需努力啊!')
# print(guessTimes)
7、 紅藍白三色球:有10個球分别為3紅、3藍、4白,球與球之間隻有顔色的差别,現需要将這10個球放入3個盒子,要求每個盒子至少有一個白球,其餘的球全部随機放,要求輸出三個盒子裡所有球的顔色,請用程式實作。
import random
# 建立十個球
RedBall = ['紅球', '紅球', '紅球']
BlueBall = ['藍球', '藍球', '藍球']
WhiteBall = ['白球', '白球', '白球', '白球']
# 建立三個盒子
boxes = [[], [], []]
for box in boxes:
box.append(WhiteBall.pop()) # 将白球放入
print(boxes) # 驗證白球放入情況
balls = RedBall + BlueBall + WhiteBall # 将剩下的球合起來
for ball in balls:
boxNum = random.randint(0, 2) # 随機生成該球要放入盒子的編号
boxes[boxNum].append(ball) # 放球
print(boxes)
8、 輸出0-100的質數
num = []
for i in range(2, 101): # 要避開1
for a in range(2, i//2):
if (i % a == 0):
break
else:
num.append(i)
print(num)
9、 用python輸出如下圖形
# 3、使用while,完成以下圖形的輸出。
# (每一行的星星不能用*乘以星星的數量來完成,須使用while嵌套)
# *
# ***
# *****
# *******
# *********
# *******
# *****
# ***
# *
row = 1 # 哪一行
num = 1 # 每一行星星的數量
while row <= 9:
num1 = 1 # 第一步列印空格
# 下面的判斷确定每一行星星的數量
if row != 1:
if row < 6:
num += 2
else:
num -= 2
while num1 <= num:
if num1 == 1:
print(' ' * ((9 - num) // 2), end='') # 列印空格
print('*', end='') # 列印星星
num1 += 1
print('') # 換行
row += 1