Python 第007課 分支和迴圈結構的應用

2021-10-06 01:55:42 字數 3902 閱讀 3936

目錄

經典小案例

例子1:尋找水仙花數。

正整數的反轉

例子2:百錢百雞問題。

例子3:craps賭博遊戲。

例子4:斐波那契數列。

例子5:列印素數。

說明:水仙花數也被稱為超完全數字不變數、自戀數、自冪數、阿姆斯特朗數,它是乙個3位數,該數字每個位上數字的立方之和正好等於它本身,例如:13 + 53 + 33 = 153。

for num in range(100,1000):

last = num %10

mid = num//10%10

high = num//100

if num == last**3+mid**3+high**3:

print(num)

153370371

407

>>> num = int(input("num="))

num=1234567

>>> reversed_num=0

>>> while num>0:

reversed_num=reversed_num*10+num%10

num//=10

>>> print(reversed_num)

7654321

>>>

說明:百錢百雞是我國古代數學家張丘建在《算經》一書中提出的數學問題:雞翁一值錢五,雞母一值錢三,雞雛三值錢一。百錢買百雞,問雞翁、雞母、雞雛各幾何?翻譯成現代文是:公雞5元乙隻,母雞3元乙隻,小雞1元三隻,用100塊錢買一百隻雞,問公雞、母雞、小雞各有多少只?

>>> for x in range(0,20):

for y in range(0,34):

z = 100-x-y

if 100==x*5+y*3+z//3 and z%3==0:

print(f'公雞: 只, 母雞: 只, 小雞: 只')

公雞: 0只, 母雞: 25只, 小雞: 75只

公雞: 4只, 母雞: 18只, 小雞: 78只

公雞: 8只, 母雞: 11只, 小雞: 81只

公雞: 12只, 母雞: 4只, 小雞: 84只

>>>

說明:craps又稱花旗骰,是美國拉斯維加斯非常受歡迎的一種的桌上賭博遊戲。該遊戲使用兩粒骰子,玩家通過搖兩粒骰子獲得點數進行遊戲。簡化後的規則是:玩家第一次搖骰子如果搖出了7點或11點,玩家勝;玩家第一次如果搖出2點、3點或12點,莊家勝;玩家如果搖出其他點數則玩家繼續搖骰子,如果玩家搖出了7點,莊家勝;如果玩家搖出了第一次搖的點數,玩家勝;其他點數玩家繼續搖骰子,直到分出勝負。

from random import randint

money = 1000

while money > 0:

print(f'你的總資產為: 元')

go_on = false

# 下注金額必須大於0小於等於玩家總資產

while true:

debt = int(input('請下注: '))

if 0 < debt <= money:

break

# 第一次搖色子

# 用1到6均勻分布的隨機數模擬搖色子得到的點數

first = randint(1, 6) + randint(1, 6)

print(f'\n玩家搖出了點')

if first == 7 or first == 11:

print('玩家勝!\n')

money += debt

elif first == 2 or first == 3 or first == 12:

print('莊家勝!\n')

money -= debt

else:

go_on = true

# 第一次搖色子沒有分出勝負遊戲繼續

while go_on:

go_on = false

current = randint(1, 6) + randint(1, 6)

print(f'玩家搖出了點')

if current == 7:

print('莊家勝!\n')

money -= debt

elif current == first:

print('玩家勝!\n')

money += debt

else:

go_on = true

print('你破產了, 遊戲結束!')

d:\裝機軟體\python\python.exe "d:/python code2020/test01/test01.py"

你的總資產為: 1000元

請下注: 500

玩家搖出了8點

玩家搖出了7點

莊家勝!

你的總資產為: 500元

請下注: 300

玩家搖出了10點

玩家搖出了12點

玩家搖出了8點

玩家搖出了4點

玩家搖出了4點

玩家搖出了10點

玩家勝!

你的總資產為: 800元

請下注: 200

玩家搖出了4點

玩家搖出了5點

玩家搖出了10點

玩家搖出了6點

玩家搖出了8點

玩家搖出了7點

莊家勝!

你的總資產為: 600元

請下注: 300

玩家搖出了8點

玩家搖出了11點

玩家搖出了4點

玩家搖出了12點

玩家搖出了5點

玩家搖出了5點

玩家搖出了7點

莊家勝!

你的總資產為: 300元

請下注: 400

請下注: 300

玩家搖出了8點

玩家搖出了9點

玩家搖出了5點

玩家搖出了9點

玩家搖出了6點

玩家搖出了6點

玩家搖出了11點

玩家搖出了9點

玩家搖出了9點

玩家搖出了6點

玩家搖出了7點

莊家勝!

你破產了, 遊戲結束!

process finished with exit code 0

#輸出斐波納契前20個數

a,b=1,1

print(a,b,end=' ')

for _ in range(18):

a,b=b,a+b

print(b,end=' ')

說明:素數指的是只能被1和自身整除的正整數(不包括1)

for num in range(2,100):

is_prime=true

for factor in range(2,num):

if num%factor == 0:

is_prime=false

break

if is_prime:

print(num)

d:\裝機軟體\python\python.exe "d:/python code2020/test01/s素數.py"23

571113

1719

2329

3137

4143

4753

5961

6771

7379

8389

97process finished with exit code 0

python筆記 007 輸入和while迴圈

使用者輸入 使用input 獲取字串輸入 name input what s you name 暫停等待輸入 print hello,name 使用int 將字串轉化為數值 age input how old are you 暫停等待輸入 age int age print 18 age 求模運算子...

學習python 第007天 列表(二)

列表 二 author 濁浪3 time 2021 3 10 16 134 向列表末尾增加元素 5 lst 10,20,30 6print 新增元素前 id lst 8print 新增元素前 id lst 910 在列表末尾至少新增乙個元素 11 lst2 hello wo 12 13 lst.ex...

Python學習筆記 for和while迴圈語句

根據廖雪峰官方 python教程整理 一 for 迴圈要計算1 2 3 我們可以直接寫表示式 1 2 3 6 要計算1 2 3 10 勉強也能寫出來。但是,要計算1 2 3 10000 直接寫表示式就不可能了。為了讓計算機能計算成千上萬次的重複運算,我們就需要迴圈語句。python的迴圈有兩種,一種...