python 環(huán)境搭建
安裝python
進(jìn)入python官網(wǎng)下載自己電腦對(duì)應(yīng)版本网杆;安裝時(shí)勾上path吃环、pip也颤、tcl/tk、test suite郁轻;并且安裝在全英文路徑下翅娶。
了解python之禪
Beautiful is better than ugly.
# 優(yōu)美勝于丑陋(Python以編寫優(yōu)美的代碼為目標(biāo))
Explicit is better than implicit.
# 明了勝于晦澀(優(yōu)美的代碼應(yīng)當(dāng)是明了的,命名規(guī)范好唯,風(fēng)格相似)
Simple is better than complex.
# 簡(jiǎn)潔勝于復(fù)雜(優(yōu)美的代碼應(yīng)當(dāng)是簡(jiǎn)潔的竭沫,不要有復(fù)雜的內(nèi)部實(shí)現(xiàn))
Complex is better than complicated.
# 復(fù)雜勝于凌亂(如果復(fù)雜不可避免,那代碼間也不能有難懂的關(guān)系渠啊,要保持接口簡(jiǎn)潔)
Flat is better than nested.
# 扁平勝于嵌套(優(yōu)美的代碼應(yīng)當(dāng)是扁平的输吏,不能有太多的嵌套)
Sparse is better than dense.
# 間隔勝于緊湊(優(yōu)美的代碼有適當(dāng)?shù)拈g隔,不要奢望一行代碼解決問題)
Readability counts.
# 可讀性很重要(優(yōu)美的代碼是可讀的)
Special cases aren't special enough to break the rules.
Although practicality beats purity.
# 即便假借特例的實(shí)用性之名替蛉,也不可違背這些規(guī)則(這些規(guī)則至高無上)
Errors should never pass silently.
Unless explicitly silenced.
# 不要包容所有錯(cuò)誤贯溅,除非你確定需要這樣做(精準(zhǔn)地捕獲異常,不寫except:pass風(fēng)格的代碼)
In the face of ambiguity, refuse the temptation to guess.
# 當(dāng)存在多種可能躲查,不要嘗試去猜測(cè)
There should be one-- and preferably only one --obvious way to do it.
# 而是盡量找一種它浅,最好是唯一一種明顯的解決方案(如果不確定,就用窮舉法)
Although that way may not be obvious at first unless you're Dutch.
# 雖然這并不容易镣煮,因?yàn)槟悴皇?Python 之父(這里的Dutch是指Guido)
Now is better than never.
Although never is often better than *right* now.
# 做也許好過不做姐霍,但不假思索就動(dòng)手還不如不做(動(dòng)手之前要細(xì)思量)
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
# 如果你無法向人描述你的方案,那肯定不是一個(gè)好方案典唇;反之亦然(方案測(cè)評(píng)標(biāo)準(zhǔn))
Namespaces are one honking great idea -- let's do more of those!
# 命名空間是一種絕妙的理念镊折,我們應(yīng)當(dāng)多加利用(倡導(dǎo)與號(hào)召)
安裝jupyter
安裝好python后進(jìn)去cmd輸入python -m pip install ipython jupyter 或者 pip install ipython jupyter
進(jìn)入jupyter
在cmd中輸入 jupyter notebook
退出快捷鍵
- python ctrl + z
- jupyter ctrl + c
安裝sublime Text
下載并安裝好程序,并且安裝好插件管理工具介衔,在管理工具中安裝以下推薦插件:
- SublimeCodeIntel
- Emmet
- Git
- Python PEP8 Autoformat
- ConvertToUTF8
安裝pycharm
安裝前需要有Java運(yùn)行環(huán)境
安裝后激活碼在百度搜 lanuy 找到激活碼恨胚,并修改計(jì)算機(jī)C:\Windows\System32\drivers\etc\hosts文件。
turtle
turtel 是python 自帶的一個(gè)模塊炎咖,引用前直接導(dǎo)入
turtle 指令集
方法 | 描述 |
---|---|
turtle.pendown() | 將筆向下拿-----移動(dòng)的時(shí)候繪制 |
turtle.penup() | 將筆向上拿-----移動(dòng)的時(shí)候布繪制 |
turtle.pensize(寬度) | 將線的寬度設(shè)置為制定寬度 |
turtle.forward(d) | 將turtle朝著指向方向向前移動(dòng)制定距離 |
turtle.backward(d) | 將turtle朝著指向的反方向向后移動(dòng)制定距離赃泡,turtle的方向不改變 |
turtle.right(angle) | 將turtle向右轉(zhuǎn)動(dòng)制定角度 |
turtle.left(angle) | 將turtle向左轉(zhuǎn)動(dòng)制定角 |
turtle.goto(x, y) | 將turtle移動(dòng)到一個(gè)絕對(duì)位置 |
turtle.setx(x) | 將turtle的x坐標(biāo)移動(dòng)到指定位置 |
turtle.setx(y) | 將turtle的y坐標(biāo)移動(dòng)到指定位置 |
turtle.setheading(angle) | 將turtle的方向設(shè)定為制定角度寒波。0--東、90--北升熊、180--西俄烁、270--南 |
turtle.home() | 將turtle移動(dòng)到起點(diǎn)(0, 0)和向東 |
turtle. circle(r, ext, step) | 繪制一個(gè)制定半徑级野,范圍和階數(shù)的圓 |
turtle.dot(diameter, color) | 繪制一個(gè)制定半徑和顏色的圓 |
turtle.undo() | 取消(反復(fù))最后一個(gè)圖操作 |
turtle.speed(s) | 設(shè)置turtle的速度為一個(gè)在1到10之間的整數(shù)页屠,10 最大 |
turtle.color(c) | 設(shè)置筆的顏色 |
turtle.fillcolor(c) | 設(shè)置筆填充顏色 |
turtle.begin_fill() | 在填充圖形前訪問這個(gè)方法 |
turtle.end_fill | 在最后調(diào)用beain_fill之前填充繪制的圖形 |
turtle.filling() | 返回填充狀態(tài):True、False |
turtle.clear() | 清除窗口勺阐,turtle的狀態(tài)和位置布受影響 |
turtle.reset() | 清除窗口卷中,turtle的狀態(tài)和位置將恢復(fù)默認(rèn)值 |
turtle.screensize(w, h) | 設(shè)置畫布的寬度和高度 |
turtle.hideturtle() | 隱藏turtle |
turtle.showturtle() | 顯示turtle |
turtle.isvisible() | 如果turtle可見返回True |
turtle.write(s, font = ("Arial", 8, "normal")) | 在turtle位置編寫字符串s,字體是由字體名渊抽、字體大小和字體類型三部分組成 |
例題
繪制超立方體
循環(huán)時(shí)需要海歸的起始方向?yàn)?°(每次循環(huán)加固定角度), 或者在循環(huán)夾角的一半處(在循環(huán)的代碼前后加上循環(huán)角度的一半)
import turtle
for i in range(0,8):
turtle.penup()
turtle.forward(100)
turtle.left(90)
turtle.forward(41.42)
turtle.left(90)
turtle.pensize(2)
turtle.pendown()
turtle.color('blue')
turtle.dot(10)
turtle.color('purple')
turtle.forward(200)
turtle.color('blue')
turtle.dot(10)
turtle.right(90)
turtle.color('green')
turtle.forward(200)
turtle.color('blue')
turtle.dot(10)
turtle.right(90)
turtle.color('blue')
turtle.forward(200)
turtle.color('blue')
turtle.dot(10)
turtle.right(90)
turtle.color('green')
turtle.forward(200)
turtle.color('blue')
turtle.dot(10)
turtle.penup()
turtle.left(90)
turtle.goto(0,0)
turtle.left(45)
turtle.bgcolor('yellow')
turtle.mainloop()
繪制扇形
注意:圓弧的反向繪制和繪制不同角度的圓弧
import turtle
for _ in range(6):
turtle.color('pink')
turtle.left(30)
turtle.penup()
turtle.forward(100)
turtle.pendown()
turtle.left(90)
turtle.begin_fill()
turtle.circle(100, -25)
turtle.right(90)
turtle.forward(100)
turtle.left(90)
turtle.circle(200, 25)
turtle.right(90)
turtle.backward(200)
turtle.end_fill()
turtle.right(25)
turtle.forward(100)
turtle.penup()
turtle.backward(100)
turtle.pendown()
turtle.left(25)
turtle.left(30)
for _ in range(6):
turtle.color('red')
turtle.penup()
turtle.forward(100)
turtle.pendown()
turtle.left(90)
turtle.begin_fill()
turtle.circle(100, -25)
turtle.right(90)
turtle.forward(100)
turtle.left(90)
turtle.circle(200, 25)
turtle.right(90)
turtle.backward(200)
turtle.end_fill()
turtle.right(25)
turtle.forward(100)
turtle.penup()
turtle.backward(100)
turtle.pendown()
turtle.left(25)
turtle.left(60)
turtle.done()
隨意行走
海龜 在格子里是隨意行走十减,碰到邊緣則停止
import turtle
from random import randint
turtle.speed(10)
turtle.color('gray')
for y in range(-80, 81, 10):
x= -80
turtle.penup()
turtle.goto(x, y)
turtle.pendown()
turtle.forward(160)
turtle.left(90)
for x in range(-80, 81, 10):
y = -80
turtle.penup()
turtle.goto(x, y)
turtle.pendown()
turtle.forward(160)
turtle.penup()
turtle.home()
turtle.pendown()
turtle.speed(1)
turtle.pensize(3)
turtle.color('red')
x = y = 0
while abs(x) < 80 and abs(y) < 80:
num = randint(1, 4)
if num == 1:
turtle.setheading(0)
turtle.forward(10)
x += 10
elif num == 2:
turtle.setheading(90)
turtle.forward(10)
y += 10
elif num == 3:
turtle.setheading(180)
turtle.forward(10)
x -= 10
else:
turtle.setheading(270)
turtle.forward(10)
y -= 10
turtle.done()
運(yùn)算符
運(yùn)算符 | 描述 |
---|---|
[][:] | 下標(biāo)愤估、切片 |
** | 指數(shù) |
~ + - | 按位取反帮辟、正負(fù)號(hào) |
* / % // | 乘、除玩焰、模、整除 |
+ - | 加減 |
>> << | 右移昔园、左移 |
& | 按位與 |
^ | 按位異或、按位或 |
<= < > >= | 小于等于默刚、小于甥郑、大于、大于等于 |
== != | 等于荤西、不等于 |
is is not | 身份運(yùn)算符 |
in not in | 成員運(yùn)算符 |
not or and | 邏輯運(yùn)算符 |
= += -= *= /= %= //= **= &= |= ^= >>= <<= | (復(fù)合)賦值運(yùn)算符 |
數(shù)據(jù)類型:整數(shù)澜搅、浮點(diǎn)數(shù)邪锌、字符串、復(fù)數(shù)(complex)觅丰、布爾(bool)
賦值運(yùn)算符、關(guān)系運(yùn)算符舶胀、算術(shù)運(yùn)算符、邏輯運(yùn)算符嚣伐、
運(yùn)算符 | 描述 |
---|---|
[][:] | 下標(biāo)、切片 |
** | 指數(shù) |
~ + - | 按位取反轩端、正負(fù)號(hào) |
* / % // | 乘、除基茵、模、整除 |
+ - | 加減 |
>> << | 右移拱层、左移 |
& | 按位與 |
^ | 按位異或、按位或 |
<= < > >= | 小于等于径缅、小于、大于纳猪、大于等于 |
== != | 等于、不等于 |
is is not | 身份運(yùn)算符 |
in not in | 成員運(yùn)算符 |
not or and | 邏輯運(yùn)算符 |
= += -= *= /= %= //= **= &= |= ^= >>= <<= | (復(fù)合)賦值運(yùn)算符 |
常用命令符
命令 | 解釋 |
---|---|
int() | 將一個(gè)數(shù)值或字符串轉(zhuǎn)換成整數(shù)氏堤,可以指定編碼搏明。 |
str() | 將一個(gè)字符串轉(zhuǎn)換成浮點(diǎn)數(shù)。 |
chr() | 將整數(shù)轉(zhuǎn)換成該編碼對(duì)應(yīng)的字符串(一個(gè)字符)熏瞄。 |
ord() | 將字符串(一個(gè)字符)轉(zhuǎn)換成對(duì)應(yīng)的編碼(整數(shù)) |
格式化輸出
price = 6.3232
print('總造價(jià)是:¥ %.2f 元' % price) # %0.2f 精度為2位小數(shù)的浮點(diǎn)數(shù)
print('總造價(jià)是:¥ %f 元' % price) # %f 浮點(diǎn)數(shù)
print('總造價(jià)是:¥ %d 元' % price) # %d 整數(shù)
print('總造價(jià)是:¥ %s 元' % price) # %s 字符串
變量
變量命名規(guī)則
硬性規(guī)則:
- 變量名由字母、數(shù)字和下劃線構(gòu)成强饮,數(shù)字不能開頭氢卡。
- 大小寫敏感。
- 不要與關(guān)鍵字钧忽、保留字沖突质帅。
官方建議:用全小寫字母朴肺,多個(gè)單詞用下劃線連接斗蒋,變量名中間不能有空格笛质。見名知意。
PEP8要求:
- 用小寫字母拼寫妇押,多個(gè)單詞用下劃線連接姓迅。
- 受保護(hù)的實(shí)例屬性用單個(gè)下劃線開頭敲霍。
- 私有的實(shí)例屬性用兩個(gè)下劃線開頭丁存。
實(shí)例
判斷是不是閏年
year = eval(input('請(qǐng)輸入年份:'))
condition1 = year % 4 == 0
condition2 = year % 100 != 0
condition3 = year % 400 == 0
is_leap = condition1 and condition2 or condition3
print(is_leap)
分支結(jié)構(gòu)
if···else···
實(shí)例
判斷用戶名和密碼是否對(duì)應(yīng)
import getpass # 輸入密文時(shí)把input改成getpass.getpass
# 輸入密碼時(shí)沒有回顯
username = input('請(qǐng)輸入用戶名:')
password = getpass.getpass('請(qǐng)輸入密碼:')
if username == 'admin' and password =='123456':
print('歡迎使用本系統(tǒng)!')
print('開始使用App')
else:
print('用戶名或密碼錯(cuò)誤解寝!')
print('今天天氣真好!') # 不受if或else控制
if···elif···else···
實(shí)例
9*9乘法表
for row in range(1, 10):
for col in range(1, row + 1):
print('%d * %d = %d' % (row, col, row * col), end = '\t')
print()
搖色子
from random import randint,random
face = randint(1,6)
if face == 1:
print('脫衣服')
elif face == 2:
print('唱歌')
elif face == 3:
print('喝酒')
elif face == 4:
print('真心話')
elif face == 5:
print('磕頭')
else:
print('學(xué)狗叫')
循環(huán)結(jié)構(gòu)
for循環(huán)
實(shí)例
求能被3和5整除的數(shù)的和
my_sum = 0
for num in range(0,101):
if num % 3 == 0 or num % 5 == 0:
my_sum += num
print(my_sum)
while循環(huán)
實(shí)例
和電腦玩石頭剪刀布的游戲
from random import randint
'''
1 剪刀
2 石頭
3 布
'''
my_money = ma_money = int(input('請(qǐng)輸入開始金額'))
c = int(input('請(qǐng)輸入賭注'))
while my_money > 0 and ma_money > 0:
x = input('請(qǐng)出拳:')
if x =='剪刀':
my = 1
elif x =='石頭':
my = 2
else:
my = 3
ma = randint(1,3)
if my == 1:
if ma == 1:
print('電腦:剪刀 平局\n')
elif ma == 2:
my_money -= c
ma_money += c
print('電腦:石頭与学,你:剪刀。\n電腦贏索守,扣你%d大洋 抑片。\n電腦:¥%d 卵佛,你:¥%d\n'% (c, ma_money, my_money))
else:
my_money += c
ma_money -= c
print('電腦:布敞斋,你:剪刀。\n你贏植捎,扣電腦%d大洋 。\n電腦:¥%d 焰枢,你:¥%d\n'% (c, ma_money, my_money))
elif my == 2:
if ma == 1:
my_money += c
ma_money -= c
print('電腦:剪刀,你:石頭济锄。\n你贏,扣電腦%d大洋 荐绝。\n電腦:¥%d ,你:¥%d\n'% (c, ma_money, my_money))
elif ma == 2:
print('電腦:石頭 平局\n')
else:
my_money -= c
ma_money += c
print('電腦:布低滩,你:石頭岩喷。\n電腦贏监憎,扣你%d大洋 均驶。\n電腦:¥%d 枫虏,你:¥%d\n'% (c, ma_money, my_money))
else:
if ma == 1:
my_money -= c
ma_money += c
print('電腦:剪刀爬虱,你:布隶债。\n電腦贏跑筝,扣你%d大洋 。\n電腦:¥%d 曲梗,你:¥%d\n'% (c, ma_money, my_money)
elif ma == 2:
my_money += c
ma_money -= c
print('電腦:石頭,你:布虏两。\n你贏,扣電腦%d大洋 定罢。\n電腦:¥%d ,你:¥%d\n'% (c, ma_money, my_money))
else:
print('電腦:布 平局\n')
if my_money<=0:
print('很遺憾祖凫,你失敗了')
if ma_money<=0:
print('恭喜,你贏了')
人出數(shù)字電腦猜
要求電腦根據(jù)產(chǎn)生的值的大小和我的值比較后調(diào)整下一次產(chǎn)生值的范圍
需要有兩個(gè)變量?jī)?chǔ)每次變化范圍的值
from random import randint
my = int(input('計(jì)算機(jī)要猜的數(shù)(1-100):'))
game_over = False
if my < 1 or my > 100:
game_over = True
print('重新輸入:')
nextmax = 0
my_max = 100
my_max = randint(nextmax+1 , my_max )
data = 101
while not game_over:
if my_max > my:
data= my_max
my_max = randint(nextmax+1 , data-1 )
print(my_max)
elif my_max < my:
nextmax = my_max
my_max = randint(nextmax+1 , data-1 )
print(my_max)
else:
print('哈哈遭庶,就這么簡(jiǎn)單')
game_over = True
窮舉法
捕魚
a b c d e 五人半晚釣魚后都睡覺了,早上a起床后把掉的魚分成5份 拿走自己的一份 并扔掉多的一條1條峦睡,b完箩、c赐俗、d弊知、e依次這樣做,問秩彤,最少捕了多少條魚
fish = 1
while True:
total = fish
oo = True
for _ in range(5):
if (total - 1) % 5 == 0:
total = (total - 1) // 5 * 4
else:
oo = False
break
if oo:
print(fish)
break
fish += 1
買雞
'''
公雞五元一只事哭,母雞三元一只,小雞一元三只
用100元買100只雞 問公雞母雞和小雞各多少只
'''
'''
for x in range(21): # 執(zhí)行了 21*34*34 次
for y in range(34):
for z in range (0, 100, 3):
if 5 * x + 3 * y + z // 3 == 100 and x + y + z == 100:
print(x, y, z)
'''
for x in range(21): # 執(zhí)行了 21*34 次
for y in range(34):
if 5 * x + 3 * y + (100 - x - y) // 3 == 100 and x + y + (100 - x - y) == 100 and (100 - x - y) % 3 == 0:
z = 100 - x - y
print(x, y, z)
計(jì)算機(jī)浮點(diǎn)數(shù)運(yùn)算的 坑
浮點(diǎn)數(shù)運(yùn)算例子
# 由于計(jì)算機(jī)浮點(diǎn)數(shù)存儲(chǔ)方式
# 千萬(wàn)不要做浮點(diǎn)數(shù)的 == 和 != 運(yùn)算
# 否則鳍咱,計(jì)算結(jié)果將完全出乎意料
print(0.1 + 0.2 + 0.3) # 0.6000000000000001
print(0.3 + 0.2 + 0.1) # 0.6
代碼優(yōu)化
完美數(shù)原代碼
完美數(shù) = 自身所有因子的和
such :6 = 1 + 2 + 3 :28 = 1+2+7+4+14
求1-10000的所有完美數(shù)
import time
start = time.time()
for num in range(1, 10000):
my = 0
q = num / 2 + 1
for i in range(1, int(q)):
if num % i == 0:
my += i
# print(my)
if num == my:
print(num)
end = time.time()
print(end - start,'s')
完美數(shù)優(yōu)化代碼
優(yōu)化后代碼運(yùn)行時(shí)間大幅縮短
import time
from math import sqrt
start = time.time()
for num in range(2, 10000):
my = 0
q = int(sqrt(num))
for i in range(1, q+1):
if num % i == 0:
my += i
if i != 1 and i !=num // i:
my += num // i
if num == my:
print(num)
end = time.time()
print(end - start,'s')
綜合訓(xùn)練
craps 賭博游戲
規(guī)則:玩家擲兩個(gè)骰子与柑,每個(gè)骰子點(diǎn)數(shù)為1-6,如果第一次點(diǎn)數(shù)和為7或11价捧,則玩家勝;如果點(diǎn)數(shù)和為2结蟋、3或12,則玩家輸莊家勝嵌屎。若和為其他點(diǎn)數(shù),則記錄第一次的點(diǎn)數(shù)和宝惰,玩家繼續(xù)擲骰子,直至點(diǎn)數(shù)和等于第一次擲出的點(diǎn)數(shù)和則玩家勝尼夺;若擲出的點(diǎn)數(shù)和為7則莊家勝。
from random import randint
salary_all1 = eval(input('請(qǐng)輸入玩家起始賭金:'))
salary_all2 = eval(input('請(qǐng)輸入莊家起始賭金:'))
salary = eval(input('請(qǐng)輸入賭注:'))
i = 0
while True:
'''
i += 1
if i != 1:
salary = eval(input('請(qǐng)輸入賭注:')) # 是否每把調(diào)整賭注
'''
frist1 = randint(1, 6)
frist2 = randint(1, 6)
frist_sum = frist1 + frist2
print(frist_sum)
if frist_sum == 7 or frist_sum == 11:
salary_all1 += salary
salary_all2 -= salary
print('玩家勝,玩家剩余金額為%d,莊家剩余金額為%d' % (salary_all1,salary_all2))
if salary_all1 <= 0 :
print('玩家賭金不足')
break
elif salary_all2 <= 0:
print('莊家賭金不足')
break
is_continue = input('賭豪繼續(xù)嗎(y/n)夜郁?')
if is_continue == 'y':
continue
elif frist_sum == 2 or frist_sum == 3 or frist_sum == 12:
salary_all1 -= salary
salary_all2 += salary
print('莊家贏,玩家剩余金額為%d,莊家剩余金額為%d' % (salary_all1,salary_all2))
if salary_all1 <= 0 :
print('玩家賭金不足')
break
elif salary_all2 <= 0:
print('莊家賭金不足')
break
is_continue = input('賭豪繼續(xù)嗎(y/n)?')
if is_continue == 'y':
continue
else:
while True:
# salary = eval(input('請(qǐng)輸入賭注:')) # 是否每把調(diào)整賭注
next1 = randint(1, 6)
next2 = randint(1, 6)
count = next1 + next2
print(count)
if count == frist_sum:
salary_all1 += salary
salary_all2 -= salary
print('玩家勝,玩家剩余金額為%d,莊家剩余金額為%d' % (salary_all1,salary_all2))
if salary_all1 <= 0 :
print('玩家賭金不足')
break
elif salary_all2 <= 0:
print('莊家賭金不足')
break
is_continue = input('賭豪繼續(xù)嗎(y/n)竞端?')
if is_continue == 'n':
break
elif count == 7:
salary_all1 -= salary
salary_all2 += salary
print('莊家勝,玩家剩余金額為%d,莊家剩余金額為%d' % (salary_all1,salary_all2))
if salary_all1 <= 0 :
print('玩家賭金不足')
break
elif salary_all2 <= 0:
print('莊家賭金不足')
break
is_continue = input('賭豪繼續(xù)嗎(y/n)庙睡?')
if is_continue == 'n':
break
print('游戲結(jié)束')
break
每次重新開始的craps
下面代碼表示:若每次分出勝負(fù)后事富,重新開始將重新?lián)u出第一次的點(diǎn)數(shù)
from random import randint
salary_all1 = eval(input('請(qǐng)輸入玩家起始賭金:'))
salary_all2 = eval(input('請(qǐng)輸入莊家起始賭金:'))
salary = eval(input('請(qǐng)輸入賭注'))
while True:
restart = True
frist1 = randint(1, 6)
frist2 = randint(1, 6)
frist_sum = frist1 + frist2
print('第一次搖色子',frist_sum)
if frist_sum == 7 or frist_sum == 11:
salary_all1 += salary
salary_all2 -= salary
print('玩家勝,玩家剩余金額為%d,莊家剩余金額為%d' % (salary_all1,salary_all2))
is_continue = input('賭豪繼續(xù)嗎(y/n)乘陪?')
if is_continue == 'y':
print('重新開始')
continue
elif frist_sum == 2 or frist_sum == 3 or frist_sum == 12:
salary_all1 -= salary
salary_all2 += salary
print('莊家贏,玩家剩余金額為%d,莊家剩余金額為%d' % (salary_all1,salary_all2))
is_continue = input('賭豪繼續(xù)嗎(y/n)?')
if is_continue == 'y':
print('重新開始')
continue
else:
while True:
next1 = randint(1, 6)
next2 = randint(1, 6)
count = next1 + next2
print('非第一次搖色子', count)
if count == frist_sum:
salary_all1 += salary
salary_all2 -= salary
print('玩家勝,玩家剩余金額為%d,莊家剩余金額為%d' % (salary_all1,salary_all2))
is_continue = input('賭豪繼續(xù)嗎(y/n)贱勃?')
if is_continue == 'n':
restart = True
break
else:
restart = False
break
elif count == 7:
salary_all1 -= salary
salary_all2 += salary
print('莊家勝,玩家剩余金額為%d,莊家剩余金額為%d' % (salary_all1,salary_all2))
is_continue = input('賭豪繼續(xù)嗎(y/n)?')
if is_continue == 'n':
restart = True
break
else:
restart = False
break
if salary_all1 <= 0 :
print('玩家賭金不足')
break
elif salary_all2 <= 0:
print('莊家賭金不足')
break
if restart == True:
print('游戲結(jié)束')
break
else:
print('重新開始')