python中的數(shù)值判斷

Python基礎(chǔ)語法7

用數(shù)據(jù)做判斷:布爾值

  • 計算機的邏輯判斷扣讼,只有兩種結(jié)果,就是True(英文意思是“真”)和False(英文意思是“假”)荔燎,沒有灰色地帶销钝。這個計算真假的過程,叫做【布爾運算】座享。

  • True和False,也就叫做【布爾值】

  • 例:

print(3 < 5)
print(3 > 5)
print('長安' == '長安')  
print('長安' != '金陵') 
'''
True
False
True
True
'''
  • print()括號內(nèi)的計算其實就是【布爾運算】丈秩。終端上出現(xiàn)的True和False我們稱為【布爾值】
  • 第1行和第2行代碼很簡單淳衙。后面兩行:兩個字符串'長安'相等滤祖,結(jié)果正確瓶籽,所以打印為True。而字符串'長安'和字符串'金陵'做比較汤求,結(jié)果不相等严拒,!=代表不等號,結(jié)果正確挤牛,打印為True种蘸。
  • 只有當(dāng)條件判斷為True時航瞭,if和while后面的子句才會執(zhí)行下去。
while False:
    print('while False')
#終端上不顯示任何結(jié)果
  • while循環(huán)執(zhí)行章办,必須要while后的條件為“真”滨彻,而【布爾值】False本身就是“假”,所以這個循環(huán)一次都沒運行就結(jié)束了
  • 同理翰舌,3>5這個條件恒為“假”冬骚,如果把while False換成while 3>5,效果會是一樣的——什么都不會出現(xiàn)庇麦。
while 3>5:
    print('while False')
  • 如果用while True或者while 3<5來做條件,程序?qū)幌薮螖?shù)地運行山橄,陷入【死循環(huán)】
  • 【布爾值】對條件判斷語句有一樣的效果:
if False:
    print('if False')

if True:
    print('if True')
#if True    
數(shù)據(jù)做判斷

兩個數(shù)值作比較

比較運算符
  • 特別提醒:在代碼中航棱,A == B表示A和B相等,==表示相等關(guān)系它抱;而=表示給變量賦值朴艰。=和==雖然長得相似,但沒有任何關(guān)系侮穿。

直接用數(shù)值做運算

if 1:
    print('熊貓')
  • 整數(shù)1在這里就是作為一個條件亲茅,被判斷為真(True)金矛。這就是數(shù)值本身作為一個條件,被判斷真假的情況娶耍。
真假判斷
  • None饼酿,它代表的是【空值】故俐,自成一派,數(shù)據(jù)類型是NoneType辑舷。要注意它和0的區(qū)別槽片,0是整數(shù)0肢础,可并非什么都沒有
  • 可以使用bool()函數(shù)來查看一個數(shù)據(jù)會被判斷為真還是假传轰。這個函數(shù)的用法與type()函數(shù)相似谷婆,在bool()函數(shù)括號中放入我們想要判斷真假的數(shù)據(jù),然后print出來即可期贫。
print('以下數(shù)據(jù)判斷結(jié)果都是【假】:')
print(bool(False))
print(bool(0))
print(bool(''))
print(bool(None))

print('以下數(shù)據(jù)判斷結(jié)果都是【真】:')
print(bool(True))
print(bool(1))
print(bool('abc'))

布爾值之間的運算

and唯灵、or隙轻、not垢揩、in、not in五種運算

a = 1
b = -1

print('以下是and運算')
if a==1 and b==1:    # 【b實際上是-1】
    print('True')
else:
    print('False')

print('以下是or運算')
if a==1 or b==1:  # 【b實際上是-1】
    print('True')
else:
    print('False')
'''
以下是and運算
False
以下是or運算
True
'''    
  • a==1 and b==1的意思是【a=1并且b=1】斑匪,要兩個條件都滿足蚀瘸,才能判斷為True庶橱,而a==1 or b==1的意思是【a=1或者b=1】,只要兩個條件滿足一個寂嘉,就能判斷為True枫绅。
and
or
  • 【not】運算很簡單并淋,表示翻轉(zhuǎn)的意思县耽。not True就等于False镣典,not False就等于True
  • 【in】和【not in】兩種運算,【in】的意思是“判斷一個元素是否在一堆數(shù)據(jù)之中”脏嚷,【not in】反之父叙。
not,in,not in

四種新的語句

break語句

break的意思是“打破”趾唱,是用來結(jié)束循環(huán)的,一般寫作if...break

# break語句搭配for循環(huán)
for...in...:
    ...
    if ...:
        break

# break語句搭配while循環(huán)
while...(條件):
    ...
    if ...:
        break

+if...break的意思是如果滿足了某一個條件夕晓,就提前結(jié)束循環(huán)悠咱。這個只能在循環(huán)內(nèi)部使用。

for i in range(5):
    print('明日復(fù)明日')
    if i==3:  # 當(dāng)i等于3的時候觸發(fā)
        break # 結(jié)束循環(huán)
i = 0
while i<5:
    print('明日復(fù)明日')
    i = i+1
    if i==3:  # 當(dāng)i等于3的時候觸發(fā)
        break # 結(jié)束循環(huán)

PS:if之下的語句要縮進4個空格(按一次Tab鍵)躬贡,這里的if...break又嵌套在while或for循環(huán)中拂玻,而循環(huán)語句本身又要縮進4個空格宰译。這樣一來,break就縮進了【4+4=8】個空格(按兩次Tab鍵)闯第∽菏茫【注】:Tab鍵和空格鍵不能同時混用。

練習(xí):用python描述故事:

  • 《西游記》里面有一個車遲國诲泌,車遲國里面有個陳家莊敷扫,陳家莊的河里有一個鯉魚精,每一年都要陳家莊上供一對童男童女給自己吃绘迁,莊里的人家真是苦不堪言卒密。這種年復(fù)一年的循環(huán)狀態(tài),在唐僧師徒來到這里后膛腐,結(jié)束了鼎俘。因為孫悟空制服了這個鯉魚精贸伐,百姓再也不用受苦了!真好脯丝。
while True:
    print('要給妖怪進貢童男童女')
    hero = input('大圣來了嗎伏伐?回復(fù):來了or沒來')
    if hero == '來了':
        break
print('鯉魚精被制服')

continue語句

continue的意思是“繼續(xù)”。這個子句也是在循環(huán)內(nèi)部使用的。當(dāng)某個條件被滿足的時候阱高,觸發(fā)continue語句茬缩,將跳過之后的代碼,直接回到循環(huán)的開始未舟。

# continue語句搭配for循環(huán)
for...in...:
    ...
    if ...:
        continue
    ...

# continue語句搭配while循環(huán)
while...(條件):
    ...
    if ...:
        continue
    ...
  • 示例
# continue語句搭配for循環(huán)
for i in range(5):
    print('明日復(fù)明日')
    if i==3:  # 當(dāng)i等于3的時候觸發(fā)
        continue # 回到循環(huán)開頭
    print('這句話在i等于3的時候打印不出來')

# continue語句搭配while循環(huán)
i = 0
while i<5:
    print('明日復(fù)明日')
    i = i+1
    if i==3:  # 當(dāng)i等于3的時候觸發(fā)
        continue # 回到循環(huán)開頭
    print('這句話在i等于3的時候打印不出來')

練習(xí):西夏公主選駙馬

while True:
    q1 = input('第一問:你一生之中裕膀,在什么地方最是快樂逍遙勇哗?')
    if q1 != '黑暗的冰窖':
        continue
    print('答對了欲诺,下面是第二問:')
    q2 = input('你生平最愛之人渺鹦,叫什么名字蛹含?')
    if q2 != '夢姑':
        continue
    print('答對了浦箱,下面是第三問:')
    q3 = input('你最愛的這個人相貌如何?')
    if q3 == '不知道':
        break
print('都答對了珍语,你是虛竹竖幔。')

pass語句

  • pass語句非常簡單拳氢,它的英文意思是“跳過”
a = int(input('請輸入一個整數(shù):'))
if a >= 100:
    pass
else:
    print('你輸入了一個小于100的數(shù)字')
  • 當(dāng)a>=100的時候,跳過放接,什么都不做留特。其他情況,也就是a<100的時候苟蹈,執(zhí)行一個print語句
  • 如果沒有pass來占據(jù)一個位置表示“什么都不做”慧脱,以上的代碼執(zhí)行起來會報錯

else語句

else語句贺喝,我們在條件判斷語句見過【else】,else不但可以和if配合使用氮采,它還能跟for循環(huán)和while循環(huán)配合使用

for i in range(5):
    a = int(input('請輸入0來結(jié)束循環(huán)扳抽,你有5次機會:'))
    if a == 0:
        print('你觸發(fā)了break語句,循環(huán)結(jié)束镰烧,導(dǎo)致else語句不會生效楞陷。')    
        break
else:
    print('5次循環(huán)你都錯過了固蛾,else語句生效了。')
'''
請輸入0結(jié)束循環(huán)艾凯,你有5次機會:9
請輸入0結(jié)束循環(huán)趾诗,你有5次機會:6
請輸入0結(jié)束循環(huán),你有5次機會:0
你觸發(fā)了break語句郑兴,導(dǎo)致else語句不會生效贝乎。
'''
  • 當(dāng)循環(huán)中沒有碰到break語句览效,就會執(zhí)行循環(huán)后面的else語句,否則就不會執(zhí)行挽拔。
  • 在while循環(huán)中衡招,else的用法也是如此始腾,格式一模一樣:
i = 5
while i:
    a = int(input('請輸入0來結(jié)束循環(huán)空执,你有5次機會:'))
    i -= 1
    if a == 0:
        print('你觸發(fā)了break語句辨绊,循環(huán)結(jié)束,導(dǎo)致else語句不會生效宣鄙。')
        break
else:
    print('5次循環(huán)你都錯過了,else語句生效了苇羡。')
4種循環(huán)語句

循環(huán)小練習(xí):

  • 猜24设江,然后讓另一個人猜攘轩。如果他猜的數(shù)比24小度帮,告訴他“太小了”,如果他猜的數(shù)比24大甫菠,告訴他“太大了”寂诱。
num = 24
print('我已經(jīng)想好了一個數(shù)安聘,請你猜一猜:\n')
while True:
    yourguess = int(input('請輸入你猜的數(shù)字:'))
    if yourguess < num:
        print('你猜的數(shù)字小了')
    elif yourguess > num:
        print('你猜的數(shù)字大了')
    else:
        print('恭喜你猜對了')
        break
  • 問題進階


    問題進階
num = 24
print('我已經(jīng)想好了一個數(shù)浴韭,請你猜一猜:\n')
chance = 3
while chance:
    print('現(xiàn)在你有' + str(i) + '次機會')
    chance -= 1
    yourguess = int(input('請輸入你猜的數(shù)字:'))
    if yourguess < num:
        print('你猜的數(shù)字小了')
    elif yourguess > num:
        print('你猜的數(shù)字大了')
    else:
        print('恭喜你猜對了')
        break
else:
    print('3次機會已經(jīng)用完念颈,失敗了')

練習(xí):

  • 讓程序收集兩名囚犯的認(rèn)罪情況,進而決定他們的判決:
    兩人都認(rèn)罪嗡靡,則各判10年讨彼;一個認(rèn)罪一個抵賴柿祈,則前者判1年哩至,后者判20年菩貌;兩人都抵賴袁辈,各判3年晚缩。只有兩人都不認(rèn)罪,程序才會停止冈敛。
    現(xiàn)在有一個社會學(xué)家鸣皂,在不同的人群中做這個實驗寞缝,一旦遇到都不認(rèn)罪的情況,就停止該人群中的實驗滩届。
    同時被啼,他希望程序能記錄每一對實驗者的選擇,以及記錄第幾對實驗者都選擇不認(rèn)罪进每。請你幫幫他吧装悲。
listchoice = []
n = 0
while True:
    n += 1
    print('現(xiàn)已押解第' + str(n) + '對犯人' + ':請審問')
    choice_A = input('A的選擇:認(rèn)罪or不認(rèn)  ')
    choice_B = input('B的選擇:認(rèn)罪or不認(rèn)  ')
    listchoice.append([choice_A,choice_B])
    if choice_A == '認(rèn)罪' and choice_B == '認(rèn)罪':
        print('皆為10年之刑')
    elif choice_A == '不認(rèn)' and choice_B == '認(rèn)罪':
        print('B判1年生闲,A判20年')
    elif choice_A == '認(rèn)罪' and choice_B == '不認(rèn)':
        print('A判1年跪腹,B判20年')
    elif choice_A == '不認(rèn)' and choice_B == '不認(rèn)':
        print('停止實驗')
        break
    else:
        n -= 1
        continue
print('此為最優(yōu)解')
for i in range(n):
    print('第' + str(i + 1) + '對實驗者的選擇是:' + str(listchoice[i]))
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末飞醉,一起剝皮案震驚了整個濱河市冲茸,隨后出現(xiàn)的幾起案子屯阀,更是在濱河造成了極大的恐慌,老刑警劉巖轴术,帶你破解...
    沈念sama閱讀 221,406評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件难衰,死亡現(xiàn)場離奇詭異,居然都是意外死亡逗栽,警方通過查閱死者的電腦和手機盖袭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,395評論 3 398
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來彼宠,“玉大人鳄虱,你說我怎么就攤上這事凭峡∽疽眩” “怎么了?”我有些...
    開封第一講書人閱讀 167,815評論 0 360
  • 文/不壞的土叔 我叫張陵摧冀,是天一觀的道長倍踪。 經(jīng)常有香客問我,道長索昂,這世上最難降的妖魔是什么建车? 我笑而不...
    開封第一講書人閱讀 59,537評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮椒惨,結(jié)果婚禮上缤至,老公的妹妹穿的比我還像新娘。我一直安慰自己框产,他們只是感情好凄杯,可當(dāng)我...
    茶點故事閱讀 68,536評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著秉宿,像睡著了一般戒突。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上描睦,一...
    開封第一講書人閱讀 52,184評論 1 308
  • 那天膊存,我揣著相機與錄音,去河邊找鬼忱叭。 笑死隔崎,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的韵丑。 我是一名探鬼主播爵卒,決...
    沈念sama閱讀 40,776評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼撵彻!你這毒婦竟也來了钓株?” 一聲冷哼從身側(cè)響起实牡,我...
    開封第一講書人閱讀 39,668評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎轴合,沒想到半個月后创坞,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,212評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡受葛,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,299評論 3 340
  • 正文 我和宋清朗相戀三年题涨,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片总滩。...
    茶點故事閱讀 40,438評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡纲堵,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出闰渔,到底是詐尸還是另有隱情婉支,我是刑警寧澤,帶...
    沈念sama閱讀 36,128評論 5 349
  • 正文 年R本政府宣布澜建,位于F島的核電站向挖,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏炕舵。R本人自食惡果不足惜何之,卻給世界環(huán)境...
    茶點故事閱讀 41,807評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望咽筋。 院中可真熱鬧溶推,春花似錦、人聲如沸奸攻。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,279評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽睹耐。三九已至辐赞,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間硝训,已是汗流浹背响委。 一陣腳步聲響...
    開封第一講書人閱讀 33,395評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留窖梁,地道東北人赘风。 一個月前我還...
    沈念sama閱讀 48,827評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像纵刘,于是被迫代替她去往敵國和親邀窃。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,446評論 2 359