Python學習03:if條件判斷從句和內置函數input()用法

筆者:風起怨江南 出處:https://blog.csdn.net/JackMengJin 筆者原創,文章歡迎轉載,如果喜歡請點贊+關注,感謝支持!

 

目錄

一、if語句

1.1 if語句基本形式

1.2 if語句判斷順序

1.3 各種判斷條件關係

1.4 if...elif...else用法

1.5 多個條件同時判斷

二、內置函數input()用法

2.1 小插曲

2.2 Python的內置函數

2.3 更多實例


Python學習03:條件判斷從句

Python條件判斷語句通過一條或多條語句的執行結果(True或者False)來決定執行的代碼塊。

每條if語句的核心都是一個值爲True或False的表達式,這種表達式被稱爲條件測試。Python程序語言規定:

  • 任何非0、非空(null)值爲true
  • 0 或者 null爲false

一、if語句

1.1 if語句基本形式

編程中經常需要檢查一系列條件,並據此決定採用什麼措施。Python 編程中 if 語句用於控制程序的執行,基本形式爲:

if 判斷條件:
    執行語句……
else:
    執行語句……

"if判斷條件"成立時(值非零),則執行後面的語句,而執行內容可以多行,以縮進來區分表示同一範圍

else 爲可選語句,在條件不成立時執行相關語句。

先看一個示例並試着理解:

#if語句
num0 = 1
num1 = 2
if num1 == num0:
    print('Yes')
else:
    print('No')
No

在Python中if語句能夠檢查程序的當前狀態,並據此採用相應的措施。

需要注意的是,if + 判斷條件後需要加‘:’冒號,else後也需要加‘:’冒號。

1.2 if語句判斷順序

  1. 如果判斷結果爲true,會依次執行接下來的語句,如果判斷結果爲false,則會不執行if中的語句。
  2. 如果判斷結果爲true,會執行if中的語句,如果判斷結果爲false,則會執行else中的語句。

這裏以詹姆斯場均得分舉例:

#if語句
score0 = 25 #詹姆斯這賽季場均得分
score1 = 27 #詹姆斯生涯場均得分
if score0 == score1:
    print('詹姆斯這賽季場均得分等於生涯場均得分')
else:
    print('詹姆斯這賽季場均得分不等於生涯場均得分')
詹姆斯這賽季場均得分不等於生涯場均得分

1.3 各種判斷條件關係

if 語句的判斷條件可以用>(大於)、<(小於)、==(等於)、>=(大於等於)、<=(小於等於)、!=(不等於)來表示其關係。具體用法會在第二節舉例說明。

1.4 if...elif...else用法

當判斷條件爲多個值時,可以使用以下形式:

if 判斷條件1:
    執行語句1
elif 判斷條件2:
    執行語句2
else:
    執行語句3

這裏還以詹姆斯場均得分舉例:

#if語句
score0 = 25 #詹姆斯這賽季場均得分
score1 = 27 #詹姆斯生涯場均得分
if score0 == score1:
    print('詹姆斯這賽季場均得分等於生涯場均得分')
elif score0 > score1:
    print('詹姆斯這賽季場均得分大於生涯場均得分')
else:
    print('詹姆斯這賽季場均得分小於生涯場均得分')
詹姆斯這賽季場均得分小於生涯場均得分

在Python裏多個條件判斷用elif來實現。

if...elif...else結構裏的判斷順序:

  1. 如果if條件判斷結果爲true,會執行if中的語句。
  2. 如果if條件判斷結果爲false,elif條件判斷結果爲true,則會執行elif中的語句。
  3. 如果if條件判斷結果爲false,elif條件判斷結果爲false,則會執行else中的語句。

1.5 多個條件同時判斷

  • 如果判斷需要多個條件同時判斷時,可以使用 or (或),表示兩個條件有一個成立時判斷條件成功。
  • 使用 and (與)表示只有兩個條件同時成立的情況下,判斷條件才成功。

多個條件同時判斷的具體用法會在第二節舉例說明。

 

二、內置函數input()用法

2.1 小插曲

本來打算將input()放在上面文章裏穿插着講下,但由於這個錯誤的使用,還是覺得單獨把input()拎出來講下效果更好:

#if語句
print('請猜下老詹這賽季場均多少分:')
score0 = 25 #詹姆斯這賽季場均得分
guess0 = input() #猜的分數
if guess0 == score0:
    print('恭喜你猜對了,這賽季老詹場均25分!')
else:
    print('很遺憾猜錯了,差一點哦')

請猜下老詹這賽季場均多少分:
25

本來以爲輸入25會得到正確的答案,結果啪啪打臉:

請猜下老詹這賽季場均多少分:
25
很遺憾猜錯了,差一點哦

然後我意識到可能輸出的類型不對,於是我加上打印再嘗試運行一下:

#if語句
print('請猜下老詹這賽季場均多少分:')
score0 = 25 #詹姆斯這賽季場均得分
guess0 = input() #猜的分數
print(type(score0))#查看score0類型
print(type(guess0))#查看guess0類型
if guess0 == score0:
    print('恭喜你猜對了,這賽季老詹場均25分!')
else:
    print('很遺憾猜錯了,差一點哦')

結果果然不出所料,數據類型不同導致的答案錯誤:

請猜下老詹這賽季場均多少分:
25
<class 'int'>
<class 'str'>
很遺憾猜錯了,差一點哦

可以通過打印看到input()輸入的值是字符串的數據類型(str),所以雖然都是25,但一個代表整數,一個代表字符串,所以得不到正確答案。

2.2 Python的內置函數

查看關於對Python內置函數的詳細資料,可以點擊Python官網-內置函數->傳送門

而在Python手冊裏是怎麼定義input()的呢?

input([prompt])

如果存在 prompt 實參,則將其寫入標準輸出,末尾不帶換行符。接下來,該函數從輸入中讀取一行,將其轉換爲字符串(除了末尾的換行符)並返回。當讀取到 EOF 時,則觸發 EOFError。例如:

>>> s = input('--> ')  
--> Monty Python's Flying Circus
>>> s  
"Monty Python's Flying Circus"

如果加載了 readline 模塊,input() 將使用它來提供複雜的行編輯和歷史記錄功能。

由上可以看到input()返回的值是str字符,所以如果讓輸入的數字變爲整形,可以使用int()方法:

int(input())

#if語句
print('請猜下老詹這賽季場均多少分:')
score0 = 25 #詹姆斯這賽季場均得分
guess0 = int(input()) #猜的分數
print(type(score0))#查看score0類型
print(type(guess0))#查看score0類型
if guess0 == score0:
    print('恭喜你猜對了,這賽季老詹場均25分!')
else:
    print('很遺憾猜錯了,差一點哦')
請猜下老詹這賽季場均多少分:
25
<class 'int'>
<class 'int'>
恭喜你猜對了,這賽季老詹場均25分!

可以看到使用int()方法後,變量guess0的數據類型爲int類型,而不是2.1實例中的str數據類型,所以運行正確。

2.3 更多實例

還是以老詹得分爲例子,這裏增加了一個random隨機庫(random庫是使用隨機數的Python標準庫)。

從概率論角度來說,隨機數是隨機產生的數據(比如拋硬幣),但時計算機是不可能產生隨機值,真正的隨機數也是在特定條件下產生的確定值,只不過這些條件我們沒有理解,或者超出了我們的理解範圍。計算機不能產生真正的隨機數,那麼僞隨機數也就被稱爲隨機數

--僞隨機數:計算機中通過採用梅森旋轉算法生成的(僞)隨機序列元素

python中用於生成僞隨機數的函數庫是random

因爲是標準庫,使用時候只需要import random

random庫包含兩類函數,常用的共8個

        --基本隨機函數: seed(), random()

        --擴展隨機函數:randint(), getrandbits(), uniform(), randrange(), choice(), shuffle()

已知老詹的得分是一個隨機數,範圍在20~30之間。用戶需要輸入數值猜測老詹的場均得分(變量score0),具體代碼如下:

import random
#if語句
print('請猜下老詹這賽季場均多少分:')
#詹姆斯這賽季場均得分爲一個隨機數,範圍在20~30之間
score0 = random.randint(20,30)
guess0 = int(input()) #猜的分數
print(type(score0))#查看score0類型
print(type(guess0))#查看score0類型
if guess0 == score0:
    print('恭喜你猜對了,這賽季老詹場均:',score0,'分!')
elif guess0 < 20:
    print('不要太小看老漢,他得分肯定大於20分的。告訴你正確答案吧:', score0, '分!')
elif guess0 > 30:
    print('你大大大大的高估了老詹的得分,他得分肯定低於或等於30分的。告訴你正確答案吧:', score0, '分!')
elif guess0 > 20 and guess0 < 25 and score0 >= 25:
    print('你猜的這個分值太小了,已經低於25分了。告訴你正確答案吧:',score0,'分!')
elif guess0 >= 25 and score0 < 25:
    print('你高估了老詹的得分,他沒得到25分以上。告訴你正確答案吧:',score0,'分!')
elif guess0 >= 28 and score0 < 23:
    print('你大大的高估了老詹的得分,你是詹吹麼?告訴你正確答案吧:',score0,'分!')
else:
    print('很遺憾猜錯了,差一點哦,告訴你正確答案吧:',score0,'分!')

嘗試測試一下:

請猜下老詹這賽季場均多少分:
1
<class 'int'>
<class 'int'>
不要太小看老漢,他得分肯定大於20分的。告訴你正確答案吧: 27 分!
請猜下老詹這賽季場均多少分:
19
<class 'int'>
<class 'int'>
不要太小看老漢,他得分肯定大於20分的。告訴你正確答案吧: 29 分!

竟然第三次就猜對了,哈哈!繼續測試:

請猜下老詹這賽季場均多少分:
21
<class 'int'>
<class 'int'>
恭喜你猜對了,這賽季老詹場均: 21 分!
請猜下老詹這賽季場均多少分:
25
<class 'int'>
<class 'int'>
很遺憾猜錯了,差一點哦,告訴你正確答案吧: 27 分!
請猜下老詹這賽季場均多少分:
28
<class 'int'>
<class 'int'>
你高估了老詹的得分,他沒得到25分以上。告訴你正確答案吧: 21 分!
請猜下老詹這賽季場均多少分:
30
<class 'int'>
<class 'int'>
很遺憾猜錯了,差一點哦,告訴你正確答案吧: 27 分!
請猜下老詹這賽季場均多少分:
30
<class 'int'>
<class 'int'>
你高估了老詹的得分,他沒得到25分以上。告訴你正確答案吧: 23 分!
請猜下老詹這賽季場均多少分:
31
<class 'int'>
<class 'int'>
你大大大大的高估了老詹的得分,他得分肯定低於或等於30分的。告訴你正確答案吧: 20 分!

Python3.x已經沒有raw_input() 了,只有input(), 用法功能跟Python2.x中的raw_input() 一樣。


以上便是《Python學習03講》所有內容,更多python學習請繼續關注我的博客——風起怨江南,不定期更新,原創不易,如果喜歡請點贊和關注,謝謝大家的支持!想獲得更多免費的學習資料請添加我的微信公衆號——風起怨江南,謝謝大家的關注和支持!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章