python中用input實現
input(「這裏寫提示資訊, 必須使用引號引起來」)
使用者的輸入可以使用一個變數接受
n = input(「請輸入一個數字」)
import keyword
keyword.kwlist
[‘False’, ‘None’, ‘True’, ‘and’, ‘as’, ‘assert’, ‘break’, ‘class’, ‘continue’, ‘def’, ‘del’, ‘elif’, ‘else’, ‘except’,‘finally’, ‘for’, ‘from’, ‘global’, ‘if’, ‘import’, ‘in’, ‘is’, ‘lambda’, ‘nonlocal’, ‘not’, ‘or’, ‘pass’, ‘raise’, ‘return’, ‘try’, ‘while’, ‘with’, ‘yield’]
s = ‘hello’
以上的變數賦值,應該說成把變數名 s
分配給 hello
這個物件更合理。
hello
這個物件會在記憶體中先被建立,之後再把變數名 s
分配給這個物件。
所以要理解 Python 中的變數賦值,應該始終先看
等號右邊
。
物件是在右邊先被建立或者被獲取
,在此之後左邊的變數名纔會被系結到物件上,這就像是爲物件貼上了一個標籤。
字串以及後面講的列表、元組都支援這種操作,也要元組解包
In [9]: n1, n2 = 1, 2
In [10]: n1
Out[10]: 1
In [11]: n2
Out[11]: 2
In [75]: s1, s2 = '12' #定義字串
In [76]: s1
Out[76]: '1'
In [77]: s2
Out[77]: '2'
In [78]: num, s = [10, 'hello'] # 這個是列表, 後面會講到
In [79]: num
Out[79]: 10
In [80]: s
Out[80]: 'hello'
n = 10
n == 10 # 等於
True # 條件爲真,則返回 True
n != 10 # 不等於
False # 條件爲假,則返回 False
n > 10 # 大於
False
n < 10 # 小於
False
n >= 10 # 大於等於
True
n <= 10 # 小於等於
True
在ipython中實際操作一下
> In [1]: n = input("請輸入一個數字>>:") 請輸入一個數字>>:10
>
> In [2]: n == 10 Out[2]: False
>
> In [3]:
會發現返回 False
在程式語言中 ,數據是有型別之分的。
input()
接收到的任何數據都會成爲 字串型別(str),就是普通的字串
而 我們等號 右邊的 10
是整型(int)
In [3]: type(n) # 檢視 input 接收到的數據型別
Out[3]: str
In [4]: type(10)
Out[4]: int
In [5]:
In [11]: type(0)
Out[11]: int
In [12]: type(-1)
Out[12]: int
In [13]: type(1)
Out[13]: int
In [17]: type(1.1)
Out[17]: float
In [18]: type(-0.1)
Out[18]: float
In [19]: type(True)
Out[19]: bool
In [20]: type(False)
Out[20]: bool
In [14]: type('10')
Out[14]: str
In [15]: type('hello')
Out[15]: str
In [16]: type('-1.1')
Out[16]: str
In [17]:
In [18]: type(b'hello')
Out[18]: bytes
我們來驗證一下 input 接收的數據的型別
In [36]: n = input("請輸入一個數字>>:")
請輸入一個數字>>:10
In [37]: n
Out[37]: '10'
In [38]: type(n)
Out[38]: str
要想把使用者的輸入(str)和整型(int)進行正確的比較大小,就需要把 字串型別的數據轉換整型。
這種把一個數據從一個型別轉換爲另外一個型別的操作叫型別裝換
In [21]: int('10')
Out[21]: 10
In [22]: int('-10')
Out[22]: -10
In [23]: int(1.9)
Out[23]: 1
In [25]: float(1)
Out[25]: 1.0
In [26]: float(-1)
Out[26]: -1.0
In [27]: float('1.1')
Out[27]: 1.1
In [28]: str(111)
Out[28]: '111'
In [29]: str(-111)
Out[29]: '-111'
In [30]: str(-11.1)
Out[30]: '-11.1'
In [31]: str(b'hello', encoding='utf-8')
Out[31]: 'hello'
In [32]: bytes('你好', encoding=('utf-8'))
Out[32]: b'\xe5\x8d\x83\xe9\x94\x8b'
In [58]: b = bytes('你好', encoding=('utf-8'))
In [59]: b
Out[59]: b'\xe5\x8d\x83\xe9\x94\x8b'
In [60]: str(b, encoding='utf-8')
Out[60]: '你好'
In [61]: s= str(b, encoding='utf-8')
In [62]: s
Out[62]: '你好'
In [63]: type(s)
Out[63]: str
注意字串轉二進制時候,需要指定字元編碼
判斷條件可以用在 if 判斷語句中
語法結構是這樣的:
if 判斷條件: # 冒號必須的
如果判斷條件爲真,執行這裏的程式碼,這裏的程式碼必須縮排4個空格
並且每一行程式碼的縮排要一致
範例
In [39]: n = input("請輸入一個數字>>:")
請輸入一個數字>>:18
In [40]: n = int(n)
In [41]: if n == 18:
...: print("相等")
...:
相等
if 判斷條件:
如果判斷條件爲真,執行這裏的程式碼 else: # 這裏的冒號也是必須的
如果判斷條件爲假,執行這裏的程式碼,這裏的程式碼必須縮排4個空格
並且每一行程式碼的縮排都要一致
範例
In [44]: if n == 10:
...: print("相等")
...: else:
...: print("不相等")
...:
不相等
if 判斷條件:
如果判斷條件新增爲真,執行這裏的程式碼,這裏的程式碼必須縮排4個空格
並且每一行程式碼的縮排要一致 elif 判斷條件: # 這裏同樣需要加條件
如果判斷條件新增爲真,執行這裏的程式碼,這裏的程式碼必須縮排4個空格
並且每一行程式碼的縮排要一致 else: # 這裏的冒號也是必須的
如果判斷條件爲假,執行這裏的程式碼,這裏的程式碼必須縮排4個空格
並且每一行程式碼的縮排都要一致
elif
根據需求可以出現多個
範例
In [51]: n = 20
In [52]: if n == 10:
...: print("相等")
...: elif n > 10:
...: print("大了")
...: else:
...: print("小了")
...:
大了
在生產中,通常我們會把程式的程式碼寫的一個檔案種,這個檔案就成爲 Python 的一個程式檔案,檔名一般都是以 .py
爲結尾,有時候也成爲 一個 python 的程式。
使用 vi
編輯器,來把我們這個猜數遊戲的小程式寫一下吧
#!/usr/bin/env python3
#file name hello.py
print("猜數遊戲開始")
n = input("請輸入一個數字")
n = int(n)
if n == 18:
print("猜對了")
elif n > 18:
print("大了")
else:
print("小了")
第一行不是註釋,和 shell 指令碼一樣,是在宣告這個指令碼預設使用的直譯器
執行 python 程式
[[email protected] ~]# ./hello.py
猜數遊戲開始
請輸入一個數字8
小了
語法:
while 條件表達式:
條件表達示爲真,就執行這裏的程式碼,必須縮排 4 個空格
多行程式碼保持縮排一致
條件表達式可以是:
True
# 布爾值的 True 1 < 10
# 凡是在 if 語句中使用的判斷表達示,這裏都可以使用
猜數遊戲優化版本
#!/usr/bin/env python3
print("猜數遊戲開始")
while True:
n = input("請輸入一個數字")
# 如果輸入空,就重新開始新一輪的回圈
if not n:
continue
# 如果輸入 q 就是跳出回圈
if n == 'q':
break
n = int(n)
if n == 18:
print("猜對了")
elif n > 18:
print("大了")
else:
print("小了")
#退出回圈後,程式繼續執行下面 下麪的程式碼
exit("退出程式..")
def 函數名():
「」「函數的說明,主要是說明一下函數的主要功能,這是可選的」""
函數體,就是程式碼
縮排 4 個空格,多行縮排保持一致函數名的規則和變數名的命名規則一致
呼叫方式:
函數名()
python 屬於解釋性語言,就是程式碼需要讀一行,直譯器解釋一行。 因此,函數就像是 定義一個變數,必須先定義函數,才能 纔能呼叫函數。
def foo():
print(「我是函數體,只有在呼叫函數時,這裏的程式碼纔會被執行」)foo() 執行後會輸出: 我是函數體,只有在呼叫函數時,這裏的程式碼纔會被執行
那我們現在可以把之前寫的猜數遊戲,編寫函數
#!/usr/bin/env python3
def guess_number():
"""輸入一個數字,和18 比較大小"""
print("猜數遊戲開始")
while True:
n = input("請輸入一個數字")
# 如果輸入空,就重新開始新一輪的回圈
if not n:
continue
# 如果輸入 q 就是跳出回圈
if n == 'q':
break
n = int(n)
if n == 18:
print("猜對了")
elif n > 18:
print("大了")
else:
print("小了")
#呼叫函數
guess_number()
exit("退出程式..")