python環境部署和基本語法

2020-08-11 22:08:46

一.需求分析和分解技術點

1.程式和使用者的互動

python中用input實現

input(「這裏寫提示資訊, 必須使用引號引起來」)

2.變數

使用者的輸入可以使用一個變數接受

n = input(「請輸入一個數字」)

2.1變數命名的潛規則
  • 不要以單下劃線和雙下劃線開頭;如:_user或 __user
  • 變數命名要易讀;如:user_name,而不是username
  • 不用使用標準庫中(內建)的模組名或者第三方的模組名
  • 不要用這些 Python 內建的關鍵字:

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’]

2.2如何理解python的變數賦值

s = ‘hello’

以上的變數賦值,應該說成把變數名 s 分配給 hello 這個物件更合理。
hello 這個物件會在記憶體中先被建立,之後再把變數名 s 分配給這個物件。
所以要理解 Python 中的變數賦值,應該始終先看等號右邊
物件是在右邊先被建立或者被獲取,在此之後左邊的變數名纔會被系結到物件上,這就像是爲物件貼上了一個標籤。

2.3多元賦值

字串以及後面講的列表、元組都支援這種操作,也要元組解包

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'

3.python中的判斷條件

 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)

4.數據型別

4.1檢視數據型別,使用type
In [3]: type(n)    # 檢視 input 接收到的數據型別
Out[3]: str

In [4]: type(10)
Out[4]: int

In [5]:
4.2 基本的數據型別
  • 整形
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
  • 字串(str)
In [14]: type('10')
Out[14]: str

In [15]: type('hello')
Out[15]: str

In [16]: type('-1.1')
Out[16]: str

In [17]:
  • 二進制(bytes)
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

5.型別轉換

要想把使用者的輸入(str)和整型(int)進行正確的比較大小,就需要把 字串型別的數據轉換整型。
這種把一個數據從一個型別轉換爲另外一個型別的操作叫型別裝換

  • 轉換爲 int
In [21]: int('10')
Out[21]: 10

In [22]: int('-10')
Out[22]: -10

In [23]: int(1.9)
Out[23]: 1
  • 轉換爲 float
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
  • 轉換爲 str
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

注意字串轉二進制時候,需要指定字元編碼

6. if 判斷語句

判斷條件可以用在 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程式

在生產中,通常我們會把程式的程式碼寫的一個檔案種,這個檔案就成爲 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回圈

語法:

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("退出程式..")

四.函數的定義和呼叫

1.函數的定義

def 函數名():
「」「函數的說明,主要是說明一下函數的主要功能,這是可選的」""
函數體,就是程式碼
縮排 4 個空格,多行縮排保持一致

函數名的規則和變數名的命名規則一致

2.函數的呼叫

呼叫方式:

函數名()

python 屬於解釋性語言,就是程式碼需要讀一行,直譯器解釋一行。 因此,函數就像是 定義一個變數,必須先定義函數,才能 纔能呼叫函數。

3.範例

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("退出程式..")