溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python3快速入門(二)——Python3基礎(chǔ)

發(fā)布時(shí)間:2020-03-27 11:04:10 來源:網(wǎng)絡(luò) 閱讀:720 作者:天山老妖S 欄目:編程語言

Python3快速入門(二)——Python3基礎(chǔ)

一、Python3語法基礎(chǔ)

1、Python3編碼

默認(rèn)情況下,Python 源碼文件以?UTF-8?編碼,所有字符串都是 unicode 字符串,可以為Python源碼文件指定不同的編碼,如下:
# -*- coding: utf-8 -*-

2、標(biāo)識(shí)符

Python語言的標(biāo)識(shí)符規(guī)則如下:
A、第一個(gè)字符必須是字母表中字母或下劃線?。
B、標(biāo)識(shí)符的其它的部分由字母、數(shù)字和下劃線組成。
C、標(biāo)識(shí)符對(duì)大小寫敏感。
在 Python 3 中,允許非 ASCII 標(biāo)識(shí)符。

3、Python保留字

保留字即關(guān)鍵字,不能作為任何標(biāo)識(shí)符名稱。Python 的標(biāo)準(zhǔn)庫提供了一個(gè)keyword模塊,可以輸出當(dāng)前版本的所有關(guān)鍵字:

>>> import keyword
>>> keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', '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']
>>> 

4、Print輸出

print輸出默認(rèn)是換行的,如果要實(shí)現(xiàn)不換行需要在變量末尾加上?end=""。

#!/usr/bin/python3

print("Hello Python3")
print("Hello ", end="")
print("Python", end="3\n")

5、Python注釋

Python中單行注釋以#開頭:

#! /usr/bin/python3
# 第一個(gè)注釋
print("Hello Python3")  #第二個(gè)注釋

Python3中多行注釋用三個(gè)單引號(hào)?'''?或者三個(gè)雙引號(hào)?"""?。

#!/usr/bin/python3 
'''
第三注釋
第四注釋
'''

"""
第五注釋
第六注釋
"""
print("Hello Python3")

6、縮進(jìn)

Python最具特色的就是使用縮進(jìn)來表示代碼塊,不需要使用大括號(hào)?{}?。
縮進(jìn)的空格數(shù)是可變的,但同一個(gè)代碼塊的語句必須包含相同的縮進(jìn)空格數(shù),如果縮進(jìn)不相同會(huì)導(dǎo)致運(yùn)行錯(cuò)誤。實(shí)例如下:

#!/usr/bin/python3
flag = True
if flag:
    print("True")
    print("true")
else:
    print("False")
    print("false")
print ("Hello Python3")

7、多行語句

Python 通常是一行寫完一條語句,但如果語句很長,可以使用反斜杠()來實(shí)現(xiàn)多行語句。

#!/usr/bin/python3
item_one = 1
item_two = 2
item_three = 3
total = item_one + \
        item_two + \
        item_three
print(total)

在 [], {}, 或 () 中的多行語句,不需要使用反斜杠(),例如

#!/usr/bin/python3
item_one = 1
item_two = 2
item_three = 3
total = item_one + \
        item_two + \
        item_three
print(total)
total = ['item_one', 'item_two', 'item_three',
       'item_four', 'item_five']
print(total)

8、變量

Python 中的變量不需要聲明,每個(gè)變量在使用前都必須賦值,變量賦值后才會(huì)被創(chuàng)建。
在 Python 中,變量沒有類型,類型是變量所指的內(nèi)存中對(duì)象的類型。
Python允許同時(shí)為多個(gè)變量賦值。

a = b = c = 1
a, b, c = 1, True, "hello"
x,y = 1,2
x,y = y,x
print(x,y)

Python中變量命名推薦使用匈牙利命名法則。

9、用戶輸入

#!/usr/bin/python3

input("Please enter the name:\n")

上述Python代碼會(huì)等待用戶輸入,按回車鍵后退出。

10、數(shù)字類型

Python中數(shù)字有四種類型:整數(shù)、布爾型、浮點(diǎn)數(shù)和復(fù)數(shù)。
int?(整數(shù)),只有一種整數(shù)類型int,表示為長整型。
bool?(布爾),True,F(xiàn)alse。
float?(浮點(diǎn)數(shù)),如 1.23、3E-2
complex(復(fù)數(shù)),如 1 + 2j、 1.1 + 2.2j

11、字符串

Python中使用單引號(hào)和雙引號(hào)創(chuàng)建字符串,使用三引號(hào)('''或""")可以創(chuàng)建一個(gè)多行字符串。
轉(zhuǎn)義符 '\'
反斜杠可以用來轉(zhuǎn)義,使用r可以讓反斜杠不發(fā)生轉(zhuǎn)義,如 r"this is a line with \n" 則\n會(huì)顯示,并不換行。
字符串可以用+運(yùn)算符連接在一起,用 * 運(yùn)算符重復(fù)。
Python 中的字符串有兩種索引方式,從左往右以 0 開始,從右往左以 -1 開始。
Python中的字符串不能改變。
Python沒有單獨(dú)的字符類型,一個(gè)字符就是長度為 1 的字符串。

二、Python3運(yùn)算符

1、算術(shù)運(yùn)算符

加(+):兩對(duì)象相加
減(-):兩對(duì)象相減
乘(*):兩個(gè)數(shù)相乘或是返回一個(gè)被重復(fù)若干次的字符串
除(/):x除以y
取模(%):返回除法的余數(shù)
冪(**):返回x的y次冪
取整除(//):向下取接近除數(shù)的整數(shù)

Python3算術(shù)運(yùn)算符的示例代碼:

#!/usr/bin/python3
a = 10
b = 5
c = 0
# +
c = a + b
print("a + b = ", c)
# a + b =  15
a = "Hello"
b = "Python3"
c = a + b
print("a + b = ", c)
#a + b =  HelloPython3

# -
a = 10
b = 5
c = a -b
print("a - b = ", c)
# a - b =  5

# *
a = 10
b = 3
c = a * b
print("a * b = ", c)
#a * b =  30
a = "Hello"
b = 3
c = a * b 
print("a * b = ", c)
#a * b =  HelloHelloHello

# /
a = 10
b = 3
c = a / b
print("a / b = ", c)
#a / b =  3.3333333333333335

# %
a = 10
b = 3
c = a % b
print("a % b = ", c)
#a % b =  1

# **
a = 2
b = 10
c = a ** b
print("a ** b = ", c)
# a ** b =  1024

# //
a = 10
b = 3
c = a // b
print("a // b = ", c)
# a // b =  3

2、比較運(yùn)算符

等于(==):比較對(duì)象是否相等
不等于(!=):比較對(duì)象是否不相等
大于(>):x是否大于y
小于(<):是否x小于y
大于等于(>=):x是否大于等于y
小于等于(<=):x是否小于等于y

Python3關(guān)系運(yùn)算符的示例代碼如下:

#!/usr/bin/python3
a = 21
b = 10
c = 0

if (a == b):
    print("a 等于 b")
else:
    print("a 不等于 b")

if (a != b):
    print("a 不等于 b")
else:
    print("a 等于 b")

if (a < b):
    print("a 小于 b")
else:
    print("a 大于等于 b")

if (a > b):
    print("a 大于 b")
else:
    print("a 小于等于 b")

if (a <= b):
    print("a 小于等于 b")
else:
    print("a 大于  b")

if (b >= a):
    print("b 大于等于 a")
else:
    print("b 小于 a")

對(duì)于字符串、列表、元組的比較運(yùn)算,按照序列的元素進(jìn)行逐個(gè)比較。

a1 = "hello"
a2 = "hello"
print(a1 == a2)

b1 = [1,2,3]
b2 = [1,2,3]
print(b1 == b2)

c1 = (1,2,3)
c2 = (1,2,4)
print(c2 > c1)

3、賦值運(yùn)算符

賦值(=):簡單賦值運(yùn)算
加法賦值(+=):c += a等效于c = c + a
減法賦值(-=):c -= a等效于c = c - a
乘法賦值(*=):c *= a等效于c = c * a
除法賦值(/=):c /= a等效于c = c / a
取模賦值(%=):c %= a等效于c = c % a
冪賦值(**=):c **= a等效于c = c ** a
取整除賦值(//=):c //= a 等效于c = c // a

Python3賦值運(yùn)算符的示例如下:

#!/usr/bin/python3
a = 21
b = 10
c = 0

# =
c = a + b
print("c = ", c)
# c = 31

# +=
a = 10
c = 3
c += a
print("c = ", c)
# c = 13

a = 3
c = 10
# -=
c -= a
print("c = ", c)
# c = 1

# *=
a = 3
c = 5
c *= a
print("c = ", c)
# c = 15

# /=
a = 2
c = 10
c /= a
print("c = ", c)
# c = 5.0

# %=
a = 3
c = 10
c %= a
print("c = ", c)
# c = 1

# **=
a = 10
c = 2
c **= a
print("c = ", c)
# c = 1024

# //=
c = 10
a = 3
c //= a
print("c = ", c)
# c = 3

4、邏輯運(yùn)算符

邏輯與(and):x and y,?如果 x 為 False,x and y 返回 x,否則返回 y 的值。
邏輯或(or):x or y,如果 x 是 True,返回 x 的值,否則返回 y 的值。
邏輯非(not):not x,如果 x 為True,返回False 。如果 x 為 False,返回 True。
Python3邏輯運(yùn)算符的示例如下:

#!/usr/bin/python3
x = 10
y = 5

# x and y
print(x and y) #5
print(0 and y) #0

# x or y
print(x or y)  #10
print(0 or y)  #5

# not x
print(not x)
print(not False)

5、位運(yùn)算符

按位與運(yùn)算符(&):參與運(yùn)算的兩個(gè)值,如果兩個(gè)相應(yīng)位都為1,則該位的結(jié)果為1,否則為0。
按位或運(yùn)算符(|):只要對(duì)應(yīng)的二個(gè)二進(jìn)位有一個(gè)為1時(shí),結(jié)果位就為1。
按位異或運(yùn)算符(^):當(dāng)兩對(duì)應(yīng)的二進(jìn)位相異時(shí),結(jié)果為1。
按位取反(~):對(duì)數(shù)據(jù)的每個(gè)二進(jìn)制位取反,即把1變?yōu)?,把0變?yōu)?。~x等價(jià)于-(x+1)。
左移運(yùn)算符(<<):運(yùn)算數(shù)的各二進(jìn)位全部左移若干位,由"<<"右邊的數(shù)指定移動(dòng)的位數(shù),高位丟棄,低位補(bǔ)0。
右移運(yùn)算符(>>):把">>"左邊的運(yùn)算數(shù)的各二進(jìn)位全部右移若干位,">>"右邊的數(shù)指定移動(dòng)的位數(shù)。
Python3位運(yùn)算符的示例如下:

#!/usr/bin/python3

a = 0b00111100
b = 0b00001101
c = 0

c = a & b;
print("c 的值為:", bin(c))  # 0b1100

c = a | b;
print("c 的值為:", bin(c))  # 0b111101

c = a ^ b;
print("c 的值為:", bin(c))  # 0b110001

c = ~a;
print("c 的值為:", bin(c))  # -0b111101

c = a << 2;
print("c 的值為:", bin(c))  # 0b11110000

c = a >> 2;
print("c 的值為:", bin(c))  # 0b1111

6、成員運(yùn)算符

Python支持成員運(yùn)算符,測試實(shí)例中是否包含了一系列的成員,包括字符串,列表或元組。
in:如果在指定的序列中找到值返回 True,否則返回 False。
not in:如果在指定的序列中沒有找到值返回 True,否則返回 False。
Python3成員運(yùn)算符的示例如下:

#!/usr/bin/python3

a = 1
b = 20
list = [1, 2, 3, 4, 5]

if (a in list):
    print("變量a在給定的列表list中")
else:
    print("變量a不在給定的列表list中")

if (b not in list):
    print("變量b不在給定的列表list中")
else:
    print("變量b在給定的列表list中")

7、身份運(yùn)算符

Python3身份運(yùn)算符用于比較兩個(gè)對(duì)象的存儲(chǔ)單元。
is:x is y,用于判斷兩個(gè)標(biāo)識(shí)符是不是引用自一個(gè)對(duì)象,如果引用的是同一個(gè)對(duì)象則返回 True,否則返回 False。
is not:x is not y,用于判斷兩個(gè)標(biāo)識(shí)符是不是引用自不同對(duì)象,如果引用的不是同一個(gè)對(duì)象則返回結(jié)果 True,否則返回 False。
Python3身份運(yùn)算符的示例如下:

#!/usr/bin/python3

a = 20
b = 20

if (a is b):
    print("a和b有相同的標(biāo)識(shí)")
else:
    print("a和b沒有相同的標(biāo)識(shí)")

if (a is not b):
    print("a和b沒有相同的標(biāo)識(shí)")
else:
    print("a和b有相同的標(biāo)識(shí)")
Python中對(duì)象類型的判斷使用is×××tance方法進(jìn)行判斷。
a = "hello"
print(is×××tance(a, str))

8、運(yùn)算符優(yōu)先級(jí)

Python運(yùn)算符的優(yōu)先級(jí)從高到低如下:
Python3快速入門(二)——Python3基礎(chǔ)
編碼過程中對(duì)于模糊不確定的優(yōu)先級(jí)建議使用加括號(hào)顯示確定。

三、Python3流程控制

1、條件控制

Python條件語句是通過一條或多條語句的執(zhí)行結(jié)果(True或者False)來決定執(zhí)行的代碼塊。
Python中if語句的一般形式如下:

if condition_1:
    statement_block_1
elif condition_2:
    statement_block_2
else:
    statement_block_3

如果"condition_1"為True將執(zhí)行"statement_block_1"塊語句。
如果"condition_1"為False,將判斷"condition_2"。
如果"condition_2"為True將執(zhí)行"statement_block_2"塊語句。
如果 "condition_2" 為False,將執(zhí)行"statement_block_3"塊語句。
每個(gè)條件后使用冒號(hào)(:)表示滿足條件后要執(zhí)行的語句塊。
條件控制中使用縮進(jìn)來劃分語句塊,相同縮進(jìn)數(shù)的語句在一起組成一個(gè)語句塊。
在Python中沒有switch – case語句。

#! /usr/bin/python3

score = int(input("Please enter the score: "))

if score < 60:
    print("D")
elif score < 80:
    print("C")
elif score < 90:
    print("B")
elif score <= 100:
    print("A")

在嵌套 if 語句中,可以把 if...elif...else 結(jié)構(gòu)放在另外一個(gè) if...elif...else 結(jié)構(gòu)中。

2、循環(huán)控制

Python中的循環(huán)語句有for和 while。Python中while語句的一般形式如下:

while 判斷條件:
    語句

在Python中沒有do..while循環(huán)。

#! /usr/bin/python3

N = 100
counter = 1
n = 0
while counter <= N:
    n += counter
    counter += 1

print("1 到 %d 之和為: %d" % (N, n))

在 while … else 在條件語句為 false 時(shí)執(zhí)行 else 的語句塊.

#! /usr/bin/python3

count = 0
while count < 5:
    print("Hello Python3")
    count += 1
else:
    print("Hello Go")

如果while循環(huán)體中只有一條語句,可以將該語句與while寫在同一行中, 如下所示:

#! /usr/bin/python3

flag = 1

while flag: print('Hello Python3')

print("Good bye!")

Python中for循環(huán)可以遍歷任何序列的項(xiàng)目,如一個(gè)列表或者一個(gè)字符串。
for循環(huán)的一般格式如下:

for <variable> in <sequence>:
    <statements>
else: 
    <statements>
#! /usr/bin/python3

languages = ["C", "C++", "Perl", "Python"]
for x in languages:
    print(x)

for 循環(huán)中使用break語句用于跳出當(dāng)前循環(huán)體,不會(huì)正常結(jié)束for循環(huán),即不執(zhí)行else分支。

#! /usr/bin/python3

languages = ["C", "C++", "Perl", "Python"]
for x in languages:
    if x == "Python":
        print(x)
        break
    print(x)
else:
    print("None")

range()內(nèi)置函數(shù)可以用于生成數(shù)列。

#! /usr/bin/python3

for x in range(5):
    print(x)
# 指定區(qū)間
for x in range(5,9):
    print(x)

# 指定區(qū)間和步長
for x in range(0,10,2):
    print(x)

for x in range(-10,-100,-10):
    print(x)

a = [1,2,3,4,5,6,7,8]
for i in range(0, len(a), 2):
    print(a[i])

b = a[0:len(a):2]
print(b) # [1, 3, 5, 7]

通過seq[0:len(seq):step]可以從seq每隔step步長取一個(gè)元素構(gòu)成新的序列。
Python中pass空語句用于保持程序結(jié)構(gòu)的完整性,pass 不做任何事情,一般用做占位語句。

#! /usr/bin/python3

for x in range(5):
    pass

3、switch實(shí)現(xiàn)

Python不支持switch,通過使用字典可以實(shí)現(xiàn)switch,實(shí)現(xiàn)方案如下:
A、利用字典取值get方法的容錯(cuò)性,處理switch語句中的default情況。
B、設(shè)置字典的vlaue為對(duì)應(yīng)方法名,來代替switch語句中的代碼塊。
C、為不同key設(shè)置相同的value,模擬switch中穿透。
字典實(shí)現(xiàn)switch的示例如下:

#!/usr/bin/python3

def taskForRest():
    print("Today is easy!")
def taskForWork():
    print("Good job!")
def taskForDefault():
    print("Invalid input!")

switchDic = {"Sunday":taskForRest,
            "Monday":taskForWork,
            "Tuesday":taskForWork,
            "Wednesday":taskForWork,
            "Tursday":taskForWork,
            "Friday":taskForWork,
            "Saturday":taskForRest
}

monday = "Monday"
switchDic.get(monday,taskForWork())
tuesday = "Tuesday"
switchDic.get(tuesday, taskForWork)()
today = "Today"
switchDic.get(today,taskForDefault())
向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI