欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python中的變量、運(yùn)算符與流程控制

 更新時(shí)間:2022年05月27日 17:16:16   作者:springsnow  
本文詳細(xì)講解了Python中的變量、運(yùn)算符與流程控制,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

一、執(zhí)行Python程序的兩種方式

1、交互式

在終端內(nèi)輸入“python3”,然后輸入python代碼

2、命令行式

在終端內(nèi)輸入“python3 文本文件路徑”

二、變量

1、變量的組成

Python 中的變量不需要聲明。每個(gè)變量在使用前都必須賦值,變量賦值以后該變量才會(huì)被創(chuàng)建。

在 Python 中,變量就是變量,它沒有類型,我們所說的"類型"是變量所指的內(nèi)存中對(duì)象的類型。

等號(hào)(=)用來給變量賦值。

等號(hào)(=)運(yùn)算符左邊是一個(gè)變量名,等號(hào)(=)運(yùn)算符右邊是存儲(chǔ)在變量中的值。

變量名 = 變量值。

變量名是用來接收變量值的

name =?'nick'?
age?= 19

2、變量名的定義規(guī)范

  • 變量名具有某種意義
  • 由數(shù)字/字母/下劃線組成,且不能由數(shù)字和下劃線開頭
  • 不能用Python關(guān)鍵字

['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']

3、定義變量的兩種方式

  • 駝峰體:NameOfNick
  • 下劃線:name_of_nick(推薦)

4、常量

常量是約定俗成的一種規(guī)范,常量名的定義方式為全大寫。實(shí)際上可以被修改。

AGE_OF_NICK = 19
print(AGE_OF_NICK)

三、Python變量內(nèi)存管理

1、引用計(jì)數(shù)

變量值的引用次數(shù)

x = 257  # 257的引用計(jì)數(shù)為1
y = x   # 257的引用計(jì)數(shù)為2
del x  # 257的引用計(jì)數(shù)為1

2、垃圾回收機(jī)制

當(dāng)變量值的引用計(jì)數(shù)為0的時(shí)候,該變量值會(huì)被Python自動(dòng)回收它的內(nèi)存占用

3、小整數(shù)池

[-5,256]之間的整數(shù)會(huì)在Python解釋器啟動(dòng)的時(shí)候,自動(dòng)開辟一塊內(nèi)存存入這些整數(shù).也就是說這些小整數(shù)不會(huì)因?yàn)橐糜?jì)數(shù)為0而被刪除。

4、內(nèi)存地址與數(shù)據(jù)類型

獲取變量的id,可以理解成變量在內(nèi)存中的地址 。

x = 10
print(x)  # 獲取變量的變量值
print(id(x) )  # 獲取變量的id,可以理解成變量在內(nèi)存中的地址
print(type(x) )  # 獲取變量的數(shù)據(jù)類型,下章會(huì)詳細(xì)介紹數(shù)據(jù)類型

結(jié)果:

10 
8790885504960 
< class 'int'>

5、實(shí)例:

id相等的變量,值一定相等,因?yàn)橹赶虻氖峭粋€(gè)內(nèi)存地址;

值相等的變量,id不一定相等。

x = 11
y = x
z = 11
print(x == y)  # True
print(x is y)  # True
print(x is z)  # True,整數(shù)池的原因

x = 255
z = 255
print(id(x) is id(z) )  # False

四、花式賦值

1、 鏈?zhǔn)劫x值

以下實(shí)例,創(chuàng)建一個(gè)整型對(duì)象,值為 10,從后向前賦值,三個(gè)變量被賦予相同的數(shù)值。

a = b = c = d = 10 
print(f'a:{a}, b:, c:{c}, d:vvxyksv9kd') #a:10, b:10, c:10, d:10

2、 交叉賦值

# 交叉賦值
x = 10
y = 20

x, y = y, x
print(x, y) #20 10

# 相當(dāng)于使用臨時(shí)變量
x = 10 
y = 20

temp = x
x = y
y = temp

print(x, y) #20 10

3、多個(gè)變量賦值

您也可以為多個(gè)對(duì)象指定多個(gè)變量。例如:

a, b, c = 1, 2, "runoob"

以上實(shí)例,兩個(gè)整型對(duì)象 1 和 2 的分配給變量 a 和 b,字符串對(duì)象 "runoob" 分配給變量 c。

寫一個(gè)斐波納契數(shù)列 Fibonacci series:

# 兩個(gè)元素的總和確定了下一個(gè)數(shù)
a, b = 0, 1
while b < 10:
    print(b, end=',')
    a, b = b, a+b
# 1,1,2,3,5,8,

五、與用戶交互

name = input('請(qǐng)輸入你的姓名:')
pwd = input('請(qǐng)輸入你的密碼:')

print(type(name))
print(type(pwd))

# 請(qǐng)輸入你的姓名:a
# 請(qǐng)輸入你的密碼:1
# 
# 'str'>

無論我們輸入的值是數(shù)字類型、字符串類型、列表類型,input的接收值都是字符串類型。

六、格式化輸出

1、 占位符(舊式字符串格式化,逐步淘汰)

  • %s:接收任意數(shù)據(jù)類型的數(shù)據(jù)
  • %d:接收數(shù)字類型的數(shù)據(jù)
name = 'nick'
age = 19
print('my name is %s my age is %d' % (name, age))
# my name is nick my age is 19

2、 format格式化

  • {}:接收任意數(shù)據(jù)類型的數(shù)據(jù)。

1、格式:<模板字符串>.format(<逗號(hào)分隔的參數(shù)>)

name = 'nick'
age = 19
#1、括號(hào)及其里面的字符 (稱作格式化字段) 將會(huì)被 format() 中的參數(shù)替換。
print("Hello, {}. You are {}.".format(name, age)) # Hello, nick. You are 19.
  

2、在括號(hào)中的數(shù)字用于指向傳入對(duì)象在 format() 中的位置
print("Hello, {1}. You are {0}-{0}.".format(age, name)) # Hello, nick. You are 19-19.

3、如果在 format() 中使用了關(guān)鍵字參數(shù), 那么它們的值會(huì)指向使用該名字的參數(shù)。
print("Hello, {name}. You are {age}-{age}.".format(age=age, name=name))# Hello, nick. You are 19-19.

4、位置及關(guān)鍵字參數(shù)可以任意的結(jié)合: 
print('站點(diǎn)列表 {0}, {1}, 和 {other}。'.format('Google', 'Runoob', other='Taobao'))

2、模板字符串中的格式控制標(biāo)記

{<參數(shù)序號(hào)> : <格式控制標(biāo)記>}

:<填充><對(duì)齊><寬度><,><.精度><類型>

引導(dǎo)

符號(hào)

填充的單個(gè)字符<: 左對(duì)齊 
>: 右對(duì)齊 
^: 居中對(duì)齊
槽設(shè)定的輸出寬度數(shù)字的千位分隔符

浮點(diǎn)數(shù)小數(shù)

或 字符串最大輸出長度

  • 整數(shù)類型 :b(二進(jìn)制),c,d,o,x,X
  • 浮點(diǎn)數(shù)類型:e,E,f,%(百分?jǐn)?shù))

3、python字符串格式化符號(hào): 

  • %c: 格式化字符及其ASCII碼
  • %s: 格式化字符串
  • %d: 格式化整數(shù)
  • %u: 格式化無符號(hào)整型
  • %o: 格式化無符號(hào)八進(jìn)制數(shù)
  • %x: 格式化無符號(hào)十六進(jìn)制數(shù)
  • %X: 格式化無符號(hào)十六進(jìn)制數(shù)(大寫)
  • %f: 格式化浮點(diǎn)數(shù),可指定小數(shù)點(diǎn)后的精度
  • %e: 用科學(xué)計(jì)數(shù)法格式化浮點(diǎn)數(shù)
  • %E: 作用同%e,用科學(xué)計(jì)數(shù)法格式化浮點(diǎn)數(shù)(大寫)
  • %g: %f和%e的簡寫
  • %G: %f 和 %E 的簡寫
  • %p: 用十六進(jìn)制數(shù)格式化變量的地址
print("{0: =^20 }".format("PYTHON"))  # '=======PYTHON=======' 使用等號(hào),居中對(duì)齊
print("{0: *>20 }".format("BIT"))  # '*****************BIT' 使用星號(hào),文字右對(duì)齊
print("{:10}".format("BIT"))  # 'BIT       ' 總長度為10,不足以空格補(bǔ)足。在:后傳入一個(gè)整數(shù), 可以保證該域至少有這么多的寬度。 用于美化表格時(shí)很有用。
print("{0: ,.2f}".format(12345.6789))  # '12,345.68' 使用千分符,同時(shí)保留到小數(shù)點(diǎn)后兩位
print("{0:b},{0:c},{0:d},{0:o},{0:x},{0:X}".format(425))  # '110101001,?,425,651,1a9,1A9'
print("{0:e},{0:E},{0:f},{0:%}".format(3.14))  # '3.140000e+00,3.140000E+00,3.140000,314.000000%'

可以使用 bin,oct,hex 可輸出數(shù)字的二進(jìn)制,八進(jìn)制,十六進(jìn)制形式,例如:

a = 0b111100
print(bin(a))
# '0b111100'
print(oct(a))
# '0o74'
print(hex(a))
# '0x3c'

4、字段格式化

字典, 然后使用方括號(hào) [] 來訪問鍵值 :

table = {'Google': 1, 'Runoob': 2, 'Taobao': 3}
print('{0[Runoob]:d}; {0[Google]:d}; {0[Taobao]:d}'.format(table))
# 2; 1; 3

也可以通過在 table 變量前使用 ** 來實(shí)現(xiàn)相同的功能:

table = {'Google': 1, 'Runoob': 2, 'Taobao': 3}
print('{Runoob:d}; {Google:d}; {Taobao:d}'.format(**table))
# 2; 1; 3

3、 f-string字面量格式化

f-string 是 python3.6 之后版本添加的,稱之為字面量格式化字符串,是新的格式化字符串的語法。

在字符串前面加上f或F,后面跟著字符串,字符串中的表達(dá)式用大括號(hào) {} 包起來,它會(huì)將變量或表達(dá)式計(jì)算后的值替換進(jìn)去。

用了這種方式明顯更簡單了,不用再去判斷使用 %s,還是 %d。

name = "nick"
age = 19
print(F"Hello, {name}. You are {age}.")#Hello, nick. You are 19.

print(f'{age*2}')#38
salary = 6.6666
print(f'{salary:.2f}')#6.67

w = {'name': 'Runoob', 'url': 'www.runoob.com'}
print(f'{w["name"]}: {w["url"]}')
# 'Runoob: www.runoob.com'

在 Python 3.8 的版本中可以使用 = 符號(hào)來拼接運(yùn)算表達(dá)式與結(jié)果:

x = 1
print(f'{x+1}')   # Python 3.6
# 2

x = 1
print(f'{x+1=}')   # Python 3.8
# 'x+1=2'

七、基本運(yùn)算符

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

+、 - 、* 、/ 、 //、 % 、**

# 除
print(10 / 3)  # 3.3333333333333335

# 除,只取整數(shù)部分
print(10 // 3)  # 3
print(10 // 4)  # 2

# %:取余
print(10 % 3)  # 1

# **,冪
print(10 ** 3)  # 1000

2、 邏輯運(yùn)算符(運(yùn)算符中優(yōu)先級(jí)最低,即最后運(yùn)算)

and、 or、 not 。

優(yōu)先級(jí):not>and>or

# 從左到右的方式找到邏輯運(yùn)算符,找到邏輯運(yùn)算符的左邊,左邊成立,再去找到邏輯運(yùn)算符的右邊
print(3 > 3 and 1 > 2 or 2 > 1)  # False

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

>、 >=、 <、 <=、 ==、 !=(Pyhton3 已不支持 <> 運(yùn)算符,可以使用 != 代替)

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

=、 +=、 -=、 *=、 /=、 //=、 **=、 %=、:=(海象運(yùn)算符,可在表達(dá)式內(nèi)部為變量賦值。Python3.8 版本新增運(yùn)算符。)

5、 身份運(yùn)算符,比較兩個(gè)對(duì)象的存儲(chǔ)單元。

is、 is not

is和==的區(qū)別:

  • is:用于判斷兩個(gè)變量引用對(duì)象是否為同一個(gè)(是否在同一塊內(nèi)存空間中),
  • ==:用于判斷引用變量的值是否相等。

6、 位運(yùn)算符

  • & : 按位與運(yùn)算符
  • | : 按位或運(yùn)算符
  • ^: 按位異或運(yùn)算符
  • ~ : 按位取反運(yùn)算符
  • <<: 左移動(dòng)運(yùn)算符
  • >> : 右移動(dòng)運(yùn)算符
a = 60  # 60 = 0011 1100
b = 13  # 13 = 0000 1101
c = 0

c = a & b
print( c)# 12 = 0000 1100
c = a | b
print(c)# 61 = 0011 1101
c = a ^ b
print( c)# 49 = 0011 0001
c = ~a
print( c)# -61 = 1100 0011
c = a << 2
print(c)# 240 = 1111 0000
c = a >> 2
print(c)# 15 = 0000 1111

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

in、 not in

包括字符串,列表或元組等

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

print(a in list) # false

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

如果需要某個(gè)運(yùn)算符優(yōu)先運(yùn)算,則加個(gè)括號(hào),使用a and b is c == d的是傻逼

9、 解壓縮

hobby_list = ['read','run','sleep','fishing','piao']

# 如果取第2-3個(gè)愛好
_,hobby2,hobby3,*_ = hobby_list

print(hobby2, hobby3) #run sleep

字典也是可以的,但是字典解壓縮的是key。

info = {'name': 'nick', 'age': 18}
x, y = info
print(x, y) #name age

八、流程控制

1、 if判斷

Python 中用 elif 代替了 else if,所以if語句的關(guān)鍵字為:if – elif – else。

注意:

  • 1、每個(gè)條件后面要使用冒號(hào) :,表示接下來是滿足條件后要執(zhí)行的語句塊。
  • 2、使用縮進(jìn)來劃分語句塊,相同縮進(jìn)數(shù)的語句在一起組成一個(gè)語句塊。
  • 3、在Python中沒有switch – case語句。
# if
if 條件:
    代碼塊

# if...else
if 條件:
    代碼塊
else:
    代碼塊

# if...elif....elif...else
if 條件:
    代碼塊
elif 條件: 
    代碼塊
elif 條件:
    代碼塊

...(可以寫任意個(gè)elif)

else:
    代碼塊

2、 while循環(huán)

同樣需要注意冒號(hào)和縮進(jìn)。另外,在 Python 中沒有 do..while 循環(huán)。

#while
while 條件:
    代碼塊

#while + break
while 條件:
    代碼塊
    break  # 結(jié)束本層循環(huán),跳出循環(huán)

# while + continue
while 條件:
    代碼塊
    if 條件:
        代碼塊
        cotinue  # 不執(zhí)行下面代碼,然后繼續(xù)循環(huán),即跳出本次循環(huán)
    代碼塊

#while + else
while 條件:
    代碼塊
else:
    print('如果我沒有被break,我就會(huì)被打印出來')

實(shí)例:

n = 1
while n < 4:
    print(n)
    n += 1
else:
    print("a")
# 1,2,3,a

使用循環(huán)嵌套來實(shí)現(xiàn)99乘法法則:

# 外邊一層循環(huán)控制行數(shù)
# i是行數(shù)
i = 1
while i <= 9:
    # 里面一層循環(huán)控制每一行中的列數(shù)
    j = 1
    while j <= i:
        mut = j * i
        print("%d*%d=%d" % (j, i, mut), end="  ")
        j += 1
    print("")
    i += 1
# 1*1=1  
# 1*2=2  2*2=4  
# 1*3=3  2*3=6  3*3=9  
# 1*4=4  2*4=8  3*4=12  4*4=16  
# 1*5=5  2*5=10  3*5=15  4*5=20  5*5=25  
# 1*6=6  2*6=12  3*6=18  4*6=24  5*6=30  6*6=36  
# 1*7=7  2*7=14  3*7=21  4*7=28  5*7=35  6*7=42  7*7=49  
# 1*8=8  2*8=16  3*8=24  4*8=32  5*8=40  6*8=48  7*8=56  8*8=64  
# 1*9=9  2*9=18  3*9=27  4*9=36  5*9=45  6*9=54  7*9=63  8*9=72  9*9=81

3、for循環(huán)

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

for循環(huán)的循環(huán)次數(shù)受限于容器類型的長度,而while循環(huán)的循環(huán)次數(shù)需要自己控制。

#for
for i in range/str/list/tuple/dict/set(可迭代對(duì)象):
    print(i)

#for + break
for i in range/str/list/tuple/dict/set(可迭代對(duì)象):
    print(i)
    break  # 結(jié)束本層循環(huán)

# for + continue
for i in range/str/list/tuple/dict/set(可迭代對(duì)象):
    print(i)
    if 條件:
        continue  # 結(jié)束本次循環(huán),即不執(zhí)行下面代碼,繼續(xù)循環(huán)
    代碼塊

#for + else
for i in range/str/list/tuple/dict/set(可迭代對(duì)象):
    print(i)
else:
    print('如果我沒有被break,我就會(huì)被打印出來')

實(shí)例:

# for循環(huán)按照索引取值

name_list = ['nick', 'jason', 'tank', 'sean']
for i in range(len(name_list)):
    print(i, name_list[i])
    
# 0 nick
# 1 jason
# 2 tank
# 3 sean

九、range()函數(shù)

如果你需要遍歷數(shù)字序列,可以使用內(nèi)置range()函數(shù)。它會(huì)生成數(shù)列,例如:

for i in range(5):
    print(i)
# 0 1 2 3 4

你也可以使用range指定區(qū)間的值:

for i in range(5, 9):
    print(i)
# 5 6 7 8

也可以使range以指定數(shù)字開始并指定不同的增量(甚至可以是負(fù)數(shù),有時(shí)這也叫做'步長'):

for i in range(0, 10, 3):
    print(i)
#   0 3 6 9

負(fù)數(shù):

for i in range(-10, -100, -30):
    print(i)
# -10 -40 -70

您可以結(jié)合range()和len()函數(shù)以遍歷一個(gè)序列的索引,如下所示:

a = ['Google', 'Baidu', 'Runoob', 'Taobao', 'QQ']
for i in range(len(a)):
    print(i, a[i])
# 0 Google 1 Baidu 2 Runoob 3 Taobao 4 QQ

還可以使用range()函數(shù)來創(chuàng)建一個(gè)列表:

a = list(range(5))
print(a)
# [0, 1, 2, 3, 4]

實(shí)例:

1-100 的和:

print(sum(range(101)))

十、pass 語句

Python pass是空語句,是為了保持程序結(jié)構(gòu)的完整性。

pass 不做任何事情,一般用做占位語句,如下實(shí)例

while True:
    pass  # 等待鍵盤中斷 (Ctrl+C)

最小的類:

class MyEmptyClass:
    pass

到此這篇關(guān)于Python變量流程基礎(chǔ)的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 詳解Python文本操作相關(guān)模塊

    詳解Python文本操作相關(guān)模塊

    這篇文章主要介紹了詳解Python文本操作相關(guān)模塊的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • matplotlib 畫雙軸子圖無法顯示x軸的解決方法

    matplotlib 畫雙軸子圖無法顯示x軸的解決方法

    這篇文章主要介紹了matplotlib 畫雙軸子圖無法顯示x軸的解決方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • python fabric使用筆記

    python fabric使用筆記

    這篇文章主要介紹了python fabric使用筆記,fabric是一款實(shí)現(xiàn)遠(yuǎn)程操作和部署強(qiáng)大工具,本文就給出了它的多個(gè)使用實(shí)例,需要的朋友可以參考下
    2015-05-05
  • python與json數(shù)據(jù)的交互詳情

    python與json數(shù)據(jù)的交互詳情

    這篇文章主要介紹了python與json數(shù)據(jù)的交互詳情,json是一種獨(dú)立于編程語言和平臺(tái)的輕量級(jí)數(shù)據(jù)交換方式,更多相關(guān)內(nèi)容介紹,需要的朋友可以參考一下
    2022-07-07
  • Python集成開發(fā)工具Pycharm的安裝和使用詳解

    Python集成開發(fā)工具Pycharm的安裝和使用詳解

    這篇文章主要介紹了Python集成開發(fā)工具Pycharm的安裝和使用詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • Numpy安裝、升級(jí)與卸載的詳細(xì)圖文教程

    Numpy安裝、升級(jí)與卸載的詳細(xì)圖文教程

    Python官網(wǎng)上的發(fā)行版是不包含?NumPy?模塊的,下面這篇文章主要給大家介紹了關(guān)于Numpy安裝、升級(jí)與卸載的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-09-09
  • Python中Threading用法詳解

    Python中Threading用法詳解

    本篇文章給大家介紹了Python中Threading的詳細(xì)用法,需要的朋友跟著小編一起學(xué)習(xí)下吧。
    2017-12-12
  • python如何求兩數(shù)之和及多數(shù)之和

    python如何求兩數(shù)之和及多數(shù)之和

    這篇文章主要介紹了python如何求兩數(shù)之和及多數(shù)之和問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • echarts折線圖的每個(gè)折點(diǎn)都顯示數(shù)值的實(shí)現(xiàn)方式

    echarts折線圖的每個(gè)折點(diǎn)都顯示數(shù)值的實(shí)現(xiàn)方式

    這篇文章主要介紹了echarts折線圖的每個(gè)折點(diǎn)都顯示數(shù)值的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • Python PyYAML庫解析YAML文件使用詳解

    Python PyYAML庫解析YAML文件使用詳解

    這篇文章主要為大家介紹了Python PyYAML庫解析YAML文件使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11

最新評(píng)論