分析Python中的變數、運算子和流程控制的例子。
一、執行Python程式的兩種方式
#1、互動式
在終端機內輸入“python3”,然後輸入python程式碼
2、命令列式
#在終端機內輸入「python3 文字檔路徑」
二、變數
1、變數的組成
Python 中的變數不需要宣告。每個變數在使用前都必須賦值,變數賦值以後變數才會被建立。
在 Python 中,變數就是變量,它沒有類型,我們所說的"類型"是變數所指的記憶體中物件的類型。
等號(=)用來賦值變數。
等號(=)運算子左邊是變數名稱,等號(=)運算子右邊是儲存在變數中的值。
變數名 = 變數值。
變數名稱是用來接收變數值的
name = 'nick' age = 19
2、變數名稱的定義規格
變數名稱具有某種意義#
- ##由數字/字母/底線組成,且不能由數字和底線開頭
- 不能用Python關鍵字
['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
(推薦)
AGE_OF_NICK = 19 print(AGE_OF_NICK)
x = 257 # 257的引用计数为1 y = x # 257的引用计数为2 del x # 257的引用计数为1
##[-5,256]之間的整數會在Python解釋器啟動的時候,自動開闢一塊內存存入這些整數.也就是說這些小整數不會因為引用計數為0而被刪除。
4、記憶體位址與資料型態
取得變數的id,可以理解成變數在記憶體中的位址 。
x = 10 print(x) # 获取变量的变量值 print(id(x) ) # 获取变量的id,可以理解成变量在内存中的地址 print(type(x) ) # 获取变量的数据类型,下章会详细介绍数据类型
結果:
108790885504960< class 'int'>
#5、實例:
id相等的變數,值一定相等,因為指向的是同一個記憶體位址;
值相等的變數,id不一定相等。
x = 11 y = x z = 11 print(x == y) # True print(x is y) # True print(x is z) # True,整数池的原因 x = 255 z = 255 print(id(x) is id(z) ) # False
四、花式賦值
1、 鍊式賦值
以下實例,建立一個整數對象,值為10,從後向前賦值,三個變數被賦予相同的數值。
a = b = c = d = 10 print(f'a:{a}, b:{b}, c:{c}, d:{d}') #a:10, b:10, c:10, d:10
2、 交叉賦值
# 交叉赋值 x = 10 y = 20 x, y = y, x print(x, y) #20 10 # 相当于使用临时变量 x = 10 y = 20 temp = x x = y y = temp print(x, y) #20 10
3、多個變數賦值
您也可以為多個物件指定多個變數。例如:
a, b, c = 1, 2, "runoob"
以上實例,兩個整數物件 1 和 2 的指派給變數 a 和 b,字串物件 "runoob" 指派給變數 c。
寫一個斐波納契數列Fibonacci series:
# 两个元素的总和确定了下一个数 a, b = 0, 1 while b < 10: print(b, end=',') a, b = b, a+b # 1,1,2,3,5,8,
五、與使用者互動
name = input('请输入你的姓名:') pwd = input('请输入你的密码:') print(type(name)) print(type(pwd)) # 请输入你的姓名:a # 请输入你的密码:1 # # 'str'>
無論我們輸入的值是數字型別、字串型別、清單類型,input的接收值都是字串型別。
六、格式化輸出
1、 佔位符(舊式字串格式化,逐步淘汰)
- %s:接收任意數據類型的資料
- %d:接收數字型別的資料
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格式化
- {}:接收任意資料型別的資料。
- 1、格式:<範本字串>.format(<逗號分隔的參數>)
name = 'nick' age = 19 #1、括号及其里面的字符 (称作格式化字段) 将会被 format() 中的参数替换。 print("Hello, {}. You are {}.".format(name, age)) # Hello, nick. You are 19. 2、在括号中的数字用于指向传入对象在 format() 中的位置 print("Hello, {1}. You are {0}-{0}.".format(age, name)) # Hello, nick. You are 19-19. 3、如果在 format() 中使用了关键字参数, 那么它们的值会指向使用该名字的参数。 print("Hello, {name}. You are {age}-{age}.".format(age=age, name=name))# Hello, nick. You are 19-19. 4、位置及关键字参数可以任意的结合: print('站点列表 {0}, {1}, 和 {other}。'.format('Google', 'Runoob', other='Taobao'))
2、範本字串中的格式控制標記
{<參數序號> : <格式控制標記>}
<對齊> | <寬度> | #<,> | <.精度> | |||
---|---|---|---|---|---|---|
#<型別> | 開機 #符號 ######填滿的單一字元######< ;: 左對齊 ###>: 右對齊 ###^: 居中對齊######插槽設定的輸出寬度#####數字的千位分隔符號############################################## ##浮點數小數######或字串最大輸出長度### |
|
3、python字符串格式化符号:
%c: 格式化字符及其ASCII码
%s: 格式化字符串
%d: 格式化整数
%u: 格式化无符号整型
%o: 格式化无符号八进制数
%x: 格式化无符号十六进制数
%X: 格式化无符号十六进制数(大写)
%f: 格式化浮点数,可指定小数点后的精度
%e: 用科学计数法格式化浮点数
%E: 作用同%e,用科学计数法格式化浮点数(大写)
%g: %f和%e的简写
%G: %f 和 %E 的简写
%p: 用十六进制数格式化变量的地址
print("{0: =^20 }".format("PYTHON")) # '=======PYTHON=======' 使用等号,居中对齐 print("{0: *>20 }".format("BIT")) # '*****************BIT' 使用星号,文字右对齐 print("{:10}".format("BIT")) # 'BIT ' 总长度为10,不足以空格补足。在:后传入一个整数, 可以保证该域至少有这么多的宽度。 用于美化表格时很有用。 print("{0: ,.2f}".format(12345.6789)) # '12,345.68' 使用千分符,同时保留到小数点后两位 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 可输出数字的二进制,八进制,十六进制形式,例如:
a = 0b111100 print(bin(a)) # '0b111100' print(oct(a)) # '0o74' print(hex(a)) # '0x3c'
4、字段格式化
字典, 然后使用方括号 [] 来访问键值 :
table = {'Google': 1, 'Runoob': 2, 'Taobao': 3} print('{0[Runoob]:d}; {0[Google]:d}; {0[Taobao]:d}'.format(table)) # 2; 1; 3
也可以通过在 table 变量前使用 ** 来实现相同的功能:
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,后面跟着字符串,字符串中的表达式用大括号 {} 包起来,它会将变量或表达式计算后的值替换进去。
用了这种方式明显更简单了,不用再去判断使用 %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 的版本中可以使用 = 符号来拼接运算表达式与结果:
x = 1 print(f'{x+1}') # Python 3.6 # 2 x = 1 print(f'{x+1=}') # Python 3.8 # 'x+1=2'
七、基本运算符
1、 算术运算符
+、 - 、* 、/ 、 //、 % 、**
# 除 print(10 / 3) # 3.3333333333333335 # 除,只取整数部分 print(10 // 3) # 3 print(10 // 4) # 2 # %:取余 print(10 % 3) # 1 # **,幂 print(10 ** 3) # 1000
2、 逻辑运算符(运算符中优先级最低,即最后运算)
and、 or、 not 。
优先级:not>and>or
# 从左到右的方式找到逻辑运算符,找到逻辑运算符的左边,左边成立,再去找到逻辑运算符的右边 print(3 > 3 and 1 > 2 or 2 > 1) # False
3、 比较运算符
>、 >=、 <、 <=、 ==、 !=(Pyhton3 已不支持 <> 运算符,可以使用 != 代替)
4、 赋值运算符
=、 +=、 -=、 *=、 /=、 //=、 **=、 %=、:=(海象运算符,可在表达式内部为变量赋值。Python3.8 版本新增运算符。)
5、 身份运算符,比较两个对象的存储单元。
is、 is not
is和==的区别:
is:用于判断两个变量引用对象是否为同一个(是否在同一块内存空间中),
==:用于判断引用变量的值是否相等。
6、 位运算符
& : 按位与运算符
| : 按位或运算符
^: 按位异或运算符
~ : 按位取反运算符
<<: 左移动运算符
>> : 右移动运算符
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、 成员运算符
in、 not in
包括字符串,列表或元组等
a = 10 b = 20 list = [1, 2, 3, 4, 5] print(a in list) # false
8、 运算符优先级(略)
如果需要某个运算符优先运算,则加个括号,使用a and b is c == d
的是傻逼
9、 解压缩
hobby_list = ['read','run','sleep','fishing','piao'] # 如果取第2-3个爱好 _,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语句的关键字为:if – elif – else。
注意:
1、每个条件后面要使用冒号 :,表示接下来是满足条件后要执行的语句块。
2、使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块。
3、在Python中没有switch – case语句。
# if if 条件: 代码块 # if...else if 条件: 代码块 else: 代码块 # if...elif....elif...else if 条件: 代码块 elif 条件: 代码块 elif 条件: 代码块 ...(可以写任意个elif) else: 代码块
2、 while循环
同样需要注意冒号和缩进。另外,在 Python 中没有 do..while 循环。
#while while 条件: 代码块 #while + break while 条件: 代码块 break # 结束本层循环,跳出循环 # while + continue while 条件: 代码块 if 条件: 代码块 cotinue # 不执行下面代码,然后继续循环,即跳出本次循环 代码块 #while + else while 条件: 代码块 else: print('如果我没有被break,我就会被打印出来')
实例:
n = 1 while n < 4: print(n) n += 1 else: print("a") # 1,2,3,a
使用循环嵌套来实现99乘法法则:
# 外边一层循环控制行数 # i是行数 i = 1 while i <= 9: # 里面一层循环控制每一行中的列数 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循环
for循环可以遍历任何序列的项目,如一个列表或者一个字符串。
for循环的循环次数受限于容器类型的长度,而while循环的循环次数需要自己控制。
#for for i in range/str/list/tuple/dict/set(可迭代对象): print(i) #for + break for i in range/str/list/tuple/dict/set(可迭代对象): print(i) break # 结束本层循环 # for + continue for i in range/str/list/tuple/dict/set(可迭代对象): print(i) if 条件: continue # 结束本次循环,即不执行下面代码,继续循环 代码块 #for + else for i in range/str/list/tuple/dict/set(可迭代对象): print(i) else: print('如果我没有被break,我就会被打印出来')
实例:
# for循环按照索引取值 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()函数
如果你需要遍历数字序列,可以使用内置range()函数。它会生成数列,例如:
for i in range(5): print(i) # 0 1 2 3 4
你也可以使用range指定区间的值:
for i in range(5, 9): print(i) # 5 6 7 8
也可以使range以指定数字开始并指定不同的增量(甚至可以是负数,有时这也叫做'步长'):
for i in range(0, 10, 3): print(i) # 0 3 6 9
负数:
for i in range(-10, -100, -30): print(i) # -10 -40 -70
您可以结合range()和len()函数以遍历一个序列的索引,如下所示:
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()函数来创建一个列表:
a = list(range(5)) print(a) # [0, 1, 2, 3, 4]
实例:
1-100 的和:
print(sum(range(101)))
十、pass 语句
Python pass是空语句,是为了保持程序结构的完整性。
pass 不做任何事情,一般用做占位语句,如下实例
while True: pass # 等待键盘中断 (Ctrl+C)
最小的类:
class MyEmptyClass: pass
以上是分析Python中的變數、運算子和流程控制的例子。的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

PHP主要是過程式編程,但也支持面向對象編程(OOP);Python支持多種範式,包括OOP、函數式和過程式編程。 PHP適合web開發,Python適用於多種應用,如數據分析和機器學習。

PHP適合網頁開發和快速原型開發,Python適用於數據科學和機器學習。 1.PHP用於動態網頁開發,語法簡單,適合快速開發。 2.Python語法簡潔,適用於多領域,庫生態系統強大。

在 Sublime Text 中運行 Python 代碼,需先安裝 Python 插件,再創建 .py 文件並編寫代碼,最後按 Ctrl B 運行代碼,輸出會在控制台中顯示。

Python更適合初學者,學習曲線平緩,語法簡潔;JavaScript適合前端開發,學習曲線較陡,語法靈活。 1.Python語法直觀,適用於數據科學和後端開發。 2.JavaScript靈活,廣泛用於前端和服務器端編程。

PHP起源於1994年,由RasmusLerdorf開發,最初用於跟踪網站訪問者,逐漸演變為服務器端腳本語言,廣泛應用於網頁開發。 Python由GuidovanRossum於1980年代末開發,1991年首次發布,強調代碼可讀性和簡潔性,適用於科學計算、數據分析等領域。

Golang在性能和可擴展性方面優於Python。 1)Golang的編譯型特性和高效並發模型使其在高並發場景下表現出色。 2)Python作為解釋型語言,執行速度較慢,但通過工具如Cython可優化性能。

在 Visual Studio Code(VSCode)中編寫代碼簡單易行,只需安裝 VSCode、創建項目、選擇語言、創建文件、編寫代碼、保存並運行即可。 VSCode 的優點包括跨平台、免費開源、強大功能、擴展豐富,以及輕量快速。

在 Notepad 中運行 Python 代碼需要安裝 Python 可執行文件和 NppExec 插件。安裝 Python 並為其添加 PATH 後,在 NppExec 插件中配置命令為“python”、參數為“{CURRENT_DIRECTORY}{FILE_NAME}”,即可在 Notepad 中通過快捷鍵“F6”運行 Python 代碼。
