python運算符+條件結(jié)構(gòu)+循環(huán)結(jié)構(gòu)
一,算術(shù)運算符
+ - * /
print(1+2) ? ? ? ?相加 print("1"+"2") ? ? ? ?拼接 print("1"+2) ? ? ? ?報錯,數(shù)據(jù)類型不同 # /求除數(shù) ?//求整數(shù) ? ?%取模 ? **冪 print(3/2) ? ? ? ?輸出1.5 print(3//2) ? ? ? ?輸出1 print(3%2) ? ? ? ?輸出1 print(3**2) ? ? ? ?輸出9
Python中float進(jìn)行算術(shù)運算時,精度丟失問題:
使用Python中的Decimal
模塊解決
①.導(dǎo)入Decimal模塊
from decimal import Decimal
②.使用
變量 = Decimal("float值")
請注意:float類型的值:必須用雙引號包裹
注意:算術(shù)運算符的優(yōu)先級
()高于**高于 * / // %高于 + -
數(shù)據(jù)庫中針對錢,使用Decimal,導(dǎo)入方式如下:
# 單精度(32位)floot # 雙精度(64位)double # 計算機(jī)的底層都是二進(jìn)制(小數(shù)不能完美轉(zhuǎn)成二進(jìn)制) # 數(shù)據(jù)庫中如果針對錢 ?Decimal(10,2) ?decimal是字符串小數(shù) print(0.2-0.1) print(0.6-0.4) print(Decimal(0.6) - Decimal(0.4)) print(Decimal("0.6") - Decimal("0.4"))
控制臺輸出:
0.1
0.19999999999999996
0.1999999999999999555910790150
二,賦值運算符
多個變量賦值,格式: 變量1,變量2,變量3 = 值1,值2,值3
a,b,c=1,2,3
多個變量賦相同值,格式:變量1=變量2=變量3=值
a=b=c=1
三,比較運算符
> < >= <= != <>
有a+=1,a/=2,a*=2,a-=2,但是沒有a++
注意:比較運算符的特殊情況
四,邏輯運算符
java中的邏輯運算符 : &&并且 //或者
python中的邏輯運算符: and并且 or或者
①and運算符
只要有一個值為0,則結(jié)果為0,否則結(jié)果為最后一個非0的數(shù)字
②or運算符
只有所有的值為0結(jié)果才為0,否則結(jié)果為第一個非0數(shù)字
print(True and False) # 先并且,再或者 print(True and False or True) # 在python中 0為false,其他數(shù)字為true print(1 and 2) print(1 and 2 and 0 and 1) print(1 or 2 or 0 or 1)
控制臺輸出:
False
True
2
0
1
五,位運算符
<< 二進(jìn)制位數(shù)往左邊移動
# 6 ?110 # print(6<<2)即11000即24 print(6<<2)
>> 二進(jìn)制位數(shù)往右邊移動
# print(6>>2)即1即1 print(6>>2)
& 按位與:位數(shù)都為1,則為1,否則為0
# 6 ?110 # 3 ?011 # 010控制臺輸出2 print(3&6)
| 按位或:位數(shù)有1,則為1,否則為0
# 6 ?110 # 3 ?011 # 111控制臺輸出7 print(3|6)
^ 按位異或:位數(shù)相同為0,不同為1
# 6 ?110 # 3 ?011 # 101控制臺輸出5 print(3^6)
# 2,4,8,16,32.... # 10,100,10000,10000,100000... # 1,11,111,1111,11111.... print(4&(4-1)) ? ? ? ?輸出0 print(8&(8-1)) ? ? ? ?輸出0 print(9&(9-1)) ? ? ? ?輸出8
二進(jìn)制:0,1
八進(jìn)制:0-7
十進(jìn)制:0-9
十六進(jìn)制:0-9 a-f
六,條件運算符
# 條件后移 a=1 b=2 print(a if a>b ?else b) ? ? ?
輸出2
七,隨機(jī)數(shù)
- ①.導(dǎo)入random模塊,import random
- ②.使用random模塊中隨機(jī)數(shù)功能,r
andom.randint
(開始,結(jié)束),注意:包含開始位置和結(jié)束位置
石頭剪刀布游戲:
ls=["1,? ","2,??"," 3,???"] u=int(input("請輸入[1,? 2,?? 3,???]")) c=random.randint(1,3) win=1 if c+1==4 else c+1 print(f"電腦出了{(lán)ls[c-1]},玩家出了{(lán)ls[u-1]}") if u==win: ? ? print("你贏了") elif u==2: ? ? print("平局") else: ? ? print("你輸了")
控制臺:
請輸入[1,? 2,?? 3,??]1 ---------手動輸入
電腦出了 3,??,玩家出了1,?
你贏了
進(jìn)程已結(jié)束,退出代碼為 0
八,條件結(jié)構(gòu)
1,if語句
語法格式,if 條件:
代碼塊
注意:縮進(jìn)關(guān)系【4個空格或一個Tab制表符】
2,if-else語句
語法格式,if 條件:
代碼塊
else:
代碼塊
3,if-elif-else語句
語法格式,if 條件1:
代碼塊
elif 條件2:
代碼塊
else:
代碼塊
4,if嵌套
語法格式,if 條件:
代碼塊
if 條件:
代碼塊
else:
代碼塊
九,循環(huán)結(jié)構(gòu)
1,while循環(huán)
語法,while 條件:
代碼塊
# 使用while輸出1~100的數(shù)字 a=1 while a<=100: ? ? print(a) ? ? a+=1
2,循環(huán)終止
break : 終止循環(huán)
continue :退出當(dāng)前一次循環(huán),繼續(xù)執(zhí)行下次循環(huán)
# if,while,for都有else for i in ls: ? ? print(i) ? ? if i>5: ? ? ? ? break else:#只要上面的代碼沒有break就執(zhí)行 ? ? print("yes")
3,for循環(huán)
語法,for 臨時變量 in 列表:
代碼塊
ls=[1,2,3,4,5,6,7,8] sum=0 for i in ls: ? ? print(i) ? ? sum+=i print(sum/len(ls)) print(sum/len(ls)) # range(3) [0,1,2] for i in range(3): ? ? print(i) # 200~300 for i in range(101): ? ? print(i+200)
4,循環(huán)結(jié)合else使用
①while...else
語法,while 條件:
代碼塊
else:
代碼塊
②for...else
語法,for 臨時變量 in 列表:
代碼塊
else:
代碼塊
# if,while,for都有else for i in ls: ? ? print(i) ? ? if i>5: ? ? ? ? break else:#只要上面的代碼沒有break就執(zhí)行 ? ? print("yes")
到此這篇關(guān)于python運算符+條件結(jié)構(gòu)+循環(huán)結(jié)構(gòu)的文章就介紹到這了,更多相關(guān)python結(jié)構(gòu)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
numpy中hstack vstack stack concatenate函數(shù)示例詳解
這篇文章主要為大家介紹了numpy中hstack vstack stack concatenate函數(shù)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02PyTorch中tensor.backward()函數(shù)的詳細(xì)介紹及功能實現(xiàn)
backward()?函數(shù)是PyTorch框架中自動求梯度功能的一部分,它負(fù)責(zé)執(zhí)行反向傳播算法以計算模型參數(shù)的梯度,這篇文章主要介紹了PyTorch中tensor.backward()函數(shù)的詳細(xì)介紹,需要的朋友可以參考下2024-02-02Python列表排序 list.sort方法和內(nèi)置函數(shù)sorted用法
這篇文章主要介紹了Python列表排序 list.sort方法和內(nèi)置函數(shù)sorted用法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03