Python(二)運算子與條件控制及while迴圈列印菱形
阿新 • • 發佈:2018-12-09
#運算子 #算數運算子 # + 加 1+1結果為2 # - 減 1-1結果為0 # * 乘 2*2結果為4 # / 除 2/2結果為1 # % 取模 2%2結果為0 # ** 冪 2**2結果為4 # // 整除 2//2結果為1 #賦值運算子 a=2 a+=1 #a=a+1 a-=1 #a=a-1 a*=1 #a=a*1 a**=3 #a=a*a*a a/=2 #a=a/2 a//=3 #a=a//3 除不盡時 取整 a%=2 #取模 a=a%2 print(True-1) #結果為0,1-1=0 (True==1,False==0) print(25**0.5) #開平方 #比較運算子 print(True==1) # 等於號 結果為True (True==1,False==0) print("1">"0") # 大於號 結果為True 可比較字串 根據雜湊值比較 print(1!=2) # 不等於 結果為True 1不等於2 print(1<2) # 小於號 結果為True 1小於2 print(2>=2) # 大於等於 結果為True 2大於或等於2 print(2<=2) # 小於等於 結果為True 2小於或等於2 #位運算子 #位運算子是把數字轉為二進位制來進行計算 # 運算子 描述 例項 #a 為 60,b 為 13 #二進位制格式為 # a = 0011 1100 # b = 0000 1101 # & 按位與運算子:參與運算的兩個值,如果兩個相應位都為1,則該位的結果為1,否則為0 (a & b) 輸出結果 12 ,二進位制解釋: 0000 1100 # a&b = 0000 1100 # | 按位或運算子:只要對應的二個二進位有一個為1時,結果位就為1。 (a | b) 輸出結果 61 ,二進位制解釋: 0011 1101 # a|b = 0011 1101 # ^ 按位異或運算子:當兩對應的二進位相異時,結果為1 (a ^ b) 輸出結果 49 ,二進位制解釋: 0011 0001 # a^b = 0011 0001 # ~ 按位取反運算子:對資料的每個二進位制位取反,即把1變為0,把0變為1。~x 類似於 -x-1 (~a ) 輸出結果 -61 ,二進位制解釋: 1100 0011, 在一個有符號二進位制數的補碼形式。 # ~a = 1100 0011 # << 左移動運算子:運算數的各二進位全部左移若干位,由"<<"右邊的數指定移動的位數,高位丟棄,低位補0。 a << 2 輸出結果 240 ,二進位制解釋: 1111 0000 # >> 右移動運算子:把">>"左邊的運算數的各二進位全部右移若干位,">>"右邊的數指定移動的位數 a >> 2 輸出結果 15 ,二進位制解釋: 0000 1111 #邏輯運算子 and、 or、 not # 以下假設變數 a 為 10, b為 20 # and x and y 布林"與" - 如果 x 為 False,x and y 返回 False,否則它返回 y 的計算值。 (a and b) 返回 20。 # or x or y 布林"或" - 如果 x 是 True,它返回 x 的值,否則它返回 y 的計算值。 (a or b) 返回 10。 # not not x 布林"非" - 如果 x 為 True,返回 False 。如果 x 為 False,它返回 True。 not(a and b) 返回 False a = 10 b = 20 print(a and b) #結果為20 print(a<b and a==10) #結果為True,兩邊同時為True則為True print(1==1 or 1>2) #結果為True 一邊為True在,則為True print(not(1==1)) #1==1為True ,加上not則取非 True則變False,False變True #三元運算 # 結果1 if 條件 else 結果2 print("1大於0") if 1>0 else print("1小於0") #成員運算子 # Python還支援成員運算子,測試例項中包含了一系列的成員,包括字串,列表或元組。 # in 如果在指定的序列中找到值返回 True,否則返回 False。 x 在 y 序列中 , 如果 x 在 y 序列中返回 True。 # not in 如果在指定的序列中沒有找到值返回 True,否則返回 False。 x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。 a = 1 b = 20 arr = [1, 2, 3, 4, 5 ]; if a in arr: print("arr中存在a變數") #在arr中找到變數a的值則輸出 else: print("arr中不存在a變數") #在arr沒有中找到變數a的值則輸出 if b not in arr: print("arr中不存在b變數") #在arr中沒有找到變數b的值則輸出 else: print("arr中存在b變數")#在arr中找到變數b的值則輸出 #身份運算子 身份運算子用於比較兩個物件的儲存單元 # is is 是判斷兩個識別符號是不是引用自一個物件 x is y, 類似 id(x) == id(y) , 如果引用的是同一個物件則返回 True,否則返回 False # is not is not 是判斷兩個識別符號是不是引用自不同物件 x is not y , 類似 id(a) != id(b)。如果引用的不是同一個物件則返回結果 True,否則返回 False。 n = 20 m = 10 if ( n is m ): # 也可 if ( 20 is 20 ): print ("n 和 m 有相同的標識") #如果n和m裡的值相同 else: print ("n 和 m 沒有相同的標識") #如果n和m裡的值不相同 if ( id(n) == id(m) ): print ("n 和 m 有相同的標識") #如果n和m裡的值相同 else: print ("n 和 m 沒有相同的標識") #如果n和m裡的值不相同 m=20 if ( n is not m ): print ("n 和 m 沒有相同的標識") #如果n和m裡的值不相同 else: print ("n 和 m 有相同的標識") #如果n和m裡的值相同 #條件控制 #行與縮排 #Python使用縮排來表示程式碼塊,不需要{} if True: print("True") else: print("False") # 結果為 True # if True: # print("True") # else: # print("False") # print(9) #此行程式碼縮排不一致,執行會報錯 #單獨一句程式碼必須頂格編寫 不然會報錯 #也可編寫為: # if 條件: # 結果 # elif 條件: # 結果 # else: # 結果 #控制檯輸入 #name= input("請輸入你的姓名:")#控制檯輸入回車,會將輸入的值賦給name #注意:因為控制檯輸入的值都是string型別,如果要做int型別使用要轉型別 #print(name) #迴圈之while迴圈 i=1 while i<=9: j=1 while j<=i: print(j,"*",i,"=",(j*i)," ",end="") # j,"*",i,"=",(j*i)," " 為j*i=(j*i)【," "為在最後新增空格】 end=""為print不換行 j+=1 print() i+=1 #菱形 #-----------------上半部分 y=1 while y<10: #列印9行 k=1 p=1 while k<10-y: #第一次八個空格 print(" ",end="") k+=1 while p<y*2: #第一次一個* print("*",end="") p+=1 print("") #換行 y+=1 #-----------------下半部分 y = 9 while y<10 and y>0: k=1 p=1 while k<=10-y: #第一次一個空格 print(" ",end="") k+=1 y-=1 while p<=y*2-1:#1=8*2-1 第一次十五個* print("*",end="") p+=1 print("")