1. 程式人生 > 實用技巧 >python基礎語法(二)

python基礎語法(二)

1.邏輯運算子

1.not

  1. ot就是把緊跟後面的結果取反
  2. not與緊跟其後的那個條件是一個不可分割的整體
print(not 16 > 3)
print(not 16 < 3)
print(not False)
print(not True)
print(not 10)

2.and

  1. and 邏輯與,and用來連結左右兩個條件,只有兩邊全為真時最終結果才為True
print(True and 3 > 1)

print(True and 3>1 and False)  # 條件全為真時,結果才為真

3.or

  1. 邏輯或,or用來連線左右兩個條件,兩個條件但凡有一個為True,最終結果為True,只有在兩個結果都為False的情況下,最終結果才為False
print(0 or 3)

4.優先順序

  1. not>and>or
  2. 如果單獨就只是一串and連結,或者說單獨就只是一串or連結,按照從左到右的順序依次運算即可(偷懶原則)
  3. 如果混用就需要考慮優先順序了

2.流程控制

1.單分支

#if 條件成立:
#    執行程式碼


"""
輸入姓名,性別和年齡,
如果是女生且年齡小於28,輸出我喜歡年輕女孩
"""
name = input("input your name:")
sex = input("input your sex(boy|BOY/girl|GIRL):")
#input()讀入的age是字串,要轉換為int才能與28做大小比較
age = int(input("input your age:"))
if sex.lower() == "girl" and age < 28:
    print(name+" i like young girl")
    
 

2.雙分支

#if 條件:
 #   條件滿足,執行程式碼
#else:
 #   條件不滿足,執行程式碼
    
name = input("input your name:")
sex = input("input your sex(boy|BOY/girl|GIRL):")
#input()讀入的age是字串,要轉換為int才能與28做大小比較
age = int(input("input your age:"))
if sex.lower() == "girl" :
    if age < 28:
        print(name+" i like young girl")
    else:
        print("the age is greater than me is also ok!")
else:
    print("i do not like boy")

3.多分支

#if 條件:
 #   滿足條件執行程式碼
#elif 條件:
#    上面條件不滿足,執行這裡
#elif 條件:
#   上面條件不滿足,執行這裡
#else:
#    所有條件都不滿足,執行這裡

"""
輸入姓名,性別和年齡,
如果是女生
年齡小於28,輸出我喜歡年輕女孩,
年齡不小於28,輸出年齡比我大也可以
如果不是女生
輸出我不喜歡男生
"""
name = input("input your name:")
sex = input("input your sex(boy|BOY/girl|GIRL):")
#input()讀入的age是字串,要轉換為int才能與28做大小比較
age = int(input("input your age:"))
if sex.lower() == "girl" :
    if age < 28:
        print(name+" i like young girl")
    else:
        print("the age is greater than me is also ok!")
elif sex.lower() == "boy":
    print("i do not like boy")
else:
    print("your input is not manual human")

3.深淺copy

賦值, 沒有建立新物件. 共用同一個物件,他們是相同的,賦值後的變數指向原有的記憶體地址

1.淺copy

拷貝第一層內容.不拷貝內部子物件,用 [:]或copy()

lst1 = ["金毛獅王", "紫衫龍王", "青翼蝠王", "白眉鷹王",["張無忌","趙敏","周芷若"]]
print(lst1.copy())  #淺拷貝  拷貝出來的列表第一層與原來是不同的記憶體地址,第二層指向原來的地址 
>>>
['金毛獅王', '紫衫龍王', '青翼蝠王', '白眉鷹王', ['張無忌', '趙敏', '周芷若']] 
print(lst1[:]) #淺拷貝  
>>> 
['金毛獅王', '紫衫龍王', '青翼蝠王', '白眉鷹王', ['張無忌', '趙敏', '周芷若']]

2.深copy

拷貝所有內容. 包括內部的所有,形成一個新的物件,雖然與之前的值和內容一模一樣,但是它們完完全全的兩個物件,用deepcopy()

lst1 = ["金毛獅王", "紫衫龍王", "青翼蝠王", "白眉鷹王",["張無忌","趙敏","周芷若"]]
lst2 = copy.deepcopy(lst1)
print(lst2)   >>>  ["金毛獅王", "紫衫龍王", "青翼蝠王", "白眉鷹王",["張無忌","趙敏","周芷若"]]
print(id(lst1)) >>> 358961124936
print(id(lst2)) >>> 358961315656
# lst1和lst2 是兩個不同記憶體地址的