>>> a = 5
>>> a +=3 #自加(減)運算
>>> a
8>>> a *= 2 #自乘(除)運算
>>> a
16>>> a /= 4 #除法得到的結果是浮點型
>>> a
4.0>>> a //=3 #兩個//疊加使用是整形,相當於對結果取整
>>> a
1>>> 11 % 5 #取餘運算
1>>> 3 ** 2 #兩個*是平凡運算
9
1.優先順序問題:冪運算 正負號 算數操作符 比較操作符 邏輯運算子
ps:**比左邊高,比右邊低
>>> -3**2
-9>>> 3**-2
0.1111111111111111
2.邏輯操作符:and or not
0為false 其他為true
>>> not true
false
>>> not 0
true
>>> not 4
false
>>> not -2
false
>>> 3<4<5
true
3.一些特殊語句
elif = else if
體現了python的簡潔性,高度可讀性
ps:盡量用if else結構,避免使用多個並列的if。
並列的if會每個判斷都執行一遍,消耗cpu時間。
避免「懸掛else」:
if(a>2)
if(a>7)
printf('good!')
else
printf('hey!')
#c語言中else會就近原則,與第二個if匹配;
#python中嚴格的縮排規則,與第乙個匹配;
條件表示式(三元操作符)
x,y =4,5
if xsmall = x if x< y else y 與上述相同效果
斷言assert
assert後的關鍵字稱為斷言,當這個關鍵字後面的條件
為假,程式自動崩潰並丟擲assertionerror的異常
用來在程式中置入檢查點,確保某個條件為真才能正常
工作。
>>> assert 3>4
traceback (most recent call last):
file "", line 1, in assert 3>4
assertionerror
4.for迴圈
for 目標 in 表示式:
迴圈體
>>> word = 'hello'
>>> for i in word:
print(i,end = '*')
h*e*l*l*o*
>>> people = ['jane','marry','tom','lisa','jake']
>>> for each in people:
print(each,len(each))
jane 4
marry 5
tom 3
lisa 4
jake 4
//按順序列印名字並返回每個名字的字母數
5.range()
range([start,]stop[,step = 1])
這個bif有三個引數,括號裡是可選的;預設從0來開始;
step = 1 指第三個引數預設1;
生成乙個從start引數值到stop引數值的
值結束的數字序列;不包含stop值本身;
>>> range(5) #預設從0開始
range(0, 5)
>>> list(range(5))
[0, 1, 2, 3, 4]
>>> for i in range(5):
print(i) 0
1234
>>> for i in range(2,9): #不包括最後乙個
print(i)23
4567
8>>> for i in range(1,10,2): #step = 2, 每隔2輸出乙個
print(i) 1
3579
>>> people = ['jane','marry','tom','lisa','jake']
>>> for index in range(len(people)):
print('當前名字:',people[index])
當前名字: jane
當前名字: marry
當前名字: tom
當前名字: lisa
當前名字: jake
//通過索引實現迴圈,使用了內建函式range()和len()
>>> for i in range(10):
if i%2 != 0:
print(i)
continue
i += 2
print(i) 2
1436
58710
9
7.小作業:判斷10到20之間的質數
>>> for num in range(10,20):
for i in range(2,num): //迴圈判斷除了1和num本身,num是否還有其他因子
if num % i == 0:
j = num // i //如果有乙個因子i,則算出另乙個因子j
print(num,' = ',i,' * ',j)
break
else:
print(num,'是乙個質數') //判斷完畢,沒有其他因子,確定num為質數
10 = 2 * 5
11 是乙個質數
12 = 2 * 6
13 是乙個質數
14 = 2 * 7
15 = 3 * 5
16 = 2 * 8
17 是乙個質數
18 = 2 * 9
19 是乙個質數
#這段**中的else的位置我不太明白,但是如果跟內迴圈if對齊,會導致每次第二層迴圈只能進行一次,15會
被判斷為質數。如果去掉else,後面的print跟for對齊會導致每次外迴圈結束都會列印當前num是乙個
質數;print跟內迴圈if對齊也會導致每次第二層迴圈只能進行一次。
#所以筆者決定在列印當前num是乙個質數之前,先判斷內迴圈是否執行完。
>>> for num in range(10,20):
for i in range(2,num):
if num % i == 0:
j = num // i
print(num,' = ',i,' * ',j)
break
if i == num-1:
print(num,'是乙個質數')
10 = 2 * 5
11 是乙個質數
12 = 2 * 6
13 是乙個質數
14 = 2 * 7
15 = 3 * 5
16 = 2 * 8
17 是乙個質數
18 = 2 * 9
19 是乙個質數
#感覺這樣寫比較好理解,雖然比上乙個複雜一點點
Python學習筆記 4 運算子
1 運算子 2 34 算術運算子 5 6比較運算子 7 8賦值運算子 9 10位運算子 11 12邏輯運算子 13a and y x為false x and y 返回false 否則false 否則返回y的計算值 14x or y x是true,返回x的值,否則返回y的計算值 15not x x為t...
Python 學習 運算和運算子
算數運算 比較賦值 邏輯位運算 身份檢查 成員檢查 冪運算 取商 取餘 等於 不等於 賦值符 加法賦值 a 1 等於 a a 1 and 和 兩者為true為true,否則為false or 或者 乙個為true則為true not 非 真亦假,假亦真 注意 位運算過程中,補碼的高位數也參與運算 按...
Python學習筆記(4) 運算子 運算子小練習
學習了變數 輸入 輸出,就可以向程式中輸入一些值,程式也會將結果輸出列印出來,系統對使用者輸入的資料處理的過程叫做運算,用於運算的符號叫做運算子 運算子分類 算數運算子 賦值運算子 復合賦值運算子 比較 關係 運算子 邏輯運算子 算數運算子 加 減 乘 除 取商的整數 取餘 冪 如圖 注意 當乙個表...