我的Python學習 4 運算子和for迴圈

2021-09-14 07:29:40 字數 3870 閱讀 9341

>>> 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) 運算子 運算子小練習

學習了變數 輸入 輸出,就可以向程式中輸入一些值,程式也會將結果輸出列印出來,系統對使用者輸入的資料處理的過程叫做運算,用於運算的符號叫做運算子 運算子分類 算數運算子 賦值運算子 復合賦值運算子 比較 關係 運算子 邏輯運算子 算數運算子 加 減 乘 除 取商的整數 取餘 冪 如圖 注意 當乙個表...