day_003 Python中的if和循環(huán)相關功能

一猎提、if語句

1.基本句式

格式:
if 條件語句:
(縮進)條件語句結果為True執(zhí)行的代碼塊

執(zhí)行過程:先判斷條件語句是否為True,如果為True就執(zhí)行if語句后:后面對應的一個縮進的所有代碼旁蔼;為False锨苏,就不執(zhí)行冒號后面的代碼塊,直接執(zhí)行后續(xù)的其他語句棺聊。

條件語句:可以是任何有值的表達式伞租,但是一般是布爾值
示例:

if True:
    print('執(zhí)行')
    print('代碼1')
    print('代碼2')

print('代碼3')

結果:

執(zhí)行
代碼1
代碼2
代碼3

2.if-else

格式:
if 條件語句:
(縮進) 代碼塊1
else:
(縮進) 代碼塊2

執(zhí)行過程:條件語句為True,執(zhí)行代碼塊1限佩,條件為False葵诈,執(zhí)行代碼塊2
示例:

score = 50

if score >= 60:
    print('及格')
else:
    print('不及格')

結果:

不及格

3.if-elif-else

格式:
if 條件語句1:
(縮進) 代碼塊1
elif 條件語句2:
(縮進) 代碼塊2
else:
(縮進) 代碼塊3

執(zhí)行過程:條件語句1為True,只執(zhí)行代碼塊1祟同;條件語句1為False作喘,條件語句2為True,只執(zhí)行代碼塊2晕城;條件語句1和2都為False泞坦,執(zhí)行代碼塊3

示例:

score = 98

if score>=90:
    print('優(yōu)秀')
elif score>=70:
    print('良好')
elif score>=60:
    print('及格')
elif score>=0:
    print('不及格')
else:
    print('成績無效')

結果:

優(yōu)秀

4.if語句的嵌套使用

格式:
if 條件語句1:
(縮進) if 條件語句2:
(縮進)(縮進)代碼塊1
(縮進) else:
(縮進)(縮進)代碼塊2
else:
(縮進)代碼塊3
示例:

num = 16

if isinstance(num, int):
    if num%2:
        print(num , '是奇數')
    else:
        print(num , '是偶數')
        if num%4:
            pass
        else:
            print(num , '是4的倍數')
else:
    print(num, '的數據類型不符合')

結果:

16 是偶數
16 是4的倍數

注:isinstance(值,類型名) ---- 判斷指定的值是否是指定額數據類型砖顷,ininstance的返回值為:True和False

二贰锁、數據類型轉換

通用格式:類型名(被轉換的數據)
適用類型:int ,float ,str ,bool

1.其他的數據類型轉換成整型

方法:int()
特點:
浮點型:取整
bool:True ----- 1 ;False ----- 0
字符串:去掉引號之后依舊就是一個整型數據的字符串才能轉換成整型。
示例:

print(int(12.3))
print(int(True))
print(int(False))
print(int('46564'))
print(int('-15'))
print(int('+45'))

結果:

12
1
0
46564
-15
45

2.其他的數據類型轉換成浮點型

方法:float()
特點:
整型:在整數后面加個'.0'
bool:True ----- 1.0;False ----- 0.0
字符串:去掉引號之后依舊就是一個整型或者浮點型數據的字符串才能轉換成整型滤蝠。
示例:

print(float(12))
print(float(True))
print(float(False))
print(float('123'))
print(float('123.456'))
print(float('-13.5'))
print(float('+15.54'

結果:

12.0
1.0
0.0
123.0
123.456
-13.5
15.54

3.其他類型的數據轉換成布爾類型

方法:bool()
特點:
不管什么類型的數據都可以轉換成布爾值
整型:0 ----- False; 其他的都為True
浮點型:0.0 ----- False; 其他都為True
字符串:空字符串('') ----- False李根;其他都為True
所有為0為空的都為False
示例:

print(bool(1))
print(bool(123))
print(bool(-154))
print(bool(0))
print(bool(12.5))
print(bool(-45.5))
print(bool(0.0))
print(bool('123'))
print(bool('0'))
print(bool(' '))
print(bool(''))
print(bool(None))

結果:

True
True
True
False
True
True
False
True
True
True
False
False

4.其他類型的數據轉換成字符串

方法:str()
特點:
所有數據類型的數據都可以轉換成字符串
其他數據轉換成字符串的時候,就是直接在數據的外層加引號
示例:

# 判斷一個字符串是否為空串(字符串長度為0)

str1 =''
# 方法1
if str1 == '':
    print('空串')
else:
    print('不是空串')

# 方法2
if len(str1) == 0:
    print('空串')
else:
    print('不是空串')

# 方法3
if str1:
    print('不是空串')
else:
    print('空串')

# 判斷一個數字是否為0
number = 0
if number:
    print('不是0')
else:
    print('是0')

結果:

空串
空串
空串
是0

三几睛、for循環(huán)

1.for循環(huán)

for 變量 in 序列:
(縮進) 循環(huán)體

for:關鍵字
變量:聲明中間變量
in:關鍵字
序列:容器類型的數據 ----- 字符串房轿、列表、集合所森、字典囱持、元組等
循環(huán)體:需要重復執(zhí)行的代碼塊

執(zhí)行過程:用中間變量去取序列中的元素(一次取一個),取完為止焕济,每取一次執(zhí)行一次循環(huán)體纷妆。
示例:

number = '一二三123'
for num in number:
    print(num)

結果:

一
二
三
1
2
3

2.range()函數及在for循環(huán)中的使用

  • xrange()是python2.x中的函數,在python3.x使用range()代替了
  • range()的功能時產生指定范圍的數字序列晴弃,一般用在for循環(huán)中掩幢,控制循環(huán)次數逊拍,或者產生索引值。
    range(n):產生0 ~ n-1的整數序列
    range(n,m):產生 n ~ m-1 的整數序列
    range(n,m,s):產生 n ~ m-s 的整數序列,步進為s
    示例:
list1 = [1,2,3,4]

for i in range(1, len(list1)):
    print(list1[i])

print('-'*20)

# 打印20次'abc'
for i in range(20):
    print('abc', i+1)

print('-'*20)

# 步進為2
for i in range(1,11,2):
    print(i)

print('-'*20)

# 練習:計算1+2+3+······+100
# 方法一
sum1 = 0
for num in range(1,101):
    sum1 += num

print(sum1)

# 方法二
sum1 = 0
for num in range(100):
    sum1 += num + 1

print(sum1)
print('-'*20)

# 練習: 計算1*2*3*```*10
sum1 = 1
sum2 = 1
for num in range(1,11):
    sum1 *= num
    if not num%2:
        sum2 *= num


print(sum1)
print(sum2)
print('-'*20)

# 練習2:有一個字符串'abcdef',依次取出偶數位上的字符际邻。(下標為偶數)
# 方法一
str1 = 'abcdef'
list2 = []
for num in range(len(str1)):
    if not num % 2:
        list2.append(str1[num])

print(list2)

# 方法二
for index in range(0, len(str1), 2):
    print(str1[index])

# 方法三
index = 0
for char in str1:
    if not index%2:
        print(char)
    index += 1

結果:

2
3
4
--------------------
abc 1
abc 2
abc 3
abc 4
abc 5
abc 6
abc 7
abc 8
abc 9
abc 10
abc 11
abc 12
abc 13
abc 14
abc 15
abc 16
abc 17
abc 18
abc 19
abc 20
--------------------
1
3
5
7
9
--------------------
5050
5050
--------------------
3628800
3840
--------------------
['a', 'c', 'e']
a
c
e
a
c
e

四芯丧、while循環(huán)

while 條件語句:
(縮進) 循環(huán)體

while:關鍵字
條件語句:結果是True,或者False
循環(huán)體:需要重復執(zhí)行的代碼塊

  • 執(zhí)行過程:判斷條件語句是否為True,為True就執(zhí)行循環(huán)體世曾,執(zhí)行完循環(huán)體缨恒,在判斷條件語句是否為True,如果為True轮听,就再次執(zhí)行循環(huán)體骗露,為False,退出循環(huán)血巍。
    注意:如果條件語句一直未True萧锉,就會造成死循環(huán)。所以在循環(huán)體中要有可以結束循環(huán)的操作述寡。

python中沒有do-while循環(huán)
示例:

flag = True
while flag:
    print('flag:戰(zhàn)爭結束了我就回家結婚')
    flag = False

print('-'*20)

# 使用while循環(huán)計算1+2+3+····+100
num = 0
sum1 = 0
while num<101:
    sum1 += num
    num += 1

print(sum1)
    
# 練習:2+4+6+···+100

num = 2
sum2 = 0
while num<101:
    sum2 += num
    num += 2

print(sum2)

結果:

flag:戰(zhàn)爭結束了我就回家結婚
--------------------
5050
2550

五柿隙、continue和break

1.continue

  • continue和break兩個關鍵字都是作用于循環(huán)當中,用來結束循環(huán)的辨赐。
  • continue:關鍵字,在循環(huán)體中遇到continue就結束當次循環(huán)京办,直接進入下次循環(huán)的判斷掀序。如果是for循環(huán),中間變量取下一個值惭婿,while循環(huán)中則是去判斷條件語句是否為True不恭。

示例:

for num in range(10):
    if num%2:
        continue
    print(num)

結果:

0
2
4
6
8

2.break

  • break:關鍵字,在循環(huán)體中遇到break,就直接結束整個循環(huán)财饥。

示例:

for x in range(1,10):
    print(x)
    if x>5:
        break

結果:

1
2
3
4
5
6

六换吧、for和while的選擇和循環(huán)嵌套

1.for和while的選擇

for:通過序列控制循環(huán),循環(huán)的次數是固定的也是確定的钥星。
while:在循環(huán)過程中可以修改條件語句的真假沾瓦,循環(huán)次數可以不確定,也可操作谦炒。

  • 循環(huán)次數不確定時贯莺,選擇while循環(huán)。確定時宁改,一般選擇for循環(huán)缕探。
  • 通過循環(huán)遍歷一個序列中的值,使用for循環(huán)

七还蹲、知識拓展

1.input()

  • 接收從控制臺輸入的數據(輸入的數據以回車結束)
  • 程序中遇到input()函數爹耗,程序會阻塞耙考,等待用戶輸入數據,用戶輸入完成后(回車)潭兽,才會執(zhí)行后面的代碼倦始。

2.產生隨機數

  • python中有一個內置模塊,可以產生隨機數:random();
  • randint(n, m):產生一個n~m的隨機整數
    示例:
import random
num = random.randint(1,10)
print(num)

結果:

2
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末讼溺,一起剝皮案震驚了整個濱河市楣号,隨后出現的幾起案子,更是在濱河造成了極大的恐慌怒坯,老刑警劉巖炫狱,帶你破解...
    沈念sama閱讀 211,042評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異剔猿,居然都是意外死亡视译,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 89,996評論 2 384
  • 文/潘曉璐 我一進店門归敬,熙熙樓的掌柜王于貴愁眉苦臉地迎上來酷含,“玉大人,你說我怎么就攤上這事汪茧∫窝牵” “怎么了?”我有些...
    開封第一講書人閱讀 156,674評論 0 345
  • 文/不壞的土叔 我叫張陵舱污,是天一觀的道長呀舔。 經常有香客問我,道長扩灯,這世上最難降的妖魔是什么媚赖? 我笑而不...
    開封第一講書人閱讀 56,340評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮珠插,結果婚禮上惧磺,老公的妹妹穿的比我還像新娘。我一直安慰自己捻撑,他們只是感情好磨隘,可當我...
    茶點故事閱讀 65,404評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著顾患,像睡著了一般琳拭。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上描验,一...
    開封第一講書人閱讀 49,749評論 1 289
  • 那天白嘁,我揣著相機與錄音,去河邊找鬼膘流。 笑死絮缅,一個胖子當著我的面吹牛鲁沥,可吹牛的內容都是我干的。 我是一名探鬼主播耕魄,決...
    沈念sama閱讀 38,902評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼画恰,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了吸奴?” 一聲冷哼從身側響起允扇,我...
    開封第一講書人閱讀 37,662評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎则奥,沒想到半個月后考润,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 44,110評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡读处,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年糊治,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片罚舱。...
    茶點故事閱讀 38,577評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡井辜,死狀恐怖,靈堂內的尸體忽然破棺而出管闷,到底是詐尸還是另有隱情粥脚,我是刑警寧澤,帶...
    沈念sama閱讀 34,258評論 4 328
  • 正文 年R本政府宣布包个,位于F島的核電站刷允,受9級特大地震影響,放射性物質發(fā)生泄漏赃蛛。R本人自食惡果不足惜恃锉,卻給世界環(huán)境...
    茶點故事閱讀 39,848評論 3 312
  • 文/蒙蒙 一搀菩、第九天 我趴在偏房一處隱蔽的房頂上張望呕臂。 院中可真熱鬧,春花似錦肪跋、人聲如沸歧蒋。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽谜洽。三九已至,卻和暖如春吴叶,著一層夾襖步出監(jiān)牢的瞬間阐虚,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評論 1 264
  • 我被黑心中介騙來泰國打工蚌卤, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留实束,地道東北人奥秆。 一個月前我還...
    沈念sama閱讀 46,271評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像咸灿,于是被迫代替她去往敵國和親构订。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,452評論 2 348

推薦閱讀更多精彩內容