1. 程式人生 > 其它 >Python:流程控制及內建方法

Python:流程控制及內建方法

Python:流程控制及內建方法

流程控制之while+else

昨天我們講了結束while迴圈可以加關鍵字“break”,那麼while+else的用法呢就是在沒有用關鍵字“break”的情況下,while迴圈正常結束,就可以執行else程式碼。來看一下程式碼結構:

'''
while 條件:
    迴圈體程式碼
else:
    while迴圈正常結束執行的程式碼  
'''

我們可以來看一段程式碼,可以更加直觀的瞭解它:

count = 0
while count < 10:
    print(count)
    count += 1
    # break  # 如果在這裡加一個break下面的程式碼就不會執行
else: print('正常結束可以執行程式碼')

流程控制之while巢狀

while巢狀就是字面意思,while迴圈裡面巢狀一個while迴圈,用程式碼來演示一下:

count = 0
is_teg = True
while is_teg:
    while count < 3:
        username = input('輸入你的使用者名稱>>:')
        password = int(input('輸入你的密碼>>:'))
        if username == 'oscar' and password == 123:
            
print('登入成功') break else: print('登入失敗') count += 1 if count == 3: again = input('你的次數用完了,是否繼續(y/n)>>:') if again == 'y': count = 0 else: is_teg = False

死迴圈

死迴圈這個我們也是要講一下的,死迴圈就是一直無法結束的迴圈,一直佔用CPU工作,會造成電腦的卡頓,嚴重的會損傷硬體。看一段簡單的死迴圈程式碼:

# 這就是最簡單的一段死迴圈程式碼,一直列印1,不會結束
while True:
    print(1)

流程控制之for迴圈

for迴圈能做的是while迴圈都做得到,那為什麼還要學習for迴圈呢,那是因為for迴圈更簡潔,使用率更高。先來看一下它的語法結構:

'''
for 變數名 in for迴圈對像:  # 字典、字串、元組、集合、列表
    for迴圈的迴圈體程式碼
'''
# 每次迴圈都會將for迴圈物件中的元素賦值給變數名

一般情況下有關取值的我們都用for迴圈,很少用while迴圈,來看一個例子:

# 取出name中的元素
name = ['oscar', 'jason', 'tony']
# while迴圈
count = 0
while count < 3:
    print(name[count])
    count += 1

# for迴圈
for i in name:
    print(i)

我們可以看到while迴圈要四行程式碼才能完成的,for迴圈兩行就可以,而且while還存在一些弊端,一旦“name”的元素數量比較大,while迴圈的劣勢就會更加明顯。

for迴圈字串型別,列印字串的所有字母

# for迴圈字串,列印所有字母
count = 'oscar'
for i in count:
    print(i)

for迴圈字典

 

 

 

for迴圈集合

 

 

 

 range關鍵字

如果我們想要列印0-100,我們可以分別用while迴圈和for迴圈先看一下:

# 列印1-100
#while迴圈
count = 0
while count < 101:
    print(count)
    count += 1

# for迴圈
for i in range(101):
    print(i)

可以看到for迴圈是非常簡潔的,但是也引出了一個新的知識點“range”關鍵字,“range”是一個迭代器,用於產生資料集,但是節省記憶體空間,它的取值方法式“顧頭不顧尾”。“range”在python2和python3中是有區別的:

python2中的range是直接產生一個列表,佔有記憶體空間大。

 

 

但是python2中的“xrange”是跟python3中的“range”一樣的。

 

 

 python3中的“range”就是產生一個數據集,佔用記憶體空間小。

 

 

 for+break迴圈

break結束本層迴圈。

# for+break
for i in range(10):
    print(i)
    break  # 沒有break的時候列印0-9,加了break列印0之後遇到break直接結束for迴圈

for+continue迴圈

continue結束本次迴圈。

# continue+for
for i in range(10):
    if i == 4:
        continue  # 當i等於4的時候遇到continue直接結束,開始下輪迴圈
    print(i)

for+else迴圈

for迴圈正常結束之後執行else的語句。

# for+else迴圈
for i in range(10):
    print(i)
else:
    print('正常結束可以列印的')

內建方法:整型(int)

整型的內建方法有型別轉換和進位制數轉換。

型別轉換(只能轉換純數字不帶小數點的字串):

 

 

 進位制數轉換:

1.將十進位制轉換成其它進位制:

print(bin(100))  # 0b1100100 二進位制(0b)
print(oct(100))  # 0o144 八進位制 (0o)
print(hex(100))  # 0x64 十六進位制 (0x)

2.將其它進位制轉換成十進位制:

print(int('0b1100100', 2))
print(int('0o144', 8))
print(int('0x64', 16))

內建方法:浮點型(float)

型別轉換(只能轉換純數字的字串):

 

 

 內建方法:字串(str)

1.型別轉換

字串可以轉換所有的基本資料型別。

2.索引取值

可以跟列表一樣根據下標索引取值。

name = 'oscar'
print(name[1])

3.切片

可以取指定的值。

# 取hello
name = 'oscar hello'
print(name[6:11])  # 顧頭不顧尾

4.步長

間隔多少個步長取一個值。

5.統計字串中字元的個數

# 統計字串的個數
name = 'oscar hello'
print(len(name))

6.成員運算

判斷某個字串在不在某個字串裡面。

7.移除字串首位指定的字元

8.按照指定的字元切割字串

URL = '127.0.0.1'
print(URL.split('.'))  # 根據句點符切割
print(URL.split('.', 2))  # 可以指定切割的次數

 

 

 這裡是IT小白陸祿緋,歡迎各位大佬的指點!!!