while迴圈補充、for迴圈、range關鍵字、內建方法之整型、內建方法之浮點型、內建方法之字串

吳仁耀發表於2023-02-17

一、while迴圈補充

(1)、while+continue

  • 使用迴圈列印出0-9的數字
count = 0
while count < 10:
    print(count)
    count += 1
  • 列印0-10的數字不列印6
count=0
while count < 11:
    if count ==6:
        count+=1
        continue #
    print(count)
    count+=1

continue結束本次迴圈,並且回到while迴圈的條件處從新判斷

(2)、while+else(瞭解)

# count=0
# while count < 10:
#     print(count)
#     count+=1
# else:
#     print('哈哈哈哈')

count=0
while count < 10:
    if count ==5:
        count+=1
        continue
    print(count)
    count+=1
else:
    print('哈哈哈哈')

當while迴圈沒有被中斷(break)的時候,就會執行

(3)、死迴圈

'''在程式中,可千萬不能出現死迴圈'''
while True:
    print(100)
'''能用for迴圈實現的,都不要使用while迴圈'''

二、for迴圈

  • for迴圈也是迴圈結構的一種,但是和while不同的是,for迴圈並不會出現死迴圈,因此我們能夠使用for迴圈實現的功能儘量不使用while

image

# 1. 使用while迴圈列印以下列表中得資料
name_list = ['kevin', 'tony', 'jack', 'tom']
# i=0
# while i<4:
#     print(name_list[i])
#     i+=1

for name in name_list:
    print(name)
    
"""
	語法格式:
        for 變數 in 可迭代物件:  字串、列表、字典、元組
        	print(name)
"""

for i in 'helloworld':
    print(i)
PS:for後面的變數名命名的時候,如果沒有特殊的含義,我們一般使用i,j,k,v,item等等


'''重點'''
d = {'username':'kevin', 'age':18, 'hobby':'music'}
for i in d:
    print(i, d[i])

range關鍵字

  • range方法起一個把輸入的範圍內,所有的整數都放到一個列表中的作用,但是rnage方法顧頭不顧尾,最後的結尾不取
# 配合for迴圈使用
第一種玩法:
for i in range(10) # 一個引數, 列印數字列表,從0開始
	print(i)

第二種玩法:
for i in range(4, 18):  # 顧頭不顧尾
    print(i)

第三種玩法:
for i in range(2, 20, 3):# 起始數值,結束數值,間隔數值
    print(i)

# 擴充知識:
"""
推斷:https://movie.douban.com/top250?start=0&filter=    第一頁
	https://movie.douban.com/top250?start=25&filter=    第二頁
	https://movie.douban.com/top250?start=50&filter=    第三頁
	https://movie.douban.com/top250?start=75&filter=    第四頁
	https://movie.douban.com/top250?start=100&filter=   第五頁
	...
	
	https://movie.douban.com/top250?start=225&filter=   第十頁
"""

url = 'https://movie.douban.com/top250?start=%s&filter='
for i in range(0,250,25):
    print(url % i)
    
'''小補充:range在不同直譯器版本中是有區別的。'''

for+break

for i in range(10):
    if i == 3:
        break
    print(i)

for+continue

for i in range(10):
    if i == 3:
        continue
    print(i)

for+else

for i in range(10):
    if i == 3:
        break
    print(i)
else:
    print('哈哈哈哈')

for迴圈巢狀

for i in range(1,10):
	for j in range(1,i+1):
		print('%s*%s=%s' %(i,j,i*j),end=' ')
	print()

三、數字型別內建方法

(1)、整型(int)

# 進位制轉換
print(bin(10))  # 0b1010
print(oct(10))  # 0o12
print(hex(10))  # 0xa

# 0b代表二進位制  0o代表八進位制  0x代表十六進位制

print(int('0b1010', 2))
print(int('0o12', 8))
print(int('0xa', 16))

(2)、浮點型(float)

float方法可以把整型、特殊情況下的字串變成float型別:

a = 11
b = '11.1'
c = '11.1.1'
print(float(a))
print(float(b))
print(float(c))
# 這裡的話執行c的轉換的時候會直接報錯

image
注意:python對數字的運算其實並不敏感(精確),但是由於背後的大佬較多,我們可以使用模組進行精確計算

四、字串str內建方法

型別轉換(把其他型別轉換成自己的型別)
字串可以轉換所有型別的資料值,從結果看就是在兩邊加上引號
索引取值

information = 'hello python'
print(information[0])

切片操作

# 升級版本:切片取值
information = 'Hello World'
print(information[6:])  # 從6取到結尾
print(information[:6])  # 取到第六個就結束,第六個不取
print(information[:])  # 取所有的值
print(information[-1:])  # 從後往前取,從後往前取的時候
print(information[-5:-1])  # 用負的位置座標取值,需要小的在前大的在後
print(information[6:10])  # 從第六個開始,取到10,但是取不到10的位置,只能到九
print(information[6:10:2])  # 從第六個開始,取到10,但是取不到10的位置,並且兩個字元取一次
print(information[10:6:-1])  # 從第10個開始,取到6,但是取不到6的位置,是從後往前取

統計字串的長度(個數)
len:計算字串長度或個數

# 計算長度的len
information = 'hello world'
print(len(information))

strip方法:刪除首尾的內容
刪除字串首尾的空格,或是指定的字元。生活中主要使用在賬號密碼的輸入中,可以減少錯誤

# 刪除字串首尾的空格
# information = '  hello world  '
# print(information.strip())

lstrip和rstrip:刪除左側或右側字元的strip方法

# 左側:lstrip
information = '  hello world  '
print(len(information))
print(information.lstrip())
print(len(information.lstrip()))

# 右側:rstrip
information = '  hello world  '
print(information.rstrip())
print(len(information.rstrip()))

split方法:切塊
split:刪除指定的字元並從刪除的位置把字串變成列表中的一個個值

# split
information = 'hello world'
print(information.split(' '))
# 這裡我們可以看到根據中間的空格把字串分成了含有兩個值的列表,並且空格被刪掉了

format方法:格式化輸出
format方法擁有和%s相似的功能,但是更為強大,也更方便

format方法有四種表現形式,如下:

表現形式一

插入佔位的符號,輸入佔位符輸入的值,不能多不能少

# format玩法1:等價於佔位符
# res = 'my name is {} my age is {}'.format('jason', 123)
# print(res)
# format玩法2:索引取值並支援反覆使用
# res = 'my name is {0} my age is {1} {0} {0} {1}'.format('jason', 123)
# print(res)
# format玩法3:佔位符見名知意
# res = 'my name is {name1} my age is {age1} {name1} {age1} {name1} '.format(name1='jason', age1=123)
    # print(res)
    # format玩法4:推薦使用(******)
    name = input('username>>>:')
    age = input('age>>>:')
    res = f'my name is {name} my age is {age}'

相關文章