wlile、 for迴圈和基本資料型別及內建方法
阿新 • • 發佈:2022-03-08
while + else
1.while與else連用 當while沒有被關鍵字break主動結束的情況下 正常結束迴圈體程式碼之後執行else的子程式碼 """ while 條件: 迴圈體程式碼 else: 迴圈體程式碼正常結束執行 才會執行子程式碼塊 """ count = 1 while count < 10: if count == 4: count += 1 continue print(count) count += 1 else: print('while迴圈壽終正寢了!!!')
死迴圈與while的巢狀
1.死迴圈有些時候會超級影響電腦效能 造成硬體的損壞 死迴圈就是會佔用cup工作 count = 10 while True: count *= 1 2.while巢狀 falg = while flag: username = input('username:') password = input('password:') if username == 'jason' and password == '123': print('登陸成功') while flag: cmd = input('請輸入你的指令:') if cmd =='q': print('下次再見') flag = False print('正在執行您的指令:%s' % cmd') else: print("使用者名稱或密碼錯誤")
for迴圈
""" for迴圈可以做到的事情while迴圈都可以做到!!! 但是for迴圈語法更加簡單 使用頻率更高 """ 一般情況下涉及到迴圈取值的時候 都會考慮使用for迴圈而不是while迴圈 """ 語法結構 for 變數名 in for迴圈物件: # 字串、列表、字典、元組、集合 for迴圈的迴圈體程式碼 每次執行都會將迴圈物件中的一個元素賦值給變數名 ps:針對for迴圈語法結構中的變數名 也應該做到見名知意 如果真的沒有合適的名字可以使用常用的變數名i、j、k、v、num、item... """ name_list = ['jason', 'kevin', 'tony', 'tank', 'oscar'] # # 使用while迴圈依次打印出列表中所有的元素 count = 0 while count < 5: print(name_list[count]) count += 1 # # 使用for迴圈依次打印出列表中所有的元素 for name in name_list: print(name)
# 迴圈字串:依次取出每一個字元
for i in 'hello world':
print(i)
# 迴圈字典(特殊):迴圈字典只能獲取到字典的key value無法直接獲取
userinfo_dict = {'username': "jason", 'age': 18, 'gender': 'male'}
for i in userinfo_dict:
print(i)
# 迴圈元組
for i in (11, 22, 33, 44, 55):
print(i)
# 迴圈集合:字典與集合內部的元素都是無序的
for i in {11, 22, 33, 44, 55, 66}:
print(i)
range方法在python2和python3中有所區分
在python2中range是直接產生一個列表 元素很多的情況下比較佔用空間
在python2中有一個xrange 其實就是python3裡面的range
在python3中range相當於哆啦A夢的口袋 不佔空間但是可以取出很多資料
在python3中就只有一個range了
# 迴圈列印0-100
# while迴圈
count = 0
while count < 101:
print(count)
count += 1
# for迴圈
for i in range(101): # 從0開始到100結束的資料集 顧頭不顧尾
print(i)
"""range其實一個迭代器(後面講) 用於產生一個數據集合 但是節省空間"""
# 用法1 括號內只寫一個數字 預設從0開始 顧頭不顧尾
for i in range(5):
print(i)
# 用法2 括號內寫兩個數字 自定義起始位置 顧頭不顧尾
for i in range(1, 5):
print(i)
# 用法3 括號內寫三個數字 第三個數字表示的是等差數列的差值 預設情況下是1
for i in range(1, 5, 2):
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=
可以自己找一個具有多頁資料的網址 研究url是否有規律
有一些網址分頁是用的url
有一個使用的是內部js指令碼(暫且忽略)
"""
# url_demo = 'https://movie.douban.com/top250?start=%s&filter='
for i in range(0, 250, 25):
real_url = url_demo % i
# 通過程式碼請求頁面獲取頁面資料
# 然後根據業務需求篩選出特定的內容
for迴圈補充
1.for+break
break結束本層for迴圈
2.for+continue
continue結束本次for迴圈 直接開始下一次
3.for+else
for迴圈正常結束之後執行else子程式碼
"""與while一致"""
# for迴圈的巢狀
如何檢視資料型別的內建方法
可以藉助於程式設計軟體的自動提示 採用句點符快速檢視
資料型別的內建方法
int整型
1.型別轉換
2.進位制數轉換
# 型別轉換
res = int('123') # 將int方法執行之後的結果賦值給變數res
print(res, type(res)) # int
"""int方法只能轉換純數字的字串"""
# 將十進位制轉換成其他機制
print(bin(100)) # 0b1100100 二進位制(0b開頭)
print(oct(100)) # 0o144 八進位制(0o開頭)
print(hex(100)) # 0x64 十六機制(0x開頭)
# 將其他機制轉換成十進位制
print(int('0b1100100', 2))
print(int('0o144', 8))
print(int('0x64', 16))
float浮點型
# 1.型別轉換
res = float('11.11')
print(res, type(res)) # 11.11
res = float('11')
print(res, type(res)) # 11.0
字串內建方法
1.型別轉換
str可以轉換所有基本資料型別
print(str(11), type(str(11)))
print(str(11.11), type(str(11.11)))
print(str([1, 2, 3, 4]), type(str([1, 2, 3, 4])))
print(str({'name': 'jason'}), type(str({'name': 'jason'})))
print(str((1, 2, 3, 4)), type(str((1, 2, 3, 4))))
print(str({1, 2, 3, 4}), type(str({1, 2, 3, 4})))
print(str(True), type(str(True)))
s1 = 'hello world'
# 1.索引取值
print(s1[0])
# 2.切片操作
print(s1[2:4]) # 顧頭不顧尾
# 3.步長
print(s1[2:9:1]) # 第三個引數是步長 預設是1 依次獲取
print(s1[2:9:2]) # 間隔一個取一個
# 索引取切片擴充套件
print(s1[-1]) # 獲取最好一個字元
print(s1[-1:-5:-1]) # dlro 第三個引數還可以控制索引的方向
print(s1[-5:-1]) # worl
# 4.統計字串中字元的個數
print(len(s1)) # 11
# 5.成員運算
print('ll' in s1)
# 6.移除字串首位指定的字元(使用頻率較高)
name = ' jason '
print(len(name))
res = name.strip() # 預設移除字串首尾的空格
print(res, len(res))
name1 = '$$$$jas$on$$$$'
print(name1.strip('$'))
username = input('username>>>>:').strip()
if username == 'jason':
print('我想去幹飯了!!!')
# 7.按照指定的字元切割字串
data = 'jason|123|DBJ'
print(data.split('|')) # ['jason', '123', 'DBJ']
name, pwd, hobby = data.split('|') # 解壓賦值
print(data.split('|', maxsplit=1)) # ['jason', '123|DBJ']
print(data.rsplit('|', maxsplit=1)) # ['jason|123', 'DBJ']
"""split方法切割完字串之後是一個列表"""