python02 循環與容器

一、if的條件判斷

1-1 if elif else

  • 判斷年齡屬于哪個年齡段

# 判斷學生
core = input('請輸入成績')
?
if int(core) >=90 :print('優秀')
elif int(core) >=70 and int(core) <90:print('中等')
elif int(core) >=60 and int(core) <70:print('及格')
else:print('不及格')?

時間段, 成績的劃分,星座判斷

1-2 if 嵌套

if 判斷條件1:if 判斷條件2:if 判斷條件3:else:第3個條件不成時執行else:第2個條件不成時執行
else:第1個條件不成時執行

可以控制判斷的執行順序,進行多次判斷

# if嵌套使用
name = input('請輸入用戶名:')
password = input('請輸入密碼:')
# 先判斷用戶名是否正確
if name == '張三':# 在判斷密碼是否正確if password=='123456':print('登錄成功')
?else:print('密碼不正確')
else:print('用戶名不正確')

二、While循環

保證Python程序根據要求能持續運行

可以使用循環語句的語法實現循環運行,可以執行循環條件,當不滿足條件后退出循環

  • 語法格式

    • 循環的代碼邏輯要在下一行開始,開頭空四格

    • 條件成立,循環中代碼邏輯會一直執行

while 數據判斷條件:編寫循環執行的業務邏輯修改退出條件數據
# while 一般用在需要程序持續運行時使用
a = 1
while a == 1:# 條件成立,會一直運行while內的代碼邏輯name = input('請輸入用戶名:')password = input('請輸入密碼:')# 先判斷用戶名是否正確if name == '張三':# 在判斷密碼是否正確if password == '123456':print('登錄成功')# 通過修改變量值,改變判斷條件不成立,此時就可以退出循環a = 2else:print('密碼不正確')else:print('用戶名不正確')
?
  • 控制循環輸入次數不能超過三次

a = 1
while a <= 3:# 條件成立,會一直運行while內的代碼邏輯name = input('請輸入用戶名:')password = input('請輸入密碼:')# 先判斷用戶名是否正確if name == '張三':# 在判斷密碼是否正確if password == '123456':print('登錄成功')# 通過修改變量值,改變判斷條件不成立,此時就可以退出循環a = 6else:print('密碼不正確')else:print('用戶名不正確')

三、For循環

while 主要控制數據處理的次數

for 遍歷獲取數據(容器形式的數據)中每個元素數據,字符串,列表,字典,元祖,集合,range方法

for循環的次數是有容器內的元素個數決定

  • 語法格式

for i(臨時變量,接收循環的元素數據) in 容器數據:對臨時變量中的數據進行操作
  • range的使用,可以根據指定數值生成范圍內的容器數據

    • range(10) 生成0-10范圍內的數據 起始從0開始

    • range(2,10) 生成的范圍是 2-10

    • 生成的范圍數據是左閉右開 [0,10) 0可以取到值,10取不到值

# for循環  [0,5)
for i in range(5):print(i)
?
for i in range(2,5): # [2,5)print(i)

四、Break和Continue

break 跳出循環或結束循環

continue 跳過當前這一次循環,執行下次循環

可以對循環的數據進行判斷,如果符合條件可以進行跳出循環或跳過循環

  • break退出for循環

for num in range(3): # [0,3)  0,1,2name = input('請輸入用戶名:')password = input('請輸入密碼:')# 先判斷用戶名是否正確if name == '張三':# 在判斷密碼是否正確if password == '123456':print('登錄成功')# 使用break關鍵,會結束循環,不再進行取值breakelse:print('密碼不正確')else:print('用戶名不正確')

  • 遍歷1-10數據,只對偶數數據輸出

for data in range(1,11):# 對data數據進行奇數判斷if data % 2 !=0:# 跳過continue# continue被執行,continue后面邏輯就不會被執行print(data)

五、容器類型介紹

容器就是存放數據的

python 中的容器數據有多種形式,每種形式有自己的存儲格式, 數據存儲特性不一樣

字符串 str 就是容器 存放一個一個字母 格式 : 單引號 '數據' ,雙引號 "數據" ,三個引號 """ 數據 """

列表 list 格式: [數據1,數據2,數據3.....]

元祖 tuple 格式: (數據1,數據2,數據3,)

集合 set 格式: {數據1,數據2,數據3,}

字典 dict 格式: {key1:value1,key2:value....}

數據存儲的特性

  • 有序和無序

    • 有序: 字符串,列表,元祖,字典

    • 無序: 集合

  • 數據重復性

    • 允許數據重復 字符串,列表,元祖,字典的value部分可以重復

    • 不允許重復 集合,字典的key值

  • 數據是否允許修改

    • 允許修改 列表,字典value數據可以修改,

    • 不允許修改 字符串 ,元祖

常用的字符串,列表和字典

六、字符串

字符串就是有一個一個字母構成,使用引號包裹數據

data_str1 = '數據'
data_str2 = "數據"
data_str3 = '''數據'''

6-1 下標取值

在有序的容器中,會對數據的順序進行編號,該編號就稱為數據下標。可以通過下標取出對應位置中的數據

下標編號是從0開始

數據:i t c a s t

下標:0 1 2 3 4 5

  • 字符串的下標取值

    • 一次取出一個下標對應的數據

# 有序容器的下標取值
data_str = 'itcast'
?
# 下標取一個值
print(data_str[2])
  • 切片

    • 指定下標范圍進行取值

    • [起始下標:結束下標] 下標的范圍是左閉右開的,結束下標的值取不到

# 有序容器的下標取值
data_str = 'itcast'
?
# 下標取一個值
print(data_str[2])
?
# 下標取多個值 使用切片  [起始下標:結束下標]  取值范圍也是左閉右開 結束下標的數據無法取到
print(data_str[1:4])
?
?
?
  • 間隔步長取值

# 有序容器的下標取值
data_str = 'itcast'
?
# 下標取一個值
print(data_str[2])
?
# 下標取多個值 使用切片  [起始下標:結束下標]  取值范圍也是左閉右開 結束下標的數據無法取到
print(data_str[1:4])
?
# 間隔取多個值  使用切片  [起始下標:結束下標:步長]
print(data_str[1:6:2]) # 起始從1開始  下一個值是 1+2=3 ? 1+2+2=5
  • 下標的其他操作

# 單個取值時超過下標值或報錯
print(data_str[6])

# 切片進行多個數據取值超出下標,不會報錯,將后面的數據全部取出
print(data_str[1:1000])
# 取值的下標可以是負數
print(data_str[-4:-2])

# 如果需要改變起始位置從右邊開始,則需要將步長設置為-1
# 可以實現字符串的反轉
print(data_str[-1:-7:-1])
# 需要獲取所有的的字符可以省略起始和結束下標
print(data_str[::-1])

6-2 for循環取值

依次從字符串中取出每一個字母,該過程叫做數據遍歷

# 遍歷字符串數據
data = 'itcast'
for i in data:print(i)

6-3 函數方法

  • find 找字符在字符串中位置,返回對應的首字母的下標,數據不存在返回-1

# 字符串的函數操作方法
# 查找字符在字符串中的下標位置
data = 'itcast'
# num接收查找到的下標 如果存在返回對應位置下標,不存在返回-1
num = data.find('w')
print(num)
  • index 找字符在字符串中位置,返回對應的首字母的下標,數據不存在報錯

num2 = data.index('w')
print(num2)
  • split 字符串的切割

    • 切割后的數據會放入列表中返回

data_str = 'python,hadoop,spark,flink'
# split的切割字符串
res = ?data_str.split(',')
print(res)
  • replace 字符串的替換,替換字符串中的數據

    • 除了可以替換數據,還可以清洗數據

data_str2 = '2024-10-11'
# 字符串替換
res2 = data_str2.replace('-','/')
print(res2)
?
?
data_str3 = '機器哦@我覺得#千庫網'
# 通過replace的替換去除特殊字符
res3 = data_str3.replace('@','').replace('#','')
print(res3)

七、列表

7-1 列表定義

語法格式

[數據1,數據2.....]

# 列表的定義及取值
# 在列表中可以定義指定多個數據內容,盡量保證數據類型一致
data_list = [1, 20, 33, 15, 18, 21]
data_list2 = ['spark', 'hadoop', 'flink', 'python']
data_list3 = [1, '張三', 20]

7-2 列表取值

可以通過下標和切片取值

for循環遍歷取值

# 列表的定義及取值
# 在列表中可以定義指定多個數據內容,盡量保證數據類型一致
data_list = [1, 20, 33, 15, 18, 21]
data_list2 = ['spark', 'hadoop', 'flink', 'python']
data_list3 = [1, '張三', 20]
?
# 列表也是有序容器,所以支持下標取值
# 單個取值
print(data_list[1])
print(data_list2[2])
?
# 切片取多個值
print(data_list[1:5])
?
# 步長間隔取值
print(data_list[1:5:2])
?
# 循環遍歷取值
for i in data_list3:print(i)
?
?
# 列表嵌套列表
data_list4 =[[1,2,3],['a','b','c']]
?
print(data_list4[1][0])

7-3 列表的增刪改查方法

增加
  • append

    • 常用來增加一個元素數據

  • extend

    • 將另一個列表的數據合并當前列表

  • insert

    • 指定下標位置增加數據

# 添加列表數據
data_book = [] ?# 定義一個空列表
# append添加數據,將數據添加到列表末尾
data_book.append('昆侖')
data_book.append('滄海')
data_book.append('五大賊王')
# 查看原始數據
print(data_book)
# insert 可以指定下標位置添加
data_book.insert(1, '青盲')
# 查看數據
print(data_book)
?
# extend將一個列表數據合并另一個列表中
data_book_new = ['大魔術師', '冒死記錄']
data_book.extend(data_book_new)
print(data_book)
?
# 使用運算符 + 將列表合并
data_book_new2 = ['死亡通知單', '暗黑者', '攝魂谷', '兇畫']
res = data_book + data_book_new2
print(res)
?
刪除
  • del 數據[下標] 刪除指定下標的數據

  • remove 刪除列中指定的數據

  • pop() 彈出列表中的數據,數據彈出后會從列表中刪除

    • 默認從最后一個數據彈出

  • clear() 清除所有列表中的數據,變成空列表

# 刪除列表中的數據
data_book = ['誅仙','斗破蒼穹','盜墓筆記','年少荒唐','極品家丁','壞蛋是怎么練成的']
?
# 通過指定下標刪除
del data_book[3]
print(data_book)
# 指定數據刪除
data_book.remove('極品家丁')
print(data_book)
# 彈出數據刪除  將末尾數據彈出 可以定義接收變量,接收彈出的數據
res = data_book.pop()
print(data_book)
# 清空列表數據
data_book.clear()
print(data_book)
修改
  • 指定下標對應的數據進行修改

    • 列表[下標] = 修改的值

  • 列表數據的反轉 修改順序

  • 排序

# 修改列表數據
data_book = ['紫川', '三重門', '從你的全世界路過', '夢里花落知多少']
?
# 通過下標修改數據
data_book[1] = '善惡的彼岸'
print(data_book)
?
# 列表反轉
data_book.reverse()
print(data_book)
?
# 列表排序
data_list = [1,7,2,4,3]
data_list.sort(reverse=False)
print(data_list)
data_list.sort(reverse=True)
print(data_list)
查詢
  • index 查詢數據在列表中的下標位置

  • count 查詢數據出現的次數

  • in 查找數據是否在列表中

    • not in 不在列表中

  • len 獲取列表的元素個數

# 查詢列表數據
data_book = ['道德的譜系','反基督','瞧,這個人','飛鳥集']
?
# index查詢數據
num = data_book.index('反基督')
print(num)
# num = data_book.index('aa')
# print(num)
?
# count  統計數據出現次數
num2 = data_book.count('飛鳥集')
print(num2)
?
# 查詢元素個數
num3 = len(data_book)
print(num3)
?
# 判斷元素是否在列表中
if '道德的譜系' in data_book:print('數據在列表中')# not in 是判斷不在列表中

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/15057.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/15057.shtml
英文地址,請注明出處:http://en.pswp.cn/web/15057.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

20240521在Ubuntu20.04下編譯RK3588的IPC方案的編譯環境問題makeinfo: not found

20240521在Ubuntu20.04下編譯RK3588的IPC方案的編譯環境問題makeinfo: not found 2024/5/21 20:52 viewproviewpro-ThinkBook-16-G5-IRH:~/RK3588_IPC_SDK$ sudo apt-get install texinfo viewproviewpro-ThinkBook-16-G5-IRH:~$ viewproviewpro-ThinkBook-16-G5-IRH:~$ md5su…

【Basic】Linux Labs

文章目錄 前言一、Linux Labs二、知識點ssh介紹ssh的主要功能SSH的工作原理SSH的常見用法 解題感悟 前言 由于我參加了網絡安全的比賽(被迫)… but我毛都不會&#xff0c;所以我只能臨時抱佛腳… 順便把學習的過程記錄下來&#xff0c;歡迎收看小白0基礎ctf踩坑分享 一、Linux…

【正點原子Linux連載】 第四十六章 M.2硬盤驅動實驗摘自【正點原子】ATK-DLRK3568嵌入式Linux驅動開發指南

1&#xff09;實驗平臺&#xff1a;正點原子ATK-DLRK3568開發板 2&#xff09;平臺購買地址&#xff1a;https://detail.tmall.com/item.htm?id731866264428 3&#xff09;全套實驗源碼手冊視頻下載地址&#xff1a; http://www.openedv.com/docs/boards/xiaoxitongban 第四十…

【selenium】自動化測試chrome webdriver驅動下載網址,V123版本以上

Hi&#xff0c;大家好&#xff0c;今天和大家分享下最新的selenium自動化測試&#xff0c;chrome瀏覽器驅動下載的最新地址 chrome webdriver下載網址&#xff0c;適用于瀏覽器版本V123以上

結構型模式 (Python版)

代理模式 from abc import ABC, abstractmethod# 買的行為&#xff08;抽象類&#xff09; class Buy(ABC):abstractmethoddef buy_ticket(self):pass# 男人&#xff08;具體類&#xff09; class Man(Buy):# 男人買票def buy_ticket(self):print("Man 買票成功&#xff…

【輸入示例100,999 輸出示例4】水仙花數

// “水仙花數”是指一個三位正整數&#xff0c;其各位上的數字的立方和等于該數本身。如:1^35^33^3153&#xff0c;因此153是一個水仙花數。輸入兩個三位正整數a和b(其中a<b)&#xff0c;求[a,b]范圍內水仙花數的個數。 //輸入示例100,999 //輸出示例4 #include <stdio.…

AI爆文寫作:如果你有一篇文章爆了,正確的做法是:自己抄襲自己,重復發,還可以繼續爆!

爆款總是相似的&#xff0c;如果你有一篇文章爆了&#xff0c;正確的做法&#xff0c;就是重復發&#xff0c;讓它繼續爆下去。 以前我在小紅書看到一個人&#xff0c;將一篇自己火的筆記&#xff0c;連續發了5次&#xff0c;每次點贊數據都不錯。 公眾號文章也是一樣的。 我…

Gin與OpenAPI(Swagger)的使用

一、背景 1、swagger與openapi Swagger&#xff1a; 一種用于描述RESTFUL API的規范&#xff0c;它提供了一種簡單的來描述API的請求和相應參數、錯誤碼、返回數據類型等信息&#xff0c;是開發者可以方便了解API使用方式。 官網: https://swagger.io/ OpenAPI : 始于 …

gazebo仿真不起飛——QGC地面站查看下是否參數正確

檢查方法&#xff1a;打開QGC地面站查看是否能夠切入定點模式&#xff0c;不能的話查看定位數據來源參數

uniapp(微信小程序)退出小程序方法

一、描述 場景是&#xff1a;當用戶不予授權的時候&#xff0c;不允許使用該小程序&#xff0c;在用戶點擊取消之后&#xff0c;應該關閉當前小程序&#xff0c;不讓他繼續使用。 二、代碼 uni.exitMiniProgram({success: function() {console.log(退出小程序成功);},fail: …

鴻蒙HarmonyOS實戰-Stage模型(信息傳遞載體Want)

&#x1f680;前言 應用中的信息傳遞是為了實現各種功能和交互。信息傳遞可以幫助用戶和應用之間進行有效的溝通和交流。通過信息傳遞&#xff0c;應用可以向用戶傳遞重要的消息、通知和提示&#xff0c;以提供及時的反饋和指導。同時&#xff0c;用戶也可以通過信息傳遞向應用…

FPGA 第4章 攝像頭Bayer轉rgb

參考文獻 彩色MT9V034攝像頭 Bayer轉rgb FPGA實現 https://www.cnblogs.com/hqz68/p/10413896.html 文章目錄 前言Bayer轉rgb算法解析 總結 前言 Bayer格式是相機內部的原始數據, 一般后綴名為.raw。 對于彩色圖像,一般是三原色數據&#xff0c;rgb格式。但是攝像頭一個像素…

【linux-IMX6ULL-LED字符驅動框架完善】

目錄 1.簡介&#xff12;.前置知識2.1 重要函數及結構體2.2 程序框架流程 3. 代碼詳解&#xff1a; 1.簡介 在上節&#xff0c;我對linux-IMX6ULL-字符設備驅動簡單框架實驗進行了說明和構建&#xff0c;但是也存在幾個問題&#xff1b; 需要手動指定設備號&#xff0c;不能自…

TCP 與 UDP

0. tcp 與 udp 的 異同特性 TCPUDPname傳輸控制協議用戶數據報協議面向連接&#xff1f; 需要 傳輸數據前建立連接傳輸完畢后斷開連接不需要可靠的傳輸數據&#xff1f; 可靠 有確認機制&#xff08;三次握手&#xff09; 有確認、窗口、重傳、擁塞控制的機制保證數據可靠傳輸…

itertools拼裝迭代器

itertools拼裝迭代器 連接多個迭代器 內置的itertools模塊有一些函數可以把多個迭代器連城一個使用。 chain chain可以把多個迭代器從頭到尾連成一個迭代器。 import itertoolsit itertools.chain([1, 2, 3], [4, 5, 6]) print(list(it))>>> [1, 2, 3, 4, 5, 6]…

操作視頻號小店,新手最關心的問題,一篇給你講解清楚!

大家好&#xff0c;我是電商小V 新手去做視頻號小店的時候&#xff0c;心里面一定是有很多疑問的&#xff0c;會反復咨詢一些最關心的問題&#xff0c;因為他們要做好準備&#xff0c;以防后續做店過程中出現問題&#xff0c;其實新手關心的問題就那幾個&#xff0c;咱們今天就…

C++貪心算法3

過河的最短時間 #include<bits/stdc.h> using namespace std; void f(int); int n; int main() {system("color 1");cin>>n;int a[10010];for(int i0;i<n;i){cin>>a[i];}sort(a0,an);int ta[1];int k1n-2;int k2n-1;while(true){int t1a[0]a[k…

springboot2+mybatis-plus+vue3創建入門小項目[學生管理系統]02[實戰篇]

創建一個 vue 項目 創建這個新的文件夾 創建前端項目 eggbox 數據庫 SQL CREATE DATABASE IF NOT EXISTS egg DEFAULT CHARACTER SET utf8 COLLATE utf8_bin; USE egg;CREATE TABLE stu (id INT AUTO_INCREMENT, -- 自增主鍵name VARCHAR(64) NOT NULL, -- 非空姓名字段&a…

前端傳參的三種方式

1、params 傳參 參數拼接在地址 url 的后面給后臺&#xff1b;地址欄中可見 案例1 地址欄&#xff1a;https://xxxxxxxx/admin/clues/detail?id558 接口代碼&#xff1a; export function getClueDetail(query: any) {return request<clueItem>({url: /clues/detai…

Java:圖書管理系統

目錄 一.book 1.在book包中的Book 類用來定義和引用書的名字&#xff0c;作者&#xff0c;價格&#xff0c;類型等。 2.在book包中的第二個類是BookList是用來構建書架&#xff0c;和書架上的初始書本&#xff0c; 二、ioperations 1.AddOperation (增加圖書) 2.BorrowOp…