從零開始的python學習生活

pycharm部分好用快捷鍵

在這里插入圖片描述

變量名的定義

與之前學習過的語言有所不同的是,python中變量名的定義更加的簡潔
such as
整形。浮點型和字符串的定義

money=50
haha=13.14
gaga="hello"

字符串的定義依然是需要加上引號,也不需要寫;了

字符串拼接

在print輸出時使用“,”進行連接
在這里插入圖片描述
在這里插入圖片描述

type的使用方式

可以查看數據類型
在這里插入圖片描述
也可以三方中轉
在這里插入圖片描述

數據類型轉換

在這里插入圖片描述
在這里插入圖片描述
轉換成字符串可能比較方便,但是float轉換成int可能會損失精度

標識符命名規則

在這里插入圖片描述
真好可以用中文 😄
其他沒啥要注意的,和其他語言一樣

基本運算符

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

在這里插入圖片描述
ps:從來沒見過這么省事的編輯器,他居然會猜你想寫什么就給你寫好。它真的我哭死

字符串的多種定義方式

在這里插入圖片描述
感覺python有一種獨特的瘋感,freedom!

字符串拼接


在這里插入圖片描述
ps字符串之間才可以拼接
在這里插入圖片描述
數字的話需要定義的時候是字符串類型

字符串格式化

name="黑馬程序員"
message="I am %s" % name
print(message)

這里必須是%和s,表示字符串站位
假如有很多個字符串的話
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

name="雪distance"
where="煙臺"
age=21
xiaoshu=13.14
print("我的名字是%s,我家住在%s,我的年齡是%d,我將會愛你%f"%(name,where,age,xiaoshu))

在這里插入圖片描述

數字精度設置

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
不夠的會在前面補上空格,小數就可以約束后面的位數

快速字符串格式化

print(f"我的名字是{name},我家住在{where},我的年齡是{age},我將會愛你{xiaoshu}")

在這里插入圖片描述
在這里插入圖片描述
課后練習

在這里插入圖片描述

name="傳智播客"
stock_code="003032"
stock_price=19.99
yinzi=1.2
growth=7
finalprice=stock_price*yinzi**growth
print(f"公司{name},股票代碼{stock_code},當前股價{stock_price}")
print("每日增長系數是:%.1f,經過%d天增長后,股價達到了:%.2f"%(yinzi,growth,finalprice))

在這里插入圖片描述
上面的修改一下股票價格不需要加上引號
這里一個很智障的問題,沒搞明白數學公式咋寫

input的用法

print("告訴我你是誰")
name=input()
age=input()
print(f"{name}")
print("我知道了你是%s,年齡是%s" % (name,age))

在這里插入圖片描述
input接受的是字符串形式的數據,故上面是%s,嘗試了一下%d會報錯
所以需要強制類型轉換

name=input("please tell me who are you")
name=int(name)
print(type(name))

在這里插入圖片描述
在這里插入圖片描述
小練習
在這里插入圖片描述

user_name = input()
user_type=input()
print("您好:%s,您是尊貴的:%s用戶,歡迎您光臨。" % (user_name, user_type))

在這里插入圖片描述

真假判斷

bool_1=True
bool_2=False
print(f"bool_1的內容是{bool_1},類型是{type(bool_1)}")num1=10
num2=20
print(f"the final is {num1>=num2}")

在這里插入圖片描述
需要注意的是,這里的True和False必須首字母大寫

if判斷語句

age=30
if age<=18:print("you are a kid")

python中沒有大括號的限制了,所以主要就是看前面縮進,別忘了加冒號
小練習
在這里插入圖片描述

print("歡迎來到黑馬兒童游樂場,兒童免費,成人收費")
age=input("請輸入你的年齡")
age=int(age)
if age >= 18:print("您已成年,游玩需要補票10元。")
print("祝您游玩愉快")

在這里插入圖片描述

if-else語句

在這里插入圖片描述
if和else都需要加:

print("歡迎來到黑馬兒童游樂場,兒童免費,成人收費")
age=int(input("請輸入您的年齡"))
if age >= 18:print("您已成年,游玩需要補票10元。")
else:print("未成年!免費!")
print("祝您游玩愉快")

在這里插入圖片描述
小練習
在這里插入圖片描述

print("歡迎來到黑馬動物園")
age=int(input("請輸入您的身高(cm)"))
if age >= 120:print("您的身高超出120cm,游玩需要補票10元。")
else:print("免費游玩!")
print("祝您游玩愉快。")

在這里插入圖片描述

if-else多條件判斷

elseif寫成elif了非常擺爛
if-elif-else
在這里插入圖片描述
在這里插入圖片描述
小練習
在這里插入圖片描述

num=4
num1=int(input("請輸入第一次猜想的數字"))
if num1==num:print("猜對啦")
elif int(input("猜錯了在猜一次"))==num:print("猜對啦")
elif int(input("猜錯了,在猜最后一次"))==num:print("猜對了")
else:print("Sorry,猜錯了,我猜想的數字是%d" % num)

在這里插入圖片描述
ps猜數字小游戲

# 猜數字小游戲
num=4
while True:num1 = int(input("請輸入一個數字"))if num1==num:print("你猜對啦")breakelif num1>num:print("你猜的數偏大了")else:print("你猜的數偏小了")

在這里插入圖片描述

嵌套判斷語句

if int(input("你的身高是多少cm"))>120:print("不免費")print("但是VIP等級大于3,可以免費,請輸入VIP等級")if int(input("你的VIP級別是多少"))>3:print("免費!")else:print("不免費啦")
else:print("歡迎小朋友游玩")

在這里插入圖片描述
這種只要題干里面描述清楚一般沒得問題

little練習
在這里插入圖片描述

age=int(input("Enter your age:"))
time=int(input("Enter your enter time:"))
level=int(input("Enter your enter level:"))
if age>=18 and age<30:if time>2 or level>3:print("可以領取嗷")else:print("不能領取嗷")
else:print("不能領取嗷")

在這里插入圖片描述
到是也能實現,但是和老師希望的可能不太一樣(老師希望可能一步一判斷),順便python的并且和或者竟然改成and和or了真好哇!

老師寫的代碼:

age=int(input("Enter your age:"))
time=int(input("Enter your enter time:"))
level=int(input("Enter your enter level:"))
if age>=18:print("你是成年人")if age<30:print("你的年齡達標")if time>2:print("你的入職時間達標")elif level>3:print("你的級別達標")else:print("入職時間或者級別不達標不能領取")else:print("你的年齡太大了嗷,不能領取")
else:print("未成年,不能領取嗷")

每一個if記得對應一個else

實戰訓練

在這里插入圖片描述
代碼如下所示

import random
num=random.randint(1,10)
num1=int(input("請輸入數字"))
if num1==num:print("bingo")
elif num1>num:print("too big")num1=int(input("請第二次輸入數字"))if num1>num:print("too big")num1=int(input("請第三次輸入數字"))if num1>num:print("too big the num is %d"%num)elif num1<num:print("too small the num is %d"%num)else:print("bingo")elif num1<num:print("too small")num1 = int(input("請第三次輸入數字"))if num1 > num:print("too big the num is %d"%num)elif num1 < num:print("too small the num is %d"%num)else:print("bingo")else:print("bingo")
else:print("too small")num1 = int(input("請第二次輸入數字"))if num1 > num:print("too big")num1 = int(input("請第三次輸入數字"))if num1 > num:print("too big the num is %d"%num)elif num1 < num:print("too small the num is %d"%num)else:print("bingo")elif num1 < num:print("too small")num1 = int(input("請第三次輸入數字"))if num1 > num:print("too big the num is %d"%num)elif num1 < num:print("too small the num is %d"%num)else:print("bingo")else:print("bingo")

感覺是非常費勁的計算方式,假如使用上面的while循環或者for循環會比較簡單,這個就用來鍛煉邏輯
ps:三次猜數太難猜了,私心偷偷加了最后一次再猜不中就把數告訴我就完了,玩不過人工智能
在這里插入圖片描述

while循環

假如表白100次就能成功!

n=10
while n>0:print("小美,我喜歡你")n-=1

怕給我電腦燒了,表白10次意思意思吧
在這里插入圖片描述
little作業
在這里插入圖片描述

n=1
sum1=0
while n<=100:sum1+=nn+=1# print(n)# print(sum1)
print(sum1)

在這里插入圖片描述
這里出現101不重要,重要的是n=1和n=100之間就是100個數,假如從0開始,那么就要<100了

while循環猜數案例

帶生成隨機數版循環猜數案例

import random
num=random.randint(1,100)while True:num1=int(input("請輸入數字"))if num1==num:print("you are right")breakelif num1>num:print("too big")else:print("too small")

在這里插入圖片描述
哈哈,也是猜了好多遍
老師沒有用break,使用的是修改flag,順便還記錄了一下你猜了多少次

import random
num=random.randint(1,100)
count=0
flag=True
while flag:count+=1num1=int(input("請輸入數字"))if num1==num:print("you are right")flag=Falseelif num1>num:print("too big")else:print("too small")
print(f"你一共猜了{count}次")

在這里插入圖片描述

while嵌套循環

在這里插入圖片描述

讓print語句輸出不換行

在這里插入圖片描述
在這里插入圖片描述

制表符\t

在這里插入圖片描述
這個對于中文可能有點問題,用英文是沒有問題的

print("hello\tworld")
print("你好\tlihua")
print("itheima\tbest")

在這里插入圖片描述
小練習
在這里插入圖片描述

n=1
while n<=9:m=1while m<=n:print(f"{m}*{n}={m*n}\t",end='')m+=1n+=1print()

在這里插入圖片描述

for循環

在這里插入圖片描述

利用for循環遍歷字符串

name="hhagegege"
for x in name:print(x,end='')

在這里插入圖片描述
在這里插入圖片描述
小練習
在這里插入圖片描述

count=0
for x in "itheima is a brand of itcast":if x=="a":count+=1
print(f"這個字符串里面一共有{count}個a")

在這里插入圖片描述
暫時沒有區分大小寫

count=0
for x in "itheima is a brand of itcastAAA":if x=="a" or x=="A":count+=1
print(f"這個字符串里面一共有{count}個a")

在這里插入圖片描述
這是區分大小寫的

for循環range語句

在這里插入圖片描述
range里面一個數:到這個數有多少個
在這里插入圖片描述
range兩個數:這兩個數字之前的所有數,不包含右端,包含左端
range三個數:左端,右端-1,加步長
上面三種語法代碼:

# 語法一
for x in range(10):print(x,end='')
print()
# 語法二
for x in range(1,10):print(x,end='')
print()
# 語法三
for x in range(1,10,2):print(x,end='')
print()

在這里插入圖片描述
這種就是類似其他語言的for循環,也是實現執行幾遍的功能
在這里插入圖片描述
small練習
在這里插入圖片描述

num=int(input("Enter a number:"))
count=0
for x in range(1,num):if x%2==0:count+=1
print(f"1到{num}(不含100本身)有{count}個偶數")

在這里插入圖片描述

for循環變量作用域

也就是我們之前學習的局部變量和全局變量

for i in range(5):print(i)
print(i)

在這里插入圖片描述
這里實際上pycharm沒有和你計較,最好還是用比較規范的版本,進行全局定義
在這里插入圖片描述

for循環的嵌套使用

在這里插入圖片描述
想小美表白案例,一共一百天,每天10朵玫瑰

for i in range(1,101):print(f"the {i} day")for j in range(1,11):print(f"this is the {j} flower")print("xiaomei I love you")
print(f"the {i} day I succeed!")

在這里插入圖片描述
在這里插入圖片描述
我們之前使用while循環時,我們最后第幾天是i先++了,然后while判斷不執行,我們在輸出時還需要i-1現在for循環則是不管右端點的101,因此我們此時不需要進行i–的操作

練習for循環打印九九乘法表

在這里插入圖片描述

for i in range(1,10):j=1for j in range(1,i+1):print(f"{j}*{i}={i*j}  ",end='')j=j+1print("\t")

在這里插入圖片描述
下面老師寫的

for i in range(1,10):j=1for j in range(1,i+1):print(f"{j}*{i}={i*j}\t",end='')j=j+1print()

在這里插入圖片描述
可以看出在間斷方面做得更加完美

continue和break的使用

在這里插入圖片描述
continue:暫時跳過這一次(程序讀到continue就結束本次循環,直接到下一次)
break:結束循環,整個循環都結束
在這里插入圖片描述
永遠不會執行語句2

在這里插入圖片描述
永遠不會執行語句3,但是其他的都會被執行,這里注意一下語句4跟的誰
在這里插入圖片描述
假如上面這個沒有break

for i in range(1,10):print("1")for j in range(1,10):print("2",end='')# breakprint("3",end='')print("4")

在這里插入圖片描述
是這樣

循環綜合案例

在這里插入圖片描述

import random
num=random.randint(1,100)
money=10000
for i in range(1,21):level=random.randint(1,10)if level>=5:if money>=1000:money=money-1000print(f"向員工{i}發放工資1000元,賬戶余額還剩{money}")else:print("工資發完了,下個月領取把")breakelse:print(f"員工{i},績效分{level},不發工資,下一位")

在這里插入圖片描述
continue和break還是非常重要的

函數

在這里插入圖片描述
提前寫好方便直接使用
在這里插入圖片描述

str1="hahsdwibcwidb"
str2="hfbiurwb"
str3="cnefbvu"def mylen(str):count = 0for i in str:count += 1print(f"字符串的長度是{count}")length1=mylen(str1)
length2=mylen(str2)
length3=mylen(str3)

eg:統計字符串長度的函數,實際上python已經提供了一個方法len()方法,也可直接調用
在這里插入圖片描述

函數定義

在這里插入圖片描述
簡單小函數

def sayhi():print("hi")
sayhi()

在這里插入圖片描述

在這里插入圖片描述
在這里插入圖片描述
非常的人性!
我們調用要嚴格的遵循,調用在定義后面
小練習
在這里插入圖片描述

def welcome():print("歡迎來到黑馬程序員")print("請出示您的72小時核酸檢測證明")
welcome()

在這里插入圖片描述
老師寫的,差點忘記我們的老朋友\n

def welcome():print("歡迎來到黑馬程序員\n請出示您的72小時核酸檢測證明")# print("")
welcome()

函數的傳入參數

一個加法小函數

def add(a,b):result=a+bprint(f"{a}{b}相加的結果是{result}")
add(1,2)

在這里插入圖片描述
在這里插入圖片描述

函數的傳入參數案例

在這里插入圖片描述

def check(tem):if tem<=37.5:print(f"balabala……您是{tem}體溫正常,請進!")else:print(f"balabala……您是{tem}體溫異常,隔離去吧")check(36)
check(40)

在這里插入圖片描述

函數返回值

在這里插入圖片描述
我們假如使用return進行傳遞返回值的時候,需要拿一個變量來接
在這里插入圖片描述

def add(a,b):return a+b
result=add(1,2)
print(result)

在這里插入圖片描述
在這里插入圖片描述
有返回值,只不過這里的返回值是None

def sayhi():print("hi")result=sayhi()
print(type(result))

在這里插入圖片描述
在這里插入圖片描述

def check(age):if age > 18:return "success"else:return None
result = check(18)
if not result:print("未成年禁止進入")

None=False
這里修改為True和False也是可以的,因為這樣返回類型就不為空了,就是返回的布爾類型

函數的說明文檔

在這里插入圖片描述
主要就是在函數體前面記得備注,詳細一點,讓自己和他人都能看懂
在這里插入圖片描述
在這里插入圖片描述

函數的嵌套調用

在這里插入圖片描述

def funb():print("funb")
def funa():print("funa")funb()print("func")
funa()

在這里插入圖片描述
這個也是調用的函數需要提前定義完畢
在這里插入圖片描述

變量在函數中的作用域

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
出了函數體在外面沒法用
全局變量在函數內外都是可以使用的
正常在函數里面修改全局變量的值是沒門的,但是在函數里面print一下能發現被修改了
引入global
在這里插入圖片描述
在函數里面定義一下就是全局變量了

函數綜合案例

在這里插入圖片描述
自個寫的感覺挺全面的

money=5000000
name=input("Enter your name: ")
def check():print("----------查詢余額-------------")print(f"{name},你好,您的余額剩余{money}")
def cunkuan():print("----------存款-------------")money1=int(input("請輸入您要存多少錢"))print(f"{name},你好,您的余額剩余{money+money1}")
def qukuan():print("----------取款-------------")money1 = int(input("請輸入您要取多少錢"))print(f"{name},你好,您的余額剩余{money - money1}")while(True):print("-----------主菜單--------------")print(f"{name},hello,welcome,please choose")print("查詢余額\t[輸入1]\t")print("存款\t[輸入2]\t")print("取款\t[輸入3]\t")print("退出\t[輸入4]\t")choose=int(input("請輸入您的選擇"))if choose==1:check()elif choose==2:cunkuan()elif choose==3:qukuan()else:print("您已成功退出")break

在這里插入圖片描述
在這里插入圖片描述
唯一注意一下,這里的處理,對齊展示,一個不行那就多加幾個
ps老師原視頻指路,想看老師寫的代碼可以看
視頻鏈接P61

數據容器

在這里插入圖片描述
但是猜測都是一個數據元素都是同類的里面
在這里插入圖片描述

列表的定義

在這里插入圖片描述
在這里插入圖片描述
列表中可以存儲不同的數據類型
之前好像寫錯了,寫成只能一種類型了

name_list=['itheima','itcast','python']
print(name_list)
print(type(name_list))

在這里插入圖片描述
假如里面放的不是一種數據類型,那么type依然是list類型
在這里插入圖片描述

列表的下標索引

在這里插入圖片描述
在這里插入圖片描述
python支持正負進行取元素(雖然暫時不知道有啥用,但是很高級)
正向舉例

name_list=['tom','Lily','sam']
print(name_list[0])
print(name_list[1])
print(name_list[2])

在這里插入圖片描述
負向舉例

name_list=['tom','Lily','sam']
print(name_list[-1])
print(name_list[-2])
print(name_list[-3])

在這里插入圖片描述
在這里插入圖片描述

嵌套索引同樣可以用下標
用二維數字數組表示,第一個內列表里面第一個個就是按照順序進行表示

name_list=[[9,8,6],[1,2,3]]
print(name_list[0][0])
print(name_list[0][2])
print(name_list[1][1])

唯一就是別忘了內部列表之間記得加,
還有下標是從0開始的,數對下標
在這里插入圖片描述

列表的常用操作方法

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
也就是某個類給我們提供了一堆函數(方法)
在這里插入圖片描述

name_list=["itcast","itheima","python"]
index=name_list.index("itheima")
print(f"itheima在列表中的下標索引是{index}")

在這里插入圖片描述
輸入列表中的元素,查找元素在列表的那個位置

name_list=["itcast","itheima","python"]
name_list[0]="afteritcast"
print(name_list)

在這里插入圖片描述
可以看到元素被修改成功了
在這里插入圖片描述

name_list=[1,2,3]
name_list.insert(1,"insert")
print(name_list)

在這里插入圖片描述
輸入的是什么數字,到最后就會插入到對應位置
在這里插入圖片描述

name_list=[1,2,3]
name_list.append("insert")
print(name_list)

在這里插入圖片描述
聽著,所謂追加元素,那肯定是在末尾(致敬殺手)
在這里插入圖片描述
追加好多元素:extend

name_list=[1,2,3]
name_list.extend([4,5,6])
print(name_list)

在這里插入圖片描述
追加的格式也是列表

name_list=[1,2,3]
name_list2=[4,5,6,7]
name_list.extend(name_list2)
print(name_list)

在這里插入圖片描述
合并字符串變的輕輕松松
在這里插入圖片描述
刪除第一種方法:del 列表【下標】

name_list=["itcast","itheima","python"]
del name_list[0]
print(f"列表刪除元素后,列表是{name_list}")

在這里插入圖片描述
刪除第二種方法:列表.pop(下標)

name_list=["itcast","itheima","python"]
# del name_list[0]
element=name_list.pop(1)
print(f"列表刪除元素后,列表是{name_list},取出的元素是{element}")

在這里插入圖片描述
瞎聯想一下,這個很想彈出棧內元素
del僅僅能完成刪除,但pop不僅可以刪除,還可以拿到這個元素
在這里插入圖片描述

name_list=[1,2,3,4,4,6,2,7]
# del name_list[0]
name_list.remove(2)
print(f"列表刪除元素后,列表是{name_list}")

刪除第一個匹配的(希望趕快出一個全部匹配刪掉的,代碼題里面很常見)
在這里插入圖片描述
列表全部清空

name_list=[1,2,3,4,4,6,2,7]
name_list.clear()
print(f"列表刪除元素后,列表是{name_list}")

在這里插入圖片描述
統計某元素在列表內的數量
在這里插入圖片描述

name_list=[1,2,3,4,4,6,2,7]
count=name_list.count(2)
print(f"列表2元素出現的次數為{count}")

在這里插入圖片描述

列表增刪改查巴拉巴拉方法的總結(非常好)

查找某元素的下標
語法:列表.index(元素)
列表的插入元素
語法:列表.insert(下標,元素)
列表的追加元素
語法:列表.append(元素)
列表的大量追加元素
語法:列表.extend(其他列表)
列表的刪除元素
語法1del 列表【下標】
語法2:列表.pop(下標)
列表刪除某元素在列表中的第一個匹配項
語法:列表.remove(元素)
清空整個列表
語法:列表.clear()
統計某元素在列表內的數量
語法:列表.count(元素)

在這里插入圖片描述

列表課后練習

在這里插入圖片描述

# 定義
student=[21,25,21,23,22,20]
# 追加31
student.append(31)
print(f"追加完數字31之后的列表{student}")
# 追加新列表
student.extend([29,33,30])
print(f"追加完新列表之后的列表{student}")
# 取出第一個元素
num=student.pop(0)
print(f"取出的第一個元素是{num}")
# 取出最后一個元素
num1=student.pop(-1)
print(f"取出的最后一個元素是{num1}")
# 查找元素
index=student.index(31)
print(f"元素下標是{index+1}列表是{student}")

在這里插入圖片描述
通過這個例題我知道取負數下標有啥用了,假裝當我們不知道一共有幾個元素的時候,我們需要取元素,就可以直接取-1,就是最后一個元素

列表循環遍歷

在這里插入圖片描述
在這里插入圖片描述

student=["haha","gaga","QAQQAQ"]
len=len(student)
index=0
while index<len:element=student[index]print(f"取出來的元素是{element}")index+=1

在這里插入圖片描述
在這里插入圖片描述

student=["haha","gaga","QAQQAQ"]
for i in student:print(f"每次取出來的元素是{i}")

在這里插入圖片描述
在這里插入圖片描述
小練習
在這里插入圖片描述
使用while循環

list=[1,2,3,4,5,6,7,8,9,10]
list1=[]
# 使用while循環
num=0
while num<len(list):if list[num]%2==0:list1.append(list.pop(num))num+=1
print(f"通過while循環,從列表取出偶數,組成的新列表{list1}")

在這里插入圖片描述
使用for循環(偷偷給改成奇數了,反正偶數已經打印了一遍了)

list=[1,2,3,4,5,6,7,8,9,10]
list1=[]
# 使用for循環
num=0
for num in list:if num%2!=0:list1.append(num)num+=1
print(f"通過for循環,從列表中取出奇數,組成新列表{list1}")

在這里插入圖片描述
while循環里面num類似于下標,但是for里面的num就類似于列表中的內容了

元組的定義和相關操作

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
元組相當于一個只讀的列表
在這里插入圖片描述
在這里插入圖片描述
元組的操作:比較全

# 定義元組
t1=(1,"hello",True)
print(f"t1的類型是{type(t1)},內容是{t1}")# 定義單個元素的元組
t2=("hello")
print(f"t1的類型是{type(t2)},內容是{t2}")
# 元組后面假如只有一個數據,數據后面要添加,不然就不是元組類型了,就是元素的類型了# 元組的嵌套
t3=((1,2,3),(4,5,6))
print(f"t1的類型是{type(t3)},內容是{t3}")# 下標索引取出內容,假設要取t3里面的5元素
num=t3[1][1]
print(f"取出的元素是{num}")# 元組的操作:index查找方法
t4=("haha","gaga","QAQQAQ")
index=t4.index("haha")
print(f"haha在元組里面的下標是{index}")# 元組的操作:count統計方法
t5=("haha","haha","haha","gaga","QAQQAQ")
count=t5.count("haha")
print(f"haha在元組里面出現的次數是{count}")# 元組的操作:len函數統計元組元素數量
length=len(t5)
print(f"t5元組的長度是{length}")# 元組的while遍歷,這里就是遍歷t5元組
num=0
while num<length:print(t5[num],end='')num+=1
print("")
# 元組的for遍歷
for element in t5:print(element,end='')

在這里插入圖片描述
在這里插入圖片描述
元組里面的元素不能修改
but元組里面的列表可以修改

t9=(1,2,["haha","gaga","QAQQAQ"])
print(t9)
t9[2][0]="hahaha"
t9[2][1]="gagaga"
print(t9)

在這里插入圖片描述
現在不知道為什么這么設定,功能有點雞肋,但是它這么做一定有他的道理!

小練習
在這里插入圖片描述

Jay=('周杰倫',11,['football','music'])
# 查詢年齡在的下標
index=Jay.index(11)
print(f"年齡所在的下標是{index}")
# 查詢學生姓名
str=Jay[0]
print(f"學生姓名是{str}")
# 刪除學生愛好中的football
Jay[2].remove("football")
print(f"刪除愛好之后元組是{Jay}")
# 增加愛好:coding(每日催眠,我愛編程我愛編程)
Jay[2].append("coding")
print(f"添加愛好之后元組是{Jay}")

在這里插入圖片描述

字符串的定義和操作

在這里插入圖片描述
這里的字符串就類似于我們之前學習過的列表和元組了,就是存放大量字符的地方
字符串也是一個不可以修改的數據容器
在這里插入圖片描述
在這里插入圖片描述
類似查找替換
在這里插入圖片描述
分割字符串,到不同的列表中,也就是進行切分
在這里插入圖片描述
簡潔來說就是掐頭去尾,去掉前后沒有意義的東西
在這里插入圖片描述
這個不知道是我使用有問題還是咋的,很雞肋
空格就只能去兩頭空格
數字去完了之后假如有空格還是有

字符串操作匯總

str="haha and gaga or QAQQAQ"
# 通過下標取索引
value=str[1]
value1=str[-5]
print(value)
print(value1)
# 假如我們要修改字符串里面的數據,就只能新增一個字符串# index方法
value=str.index("and")
print(f"在字符串中and的起始下標是{value}")# replace方法,老的字符串并不會修改,需要一個新的字符串取接它
str1=str.replace("haha","哈哈")
print(f"替換完的新字符串是{str1}")# split方法
str2=str.split("a")
print(f"切割完的新字符串是{str2}")
str3=str.split(" ")
print(f"切割完的新字符串是{str3}")# strip方法
str3="12  haha and gaga or QAQQAQ  12"
print(str3.strip())
print(str3.strip("12"))# 統計字符串中某字符串的出現次數,count
count=str.count("ga")
print(f"ga這個字符串出現的次數是{count}")# 統計字符串的長度,len()
length= len(str)
print(f"str字符串的長度是{length}")

在這里插入圖片描述
while循環和for循環

str="花花,你是一只小豬"
# while字符串循環
index=0
while index<len(str):print(str[index])index+=1
print("")
# for字符串循環
for i in str:print(i)

在這里插入圖片描述
在這里插入圖片描述

字符串練習

在這里插入圖片描述

str="itheima itcast boxuegu"
# 統計一共有多少個“it”字符
count=str.count("it")
print(f"一共有{count}個“it”字符")
# 將字符串空格換成|
str1=str.replace(" ","|")
print(f"換完之后是{str1}")
# 按照|進行字符串分割,得到列表
str2=str1.split("|")
print(f"分割完之后是{str2}")

在這里插入圖片描述

數據容器(序列)的切片

在這里插入圖片描述
步長2,中間隔一個
步長3,中間隔兩個
序列切片也是不會影響序列本身,而是整個新的序列

# 對list進行切片,從1開始,4結束,步長1
list=[1,2,3,4,5,6,7,8,9,10]
# 開始,結束,步長(步長可以省略不寫list[1:4])
result=list[1:4:1]
print(f"結果是{result}")# 對tuple進行切片,從頭開始,到最后結束,步長1
tuple=(1,2,3,4,5,6,7,8,9,10)
# 可以這么表示,是開頭和結尾的話,步長還是1就都可以省略了
result1=tuple[0:len(tuple):1]
# 省略之后是這樣
# result1=tuple[:]
print(f"結果是{result1}")# 對str進行切片,從頭開始,到最后結束,步長2
str="12345678910"
result2=str[::2]
print(f"結果是{result2}")# 對str進行切片,從頭開始,到最后結束,步長-1
str1="12345"
result3=str1[::-1]
print(f"結果是{result3}")# 對列表進行切片,從3開始,到1結束(不包含它本身),步長-1
list1=[1,2,3,4,5,6,7]
result4=list1[3:1:-1]
print(f"結果是{result4}")# 對元組進行切片,從頭開始,到尾結束,步長-2
tuple1=(1,2,3,4,5,6,7)
result5=tuple1[::-2]
print(f"結果是{result5}")

元組,字符串,列表都是可以劃分的都是
【開始:結束:步長】需要一個東西來接輸出結果
在這里插入圖片描述
在這里插入圖片描述

# 這一步主要是得到這個倒序的序列,我不想自己敲
str="學Python,來黑馬程序員,月薪過萬"
str1=str[::-1]
# 得到正序序列
str2=str1[::-1]
str3=str2.split(",")
str4=str3[1]
str5=str4.replace("來"," ")
str6=str5.strip(" ")
print(str6)

寫的有點麻煩感覺
在這里插入圖片描述
老師寫的:

# 這一步主要是得到這個倒序的序列,我不想自己敲
str="學Python,來黑馬程序員,月薪過萬"
str1=str[::-1]
# 倒序字符串,然后切片
str2=str1[::-1][9:14]
print(str2)
# 切片,然后倒序
str3=str1[5:10][::-1]
print(str3)
# split分割,replace替換來為空,倒序字符串
str4=str1.split(",")[1][::-1].replace("來","")
print(str4)

被python一長串爽到了
不用加中間變量
在這里插入圖片描述

集合的定義和操作

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
集合里面沒有重復元素,并且也是無序的
在這里插入圖片描述

集合的操作

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

set1={"haha","gaga","QAQQAQ",}
my_set=set()
# 添加新元素
set1.add("huhu")
print(f"set添加元素之后結果是{set1}")
# 移除元素
set1.remove("haha")
print(f"set移除元素之后結果是{set1}")
# 隨機取出一個元素
element=set1.pop()
print(f"set隨機取出的元素是{element},還剩下集合{set1}")
# 清空集合
set1.clear()
print(f"set清空元素之后結果是{set1}")
# 取2個集合的差集
set2={1,2,3}
set3={2,3,4,5}
set4=set2.difference(set3)
print(set4)
# 消除2個集合的差集
set2.difference_update(set3)
print(set2)
# 2個集合合并為一個
set1={1,2,3}
set2={1,5,6}
set3=set1.union(set2)
print(set3)
# 統計集合元素數量len()
set1={1,2,3,4,5}
print(f"元素數量有{len(set1)}")
# 集合的遍歷(不能用while循環,不支持下標索引)
for element in set1:print(f"元素有{element}")

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

集合課后練習

在這里插入圖片描述

my_list=['黑馬程序員','haha','黑馬程序員','haha','gaga','gaga','huhu','huhu','best']
set1=set()
for element in my_list:set1.add(element)
print(set1)

在這里插入圖片描述
它自動得出來就是不重復的了

字典定義

在這里插入圖片描述
類似于我們平常使用的字典
在這里插入圖片描述
在這里插入圖片描述
定義字典也是大括號(和集合一樣)
但是里面是定義鍵值對
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
外層key是學生姓名,內層key是考試科目

# 字典定義
dict11={"xiaoming":99,"Jay":88,"lihua":77}
# 定義空字典
dict1={}
dict2=dict()
print(f"字典一的內容是{dict11},類型是{type(dict1)}")
print(f"字典一的內容是{dict1},類型是{type(dict1)}")
print(f"字典一的內容是{dict2},類型是{type(dict2)}")
# 定義重復key的字典,新的數會把老的數字覆蓋掉
dict3={"xiaoming":99,"Jay":88,"lihua":77,"xiaoming":53}
print(f"字典一的內容是{dict3}")
# 從字典中基于key獲取value
dict11={"xiaoming":99,"Jay":88,"lihua":77}
score=dict11["xiaoming"]
print(f"小明的分數是{score}")
# 定義嵌套字典
student_score_dict={"xiaoming":{"語文":77,"數學":66,"英語":33},"Jay":{"語文":88,"數學":86,"英語":55},"lihua":{"語文":99,"數學":96,"英語":66}
}
print(f"學生的考試成績是{student_score_dict}")
# 從嵌套字典中獲取數據
score=student_score_dict["Jay"]["語文"]
print(f"Jay的語文成績是{score}")
score1=student_score_dict["lihua"]["英語"]
print(f"lihua的英語成績是{score}")


在這里插入圖片描述

字典的常用操作

新增元素
在這里插入圖片描述

更新元素
在這里插入圖片描述
在這里插入圖片描述

dict11={"xiaoming":99,"Jay":88,"lihua":77}
# 新增元素
dict11["lihaha"]=66
print(f"新增之后的字典{dict11}")
# 更新元素
dict11["Jay"]=69
print(f"更新之后的字典{dict11}")
# 刪除元素
score=dict11.pop("xiaoming")
print(f"刪除的元素是{score},刪除之后的字典是{dict11}")# 清空元素
dict11.clear()
print(f"清空之后的字典{dict11}")# 獲取全部的key
dict11={"xiaoming":99,"Jay":88,"lihua":77}
key=dict11.keys()
print(f"字典全部的keys{key}")
# 遍歷字典,兩種方法
for key,value in dict11.items():print(f"字典中的key是{key}")print(f"字典中的value是{value}")
for key in dict11.keys():print(f"字典中的key是{key}")print(f"字典中的value是{dict11[key]}")
# 統計字典內的元素數量
length=len(dict11.keys())
print(f"元素數量{length}")

在這里插入圖片描述
在這里插入圖片描述

字典課后練習

在這里插入圖片描述

staff_information={"王力宏":{"部門":"科技部","工資":3000,"級別":1},"周杰倫":{"部門":"市場部","工資":5000,"級別":2},"林俊杰":{"部門":"市場部","工資":7000,"級別":3},"張學友":{"部門":"科技部","工資":4000,"級別":1},"劉德華":{"部門":"市場部","工資":6000,"級別":2}
}
print(f"全體員工的當前信息{staff_information}")for name in staff_information:if staff_information[name]["級別"] == 1:# 獲取到員工的信息字典!!!employee_information=staff_information[name]# 修改員工信息employee_information["工資"]+=1000employee_information["級別"]=2# 將嵌套字典的東西更新回去!!!staff_information[name]=employee_information
print(f"全體員工的當前信息{staff_information}")

在這里插入圖片描述
這個案例很好,主要練習了嵌套的類型,很有借鑒意義

5類數據容器的總結(五顆星)

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

數據容器的通用操作

在這里插入圖片描述
max,min,len
在這里插入圖片描述
在這里插入圖片描述
最大的收獲就是又學了一個快捷鍵:
shift+Alt+鼠標拖動
可以批量選擇,然后進行修改

my_list = [1,2,3,4,5,6,7,8,9]
my_tuple = (1,2,3,4,5,6,7,8,9)
my_string = 'hello world'
my_set = {1,2,3,4,5,6,7,8,9}
my_dict = {1,2,3,4,5,6,7,8,9}print(f"列表 元素個數有{len(my_list)}")
print(f"元組 元素個數有{len(my_tuple)}")
print(f"字符串 元素個數有 {len(my_string)}")
print(f"集合 元素個數有{len(my_set)}")
print(f"字典 元素個數有{len(my_dict)}")print(f"列表 最大的元素是{max(my_list)}")
print(f"元組 最大的元素是{max(my_tuple)}")
print(f"字符串最大的元素是{max(my_string)}")
print(f"集合 最大的元素是{max(my_set)}")
print(f"字典 最大的元素是{max(my_dict)}")print(f"列表 最小的元素是{min(my_list)}")
print(f"元組 最小的元素是{min(my_tuple)}")
print(f"字符串最小的元素是{min(my_string)}")
print(f"集合 最小的元素是{min(my_set)}")
print(f"字典 最小的元素是{min(my_dict)}")

在這里插入圖片描述
整整齊齊
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
轉換不了字典:因為字典是鍵值對
在這里插入圖片描述

print(f"列表對象的排序結果:{sorted(my_list)}")
print(f"元組對象的排序結果:{sorted(my_tuple)}")
print(f"字符串對象的排序結果:{sorted(my_string)}")
print(f"集合對象的排序結果:{sorted(my_set)}")
print(f"字典對象的排序結果:{sorted(my_dict)}")

本來亂七八槽的就變得有序了,都變成了列表對象

print(f"列表對象的排序結果:{sorted(my_list,reverse=True)}")
print(f"元組對象的排序結果:{sorted(my_tuple,reverse=True)}")
print(f"字符串對象的排序結果:{sorted(my_string,reverse=True)}")
print(f"集合對象的排序結果:{sorted(my_set,reverse=True)}")
print(f"字典對象的排序結果:{sorted(my_dict,reverse=True)}")

在這里插入圖片描述
全倒過來了
在這里插入圖片描述

字符串大小比較

在這里插入圖片描述
按照ASCII進行大小比較的65A,97a
小寫a比較大
在這里插入圖片描述
從前向后比較
在這里插入圖片描述
在這里插入圖片描述
不知道是我電腦的問題還是咋,感覺在這里面敲有點卡,換個文章繼續干

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

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

相關文章

Django 常見的操作符

在filter() 方法&#xff0c;exclude() 方法中使用大于&#xff0c;小于&#xff0c;模糊匹配等操作符。 常見的操作符如下&#xff1a; 操作符含義示例等于Book.objects.filter(price10)! 或 __ne不等于用于查找字段不等于特定值的記錄。但更常用exclude()方法。__gt大于用于…

React Redux使用@reduxjs/toolkit的hooks

關于redux的學習過程需要幾個官網&#xff0c;有redux官網&#xff0c;React Redux官網和Redux Toolkit的官網。 其中后者的中文沒有找到&#xff0c;不過其中的使用在React Redux官網的快速入門中有介紹。 現在一般不使用connect借接口了。 對于借助Redux Toolkit的React Redu…

Linux GUN(gcc/g++) 版本升級教程

Linux gcc/g 升級命令: // 查看當前安裝的版本 ll /usr/bin/gcc* ll /usr/bin/g*// 更新源 sudo apt update // 安裝新版本 sudo apt install g-10 gcc-10 // 應用新的版本 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 10 sudo update-altern…

【網站推薦】Developer Roadmaps 開發者學習路線

你是否想學習某門技術而苦苦找不到學習路線。本文推薦一個網站&#xff0c;解決學習路徑問題。 roadmap.sh 旨在創建路線圖、指南和其他教育內容&#xff0c;以幫助指導開發人員選擇路徑并指導他們的學習。 技術路線包括了前端后端安卓iosUI設計等內容&#xff0c;一些技術比如…

信息安全三要素

文章目錄 安全三要素 CIA機密性完整性可用性參考資料 安全三要素 CIA 安全三要素&#xff0c;也被稱為信息安全的CIA三要素&#xff0c;是確保信息和系統安全的核心原則。它們分別是&#xff1a; 機密性&#xff08;Confidentiality&#xff09;&#xff1a;保護數據不能泄露…

antdesignvue對話框用戶可移動并縮放

原貼 輕松搞定Ant Design Modal對話框拖拽縮放 - ByteZoneX社區https://www.bytezonex.com/archives/IFRuoJhd.html Ant Design 模態對話框&#xff1a;實現拖拽縮放功能 **子 Ant Design 是一個流行的前端 UI 框架&#xff0c;提供了一系列實用的組件&#xff0c;包括模態對…

ESP32CAM物聯網教學02

ESP32CAM物聯網教學02 物聯網門鎖 小智來到姑姑家門口&#xff0c;按了門鈴&#xff1b;還在公司上班的姑姑用電腦給小智開了門&#xff0c;讓他先進屋休息。小智對物聯網門鎖產生了興趣&#xff1a;什么是物聯網&#xff1f;為什么這么厲害&#xff1f; 初識物聯網 我們在百…

andboxie-Plus - 知名沙盒軟件、支持游戲多開測試軟件

我們經常會需要用到一些毒瘤軟件——它們可能不是真正的惡意軟件&#xff0c;但總愛偷摸干一些流氓行為。 工作中&#xff0c;有時還不得不安裝使用一些來路不明、不能完全信任的可疑軟件。 裝上吧&#xff0c;心里膈應、難受&#xff1b;不裝吧&#xff0c;有些工作又進行不…

代碼隨想錄算法訓練營第五十八天|KMC101 孤島的總面積、KMC102 沉沒孤島、KMC103 水流問題

題1&#xff1a; 指路&#xff1a;101. 孤島的總面積 (kamacoder.com) 思路與代碼&#xff1a; 本題要求找到不靠邊的陸地面積&#xff0c;那么我們從地圖的最外層開始遍歷&#xff0c;找到靠近四個邊的陸地&#xff0c;通過搜索將周邊靠陸地且相鄰的陸地1變成海洋0&#xf…

【驅動篇】龍芯LS2K0300之PWM設備驅動

實驗目的 利用脈沖調制效應&#xff08;PWM&#xff09;等效改變輸出功率大小控制LED&#xff0c;從而實現呼吸燈效果&#xff0c;需要用到RGB LED模塊 模塊連接 IO 插針接口上一共集成了兩路PWM&#xff0c;分別是PWM2和PWM3&#xff0c;對應GPIO88、GPIO89 PWM2和PWM3對…

期末考試結束,老師該如何私發成績?

隨著期末考試的落幕&#xff0c;校園里又恢復了往日的寧靜。然而&#xff0c;對于老師們來說&#xff0c;這并不意味著工作的結束&#xff0c;相反&#xff0c;一系列繁瑣的任務才剛剛開始。 成績單的發放&#xff0c;就是其中一項讓人頭疼的工作。家長們焦急地等待著孩子的考試…

Python程序打包成EXE文件指南

本套課在線學習視頻&#xff08;網盤地址&#xff0c;保存到網盤即可免費觀看&#xff09;&#xff1a; ??https://pan.quark.cn/s/57ba5f313c5b?? 將Python程序打包成可執行文件&#xff08;EXE&#xff09;可以方便用戶在沒有Python環境的計算機上運行程序。本文將詳細…

【Linux】在線求助命令--help,man page , info page

我們知道Linux有很多的命令&#xff0c;那LInux要不要背命令&#xff1f; 答案是背最常用的那些就行了 那有的時候我們想查詢一些命令的詳細用法該怎么辦呢&#xff1f; 這里我給出3種方法 1.--help --help的使用方法很簡單啊 要查詢的命令 --help 我們看個例子 這里我只…

C語言4 運算符

目錄 1. 算術運算符 2. 關系運算符 3. 邏輯運算符 4. 位運算符 5. 賦值運算符 6. 自增和自減運算符 7. 條件運算符&#xff08;三元運算符&#xff09; 8. 逗號運算符 9. sizeof 運算符 10. 取地址和解引用運算符 11.運算符的優先級 1. 算術運算符 (加法)&#xff1…

CRT工具

CRT工具 傳輸位置設置 打開SFTP alt p 命令 ls&#xff1a;遠程機器當前目錄內容 lls&#xff1a;傳輸位置文件的目錄內容 pwd&#xff1a;遠程機器的當前位置 lpwd&#xff1a;傳輸位置的位置 get 文件&#xff1a;ftp傳輸文件 get -r 文件夾&#xff1a;ftp傳輸文件…

如何獲取歌曲id---cloudmusic

X-Requested-With:“XMLHttpRequest”: https://blog.csdn.net/muzico425/article/details/102735413 https://www.runoob.com/xml/xml-http.html https://developer.mozilla.org/zh-CN/docs/Web/API/XMLHttpRequest 通過該案例主要還是學習一下X-Requested-With:"XMLHtt…

大華DSS user_toLoginPage.action命令執行漏洞

免責聲明 本文章僅做網絡安全技術研究使用&#xff01;嚴禁用于非法犯罪行為&#xff0c;請嚴格遵守國家法律法規&#xff1b;請勿利用文章內的相關技術從事非法測試&#xff0c;如因此產生的一切不良后果與文章作者無關。使用本文所提供的信息或工具即視為同意本免責聲明&…

go語言day11 錯誤 defer(),panic(),recover()

錯誤&#xff1a; 創建錯誤 1&#xff09;fmt包下提供的方法 fmt.Errorf(" 格式化字符串信息 " &#xff0c; 空接口類型對象 ) 2&#xff09;errors包下提供的方法 errors.New(" 字符串信息 ") 創建自定義錯誤 需要實現error接口&#xff0c;而error接口…

JavaSe系列二十七: Java正則表達式

正則表達式 為什么要學習正則表達式再提幾個問題解決之道-正則表達式正則表達式基本介紹介紹 正則表達式底層實現實例分析 正則表達式語法基本介紹元字符-轉義號 \\\\元字符-字符匹配符元字符-選擇匹配符元字符-限定符元字符-定位符分組非貪婪匹配 應用實例對字符串進行如下驗證…

學習筆記——動態路由——OSPF聚合(匯總)

十一、OSPF聚合(匯總) 1、路由聚合(匯總) 路由匯總是一種重要的思想&#xff0c;在大型的項目中是必須考慮的一個重點事項。隨著網絡的規模越來越大&#xff0c;網絡中的設備所需維護的路由表項也就會越來越多&#xff0c;路由表的規模也就會逐漸變大&#xff0c;而路由表是需…