# ### day1
print("hello world")
print("ptthon5期唯一女生羅婷")
rujia_305="王文"
rujia_306="李四"
print(rujia_305)
import keyword
print(keyword.kwlist)
#a,b的交換
a=1
b=2
print(a,b)
a,b=b,a
print(a,b)
#通用寫法
a=1
b=2
temp=a
a=b
b=temp
print(a,b)
#變量的命名
'''字母數(shù)字下劃線,首字符不能為數(shù)字
嚴(yán)格區(qū)分大小寫,且不能使用關(guān)鍵字
變量命名有意義,且不能使用中文哦'''
# ###
# 二進(jìn)制轉(zhuǎn)換為10進(jìn)制
# 從右到左,依次數(shù)位∑a*2^b? 其中a為位數(shù)上的值,b為位數(shù)
# 從右到左,依次數(shù)位∑a*8^b? 其中a為位數(shù)上的值,b為位數(shù)
# 從右到左,依次數(shù)位∑a*16^b? 其中a為位數(shù)上的值,b為位數(shù)
#10進(jìn)制轉(zhuǎn)二進(jìn)制,8進(jìn)制拒迅,16進(jìn)制
# 10%2? 然后從下到上依次排列即可
# 10%16? 然后從下島上依次排列即可
# 206》》》》0xCE
#補(bǔ)碼原碼的轉(zhuǎn)換
# 計(jì)算機(jī)底層用的是補(bǔ)碼,正數(shù)的補(bǔ)碼原碼反碼都一樣
# 負(fù)數(shù):補(bǔ)碼=原碼的反碼+1
# 原碼=補(bǔ)碼的反碼+1
# 復(fù)數(shù)的原碼再原來(lái)的基礎(chǔ)上? 高位0變成1
'''
9-5
9的補(bǔ)碼(原碼):0 0000 1001
-5的原碼: 1 0000 0101
-5的原碼的反碼:1 1111 1010
-5的補(bǔ)碼:1 1111 1011
9-5的補(bǔ)碼:0 0000 0100
9-5的原碼:0 0000 0100
4
1 001
2 010
3 011
4 100
5 101
6 110
7 111
8 1000
9 1001
a 1010
b 1011
c 1100
d 1101
e 1110
f 1111
'''
#python的6大類型數(shù)據(jù)
#Num(int,float,complex,bool)
intvar=152
print(intvar,type(intvar))
intvar=0b0100110
print(intvar,type(intvar))
intvar=0o1260
print(intvar,type(intvar))
intvar=0xFF
print(intvar,type(intvar))
floatvar=10e2
print(floatvar,type(floatvar))
floatvar=1.3606
print(floatvar,type(floatvar))
boolvar=True
print(boolvar,type(boolvar))
complexvar=4+5j
complevar=complex(4,5)
print(complevar)
#容器類型str
strvar="人生苦短,我用python"
print(strvar)
strvar='''古道西風(fēng)瘦馬
斷腸人在天涯'''
print(strvar)
strvar="天蒼蒼,\n野茫茫,\n遍地黃花香,\n\r哈哈哈\t哈哈哈"
print(strvar)
strvar="天蒼蒼,也茫茫\r遍地黃花香"
print(strvar)
strvar="明月幾時(shí)有'把酒問(wèn)青天'"
print(strvar)
strvar="明月幾時(shí)有,\"把酒問(wèn)青天\""
print(strvar)
#轉(zhuǎn)移字符,將有意義的字符變的無(wú)意義,將無(wú)意義的字符變的有意義
# \+某個(gè)字符
#\n表示換行
# \n\r表示換行
#\r表示將右邊的字符提到行首,左邊的字符被覆蓋
# \t表示一個(gè)縮進(jìn)(水平制表符)
#\加""? 可以打印出""
# 元字符串r+字符串(字符串內(nèi)的轉(zhuǎn)義字符失效)
strvar=r"天蒼蒼,\n野茫茫,\n遍地黃花香,\n\r哈哈哈\t哈哈哈"
print(strvar)
#字符串的格式化,其中%d表示整形,%f表示浮點(diǎn)型,%s表示字符串
# 其中f默認(rèn)是小數(shù)點(diǎn)后6位
# %3d表示字符個(gè)數(shù),默認(rèn)靠右
# %-3d,默認(rèn)靠左
# 如果%d給予一個(gè)浮點(diǎn)型,將直接取整
strvar="小黃轉(zhuǎn)了%f的錢,準(zhǔn)備買入%d斤的蘋果,她%s"%(1.53,2,"高興")
print(strvar)
strvar="小黃轉(zhuǎn)了%f的錢,準(zhǔn)備買入%d斤的蘋果,她%s"%(2,1.53,"高興")
print(strvar)
strvar="小黃轉(zhuǎn)了%.1f的錢,準(zhǔn)備買入%d斤的蘋果,她%s"%(1.58,2,"高興")
print(strvar)
strvar="小黃轉(zhuǎn)了%f的錢,準(zhǔn)備買入%3d斤的蘋果,她%s"%(1.53,2,"高興")
print(strvar)
strvar="小黃轉(zhuǎn)了%f的錢,準(zhǔn)備買入%-3d斤的蘋果,她%s"%(1.53,2,"高興")
print(strvar)
#list列表
#定義一個(gè)空列表[]
listvar=[1,2,3,4]
print(listvar[0])
listvar[1]="開心"
print(listvar)
length=len(listvar)
print(length)
#特征:可獲取,可修改,有序
#tuple元組
#定義一個(gè)空元組:()
# 特征:可獲取,不可修改,有序
tuplevar=(1,2,3,4)
# 元組的標(biāo)致符號(hào)是,
print(tuplevar[2])
tuplevar=(1,2,3,4,[5,6,7])
tuplevar[-1][0]="開心"
print(tuplevar)
#字符串
#特征:可獲取,不可修改,有序
strvar="很高興見到你"
print(strvar)
#定義一個(gè)字符串''
#集合set
#定義一個(gè)空集合set()
setvar=set()
setvar={"開心",123,556}
print(setvar)
#特征:自動(dòng)去重,無(wú)序
#字典
#鍵值對(duì)存儲(chǔ)數(shù)據(jù),看似有序,實(shí)際無(wú)序
#定義一個(gè)空字典{}
dictvar={"a":123,"b":456,"c":789}
print(dictvar)
print(dictvar["a"])
#哈希算法
#將任意長(zhǎng)度的不可改變的數(shù)據(jù)通過(guò)算法變成固定長(zhǎng)度的唯一值,這種算法叫做哈希算法,這個(gè)值叫做哈希值
#集合的元素,字典的鍵一定是可哈希
#特點(diǎn):哈希存儲(chǔ)數(shù)據(jù)的時(shí)候是一個(gè)隨機(jī)存放的散列,存儲(chǔ)速度快
#自動(dòng)類型轉(zhuǎn)換
#Number 精度從低到高 bool int float complex
res=True + 1
print(res)
res=True+4j+10
print(res)
#可哈希的數(shù)據(jù):Number(int,float,complex,bool),string,tuple
#不可哈希的數(shù)據(jù):dict,set,list
####強(qiáng)制類型轉(zhuǎn)換
#number
var1=4
var2=1.9
var3=4e5
var4=4+5j
var5=True
var6="12315"
var7="asssacx61581"
'''int類型轉(zhuǎn)化,其中int float bool 還有字符全為數(shù)字的字符串'''
res1=int(var2)
res2=int(var3)
# res3=int(var4) error
res4=int(var5)
res5=int(var6)
# res6=int(var7) error
print(res1,res2,res4,res5)
#float強(qiáng)行轉(zhuǎn)換
'''float類型轉(zhuǎn)換,其中int,float,bool,還有字符全為數(shù)字的字符串'''
res1=float(var1)
res2=float(var3)
res3=float(var5)
res4=float(var6)
print(res1,res2,res3,res4)
#complex轉(zhuǎn)換
"""complex轉(zhuǎn)換,能將所有數(shù)字類型及字符全為數(shù)字的字符串轉(zhuǎn)換"""
res1=complex(var1)
res2=complex(var2)
res3=complex(var3)
res4=complex(var4)
res5=complex(var5)
res6=complex(var6)
print(res1,res2,res3,res4,res5,res6)
#bool類型轉(zhuǎn)換
'''任何類型都可以轉(zhuǎn)為bool,除以下十種外轉(zhuǎn)換值都為True
0 '' 0.0 0j False [] () set() {} None'''
var1="今天天氣好晴朗"
var2=["高興","開心","悲傷"]
var3=("2","3","4")
var4={"天天","快樂(lè)","哈"}
var5={"上路":"牛頭","上路":"sven","中路":"小y"}
#str
'''可以轉(zhuǎn)換所有的數(shù)據(jù)
在原數(shù)據(jù)基礎(chǔ)上外加上雙引號(hào)'''
strvar1=str(var1)
strvar2=str(var2)
strvar3=str(var3)
strvar4=str(var4)
strvar5=str(var5)
print(repr(strvar1))
print(repr(strvar2))
print(repr(strvar3))
print(repr(strvar4))
print(repr(strvar5))
#listvar
'''只能容器類型數(shù)據(jù)強(qiáng)轉(zhuǎn)
其中字符串類型,將每個(gè)字符都作為列表中的元素錄入,并套上[]標(biāo)識(shí)符轉(zhuǎn)換'''
listvar1=list(var1)
listvar2=list(var2)
listvar3=list(var3)
listvar4=list(var4)
listvar5=list(var5)
print(listvar1,listvar2,listvar3,listvar4,listvar5)
'''字典類型強(qiáng)轉(zhuǎn)列表,只保留鍵,并套上[]標(biāo)識(shí)符轉(zhuǎn)換
其余類型,在原有數(shù)據(jù)基礎(chǔ)上,套上[]標(biāo)識(shí)符轉(zhuǎn)換'''
#tuple
tuplevar1=tuple(var1)
tuplevar2=tuple(var2)
tuplevar3=tuple(var3)
tuplevar4=tuple(var4)
tuplevar5=tuple(var5)
print(tuplevar1,tuplevar2,tuplevar3,tuplevar4,tuplevar5)
'''如果強(qiáng)轉(zhuǎn)字符串類型,將字符串中的每個(gè)字符作為元組中的元素錄入,并套上()標(biāo)識(shí)符進(jìn)行轉(zhuǎn)換
字典類型轉(zhuǎn)化,只保留鍵,并套上()標(biāo)識(shí)符
其余類型,在元數(shù)據(jù)的基礎(chǔ)上,套上()標(biāo)識(shí)符'''
#set集合
set1=set(var1)
set2=set(var2)
set3=set(var3)
set4=set(var4)
set5=set(var5)
print(set1,set2,set3,set4,set5)
'''如果強(qiáng)轉(zhuǎn)字符串類型,將字符串中的每個(gè)字符作為集合中的元素錄入,并套上{}標(biāo)識(shí)符進(jìn)行轉(zhuǎn)換
字典類型轉(zhuǎn)化,只保留鍵,并套上{}標(biāo)識(shí)符
其余類型,在元數(shù)據(jù)的基礎(chǔ)上,套上{}標(biāo)識(shí)符'''
#如果數(shù)據(jù)中含有不可哈希的數(shù)據(jù),則不可以轉(zhuǎn)換為集合
var=[1,2,3,4]
print(set(var))
# var=[1121,2,[3,4]]
# print(set(var))? error
#多級(jí)容器
#在原有容器類型數(shù)據(jù)的內(nèi)部,其內(nèi)部的元素還是容器類型數(shù)據(jù)(list,tuple,set,dict)
#二級(jí)列表
listvar=[1,2,3,4,[1,2,3]]
print([-1][0])
#二級(jí)元組
tuplevar=(1,2,3,4,(5,6,7,8))
print(tuplevar[-1][-1])
#二級(jí)集合
#里面只能存儲(chǔ)元組
setvar={"開心",123,(1,2,3,4)}
print(setvar)
#二級(jí)字典
dictvar={"a":{1:"開心",2:"高興"},"c":0}
print(dictvar["a"][2])
#等長(zhǎng)的二級(jí)容器
#首先容器是兩個(gè),代表二級(jí)容器,容器元素的個(gè)數(shù)是一樣的
res=[[1,2],[3,4],[5,6]]
print(dict(res))
#強(qiáng)轉(zhuǎn)字典
'''(1)外面是列表,里面是列表,元組或字符串的二級(jí)容器
(2)外面是元組,里面是列表,元組或字符串的二級(jí)容器
(3)外面是集合,里面是元組,字符串而二級(jí)容器'''
#字符串的元素個(gè)數(shù)只能是兩層,有局限,不推薦使用
#合集作為容器的元素,容易出現(xiàn)非預(yù)期的效果,不推薦使用
#變量的緩存機(jī)制
#-5~正無(wú)窮,值相同,地址相同
#float,非負(fù)數(shù)的浮點(diǎn)型,值相同,地址相同
#bool ,值相同,地址相同
#complex,除了純虛數(shù)的情況,值相同,地址相同,其余情況地址都不同
#容器類型數(shù)據(jù),字符串,值相同,地址相同
#空元組()地址相同
#其余容器類型數(shù)據(jù),都不相同
# ####python運(yùn)算符
#算數(shù)運(yùn)算符:+ - * / // % **
print(4+3)
print(30-8)
print(30*6)
print(30//9)
print(30/9)
print(30%9)
print(2**3)
#7 22 180 3 3.333333? 3? 8
#比較運(yùn)算符 > < = <= >= == !=
#返回值是True 或 False
#身份運(yùn)算符
#is ,is not
var1=[1,2]
var2=[1,2]
print(var1 is var2)
print(var1==var2)
#is是判斷地址是否相同,==判斷值是否相同
#邏輯運(yùn)算符
#and or not
#優(yōu)先級(jí) not> or >and
#邏輯短路
#True or 布爾值
#False and 布爾值
res=True and print(8)
print(res)
None
res=True or print(8)
print(res)
res=False and print(8)
print(res)
#porint默認(rèn)返回一個(gè)None
# ###數(shù)據(jù)類型的判斷isinstance
print(isinstance("hello world",str))
res=123456
print(isinstance(res,(str,list,set)))
#賦值運(yùn)算符 = += -= /= //= %=? **=
var1=15
var2=16
var1+=var2
var1=var1+var2
var1-=var2
var1=var1-var2
var1/=var2
var1=var1/var2
var1//=var2
var1=var1//var2
var1%=var2
var1=var1%var2
var1**=var2
var1=var1**var2
#成員運(yùn)算符
#in not in
#如果是字符串,必須是連續(xù)的片段
strvar="窈窕淑女,君子好逑"
print("淑女"in strvar)
print("女君" in? strvar)
strvar="1111天才"
print("111" in strvar)
setvar={"開心","高興",1}
print(1 in setvar)
#如果是字典,只能識(shí)別鍵
dictvar={1:"asd",2:"dcsvart"}
print(1 in dictvar)
#位運(yùn)算符 << >> & | ^ ~
#按位與&,在數(shù)字二進(jìn)制中進(jìn)行運(yùn)算,全真為真,一假則假
var1=15
var2=10
res=var1&var2
print(res)
'''
15? 0000 0000 1111
10? 0000 0000 1010
0000 0000 1010
10
'''
#按位或| 在數(shù)字二進(jìn)制中進(jìn)行運(yùn)算,全假則假,一真為真
va1=15
var2=10
res= var1|var2
print(res)
'''
15 0000 0000 1111
10 0000 0000 1010
? 0000 0000 1111
15
'''
#按位異或^? 在數(shù)字二進(jìn)制中進(jìn)行運(yùn)算,相同為假,不同為真
var1=15
var2=10
res=var1^var2
print(res)
'''
15 0000 0000 1111
10 0000 0000 1010
? 0000 0000 0101
5
'''
#左移<< 在數(shù)字二進(jìn)制中進(jìn)行原酸,將二進(jìn)制向左移動(dòng)數(shù)字位
#在實(shí)際運(yùn)算中a<<b 直接用a乘上2的b次冪
var1=10
res=var1<<2
print(res)
'''
10 0000 0000 1010
? 0000 0010 1000
40
? '''
#右移>>在二進(jìn)制中進(jìn)行運(yùn)算,將二進(jìn)制向右移動(dòng)數(shù)字位
#實(shí)際運(yùn)算過(guò)程中a>>b? 直接用a地板除2的b次冪
var1=10
res=var1>>2
print(res)
'''
10 0000 0000 1010
? 0000 0000 0010
2?
? '''
#按位非~ 在數(shù)字二進(jìn)制的補(bǔ)碼中操作,將二進(jìn)制中的所有位數(shù)都取反
var1=-12
print(~(var1))
#可直接計(jì)算為-(n+1)
'''
-12的原碼? 1 0000 0000 1100
-12的反碼 1 1111 1111 0011
-12的補(bǔ)碼 1 1111 1111 0100
-12的按位非補(bǔ)碼
0 0000 0000 1011
原碼即為? ? 0 0000 0000 1011
11
'''
#運(yùn)算符的優(yōu)先級(jí)
'''
()優(yōu)先級(jí)最高\(yùn)
**優(yōu)先級(jí)其次
一般情況下一元運(yùn)算符的要優(yōu)先于二元運(yùn)算符(not除外)
not>and>or
=的優(yōu)先級(jí)最低
賦值運(yùn)算符將右邊的值算出后賦值于等號(hào)左邊的值
算數(shù)運(yùn)算符>比較運(yùn)算符>位運(yùn)算符>身份運(yùn)算符>成員運(yùn)算符>邏輯運(yùn)算符'''
#小數(shù)據(jù)池
#-5~256的數(shù)字
#字符為1或0的字符串
#字符串只包含數(shù)字字幕下劃線的字符串
#bool
#由乘積得到的字符串,如乘積為1都保留在小數(shù)據(jù)池,若大于1,為字母數(shù)字下劃線,保留,但數(shù)位不能超過(guò)20
#指定駐留函數(shù)
from sys import intern
a=intern("天下為我獨(dú)尊")
b=intern("天下為我獨(dú)尊")
print(a is b)
#代碼塊;以冒號(hào)作為開始,用縮進(jìn)來(lái)劃分作用域,這個(gè)整體就叫做代碼塊
#其他語(yǔ)言用{}來(lái)表示
#注意空格和tab 的區(qū)別
####流程控制
# 流程:代碼運(yùn)行的過(guò)程
#流程控制:對(duì)代碼運(yùn)行的過(guò)程進(jìn)行管控
'''
1,順序結(jié)構(gòu)
2,分支結(jié)構(gòu)
3,循環(huán)結(jié)構(gòu)'''
#單項(xiàng)分支
xujingxiong="爽"
if xujingxiong=="爽":
print("開心")
#多項(xiàng)分支
xujingxiong="爽"
if xujingxiong=="悲":
print("傷心")
else:
print("開心")
#input 等待用戶輸入字符串
'''
username=input("請(qǐng)輸入用戶名:")
pasword=input("請(qǐng)輸入密碼:")
if username=='admin' and pasword=='0000':
print("歡迎你")
else:
print("用戶名或密碼錯(cuò)誤")
'''
#多項(xiàng)分支(elif只要一個(gè)條件滿足,剩下的就不執(zhí)行了)
youqian=False
youche=False
youfang=False
youyanzhi=False
if youqian == True:
print("xxxx1")
elif youche==True:
print('xxxx2')
elif youfang==True:
print("xxxx3")
elif youyanzhi==True:
print("XXXX4")
else:
print("滾")
#巢狀分支(單項(xiàng),多項(xiàng),嵌套執(zhí)行)
youqian=True
youche=False
youfang=False
youyanzhi=False
if youqian==True:
if youche==True:
if youyanzhi==True:
if youfang==True:
print("來(lái)來(lái)來(lái)")
else:
print("滾4")
else:
print("滾3")
else:
print("滾2")
else:
"滾"
#循環(huán)結(jié)構(gòu)while? for
'''基本語(yǔ)法
while 條件:
code1
code2
'''
#打印1~100
i=1
while i<=100:
print(i)
i+=1
#1~100的累加和
i=1
total=0
while i<=100:
total+=i
i+=1
print(total)
#死循環(huán)寫法
i=1
total=0
flag=True
while flag:
total+=i
i+=1
if i ==101:
flag =False
print(total)
#打印一行10個(gè)小星星
i=0
while i<10:
print("*",end="")
i+=1
#字符串的相關(guān)操作:
#字符串的拼接
str1="我是"
str2='天才'
res=str1+str2
print(res)
#字符串的重復(fù)
str1="天才"
res=str1*10
print(res)
#字符串的跨行拼接
strvar="xxxxxxxxxxxx"\
"151051815115"\
"hello world"
print(strvar)
#字符串的索引
strvar="我是天天和你在一起"
res=strvar[4]
print(res)
#字符串的切片:切片就是截取
#語(yǔ)法[:: ]截取的開始,截取的結(jié)束,截取的間隔值
#其中結(jié)束值是取不到的
strvar="我想你在365的夜,希望能和你在一起,開開心心"
res=strvar[::]
print(res)
res=strvar[:]
print(res)
res=strvar[1:]
print(res)
res=strvar[:9]
print(res)
res=strvar[:9:3]
print(res)
res=strvar[-7:-1]
print(res)
print("<=================================================>")
res=strvar[-1:1:-1]
print(res)
res=strvar[::-1]
print(res)
#如果是倒敘,即步長(zhǎng)為負(fù),則前面開頭的順序一定是數(shù)數(shù)的順序,先數(shù)的在前,后數(shù)的在end
'''
3出題 height
#女生找對(duì)象
# 男生在1米~1.5米之間 小強(qiáng) 你在哪里?
# 男生在1.5~1.7米之間 沒(méi)有安全感~
# 男生 1.7~ 1.8米之間 帥哥 留個(gè)電話
# 男生 1.8~2米之間 帥哥 你建議多一個(gè)女朋友嗎
#python特有的寫法
high=float(input("請(qǐng)輸入你的身高:"))
if 1<=high<1.5:
print("小強(qiáng),你在哪里")
elif 1.5<=high<1.7:
print("沒(méi)有安全感")
else:
print("滾")
#通用寫法
high = float(input("請(qǐng)輸入你的身高:"))
if 1 <= high and high< 1.5:
print("小強(qiáng),你在哪里")
elif 1.5 <= high? and high< 1.7:
print("沒(méi)有安全感")
else:
print("滾")
'''
#用一行變量打印出一行十個(gè)小星星
i=0
while i<10:
print("*",end="")
i+=1
i=0
total=""
while i<10:
total+="*"
i+=1
print(total)
# 3.打印一行十個(gè)小星星 奇數(shù)個(gè)打印★ 偶數(shù)個(gè)打印☆
'''任意數(shù)m%n,余數(shù)范圍0~(n-1)'''
i=0
while i <10:
if i%2==0:
print("☆",end="")
else:
print("★",end="")
i+=1
# 4.一個(gè)循環(huán) 打印十行十列小星星\
#單循環(huán)
i=0
while i <100:
print("*",end="")
if i%10==9:
print()
i+=1
#雙循環(huán)
i=0
while i<10:
j=0
while j<10:
print("*",end='')
j+=1
print()
i+=1
# 5.一個(gè)循環(huán) 打印十行十列隔列變色小星星
#單循環(huán)
i=0
while i <100:
if i % 2 == 0:
print("☆", end="")
else:
print("★", end="")
if i%10==9:
print()
i+=1
#雙循環(huán):
i=0
while i<10:
j=0
while j<10:
if j%2==0:
print("☆", end="")
else:
print("★", end="")
j+=1
print()
i+=1
# 6.一個(gè)循環(huán) 打印十行十列隔行變色小星星
#單循環(huán)
i=0
while i <100:
if i//10%2 == 0:
print("☆", end="")
else:
print("★", end="")
if i%10==9:
print()
i+=1
#雙循環(huán):
i=0
while i<10:
j=0
while j<10:
if i%2==0:
print("☆", end="")
else:
print("★", end="")
j+=1
print()
i+=1
# 7.用戶登陸(三次輸錯(cuò)機(jī)會(huì))且每次輸錯(cuò)誤時(shí)顯示剩余錯(cuò)誤次數(shù)
# (提示:字符串格式化)
'''
times=3
while times:
pasw=input("請(qǐng)輸入密碼:")
if pasw=="0000":
print("歡迎你")
break
else:
if times==1:
print("賬戶已被凍結(jié)")
break
print("你輸入的密碼有誤,還可輸入%d次"%(times-1))
times-=1
'''
#關(guān)鍵字的使用
#pass
if 5 ==5:
pass
i=0
while i<10:
pass
i+=1
#break終止當(dāng)前循環(huán)(只能用在循環(huán)中)
'''打印1~10,如果遇到5中止'''
i=1
while i<=10:
print(i)
if i ==5:
break
i+=1
#break終止的是當(dāng)前循環(huán)
i=1
while i<3:
j=1
while j<=3:
if j==3:
break
print(i,j)
j+=1
i+=1
#(1,1),(1,2),(2,1),(2,2)
#continue 跳過(guò)當(dāng)前循環(huán),從下一次循環(huán)開始
# 打印1~10 不打印5
i=0
while i <10:
if i ==5:
i+=1
continue
print(i)
i += 1
# 打印1~100 所有不含有4的數(shù)字
#方法一
i=1
while i<=100:
strvar=str(i)
if "4" not in strvar:
print(i)
i+=1
#方法二
i=1
while i <=100:
shiwei=i//10
gewei=i%10
if shiwei!=4 and gewei!=4:
print(i)
i+=1
# ###for循環(huán)
#循環(huán),遍歷,迭代
#把列表里面的元素一一拿出來(lái)就是遍歷
listvar=["開心","高興","傷心"]
#用len來(lái)遍歷
lenth=len(listvar)
i=0
while i<lenth:
print(listvar[i])
i+=1
#while循環(huán)局限性在于,不能遍歷集合這樣的數(shù)據(jù)類型
#for循環(huán)特指用來(lái)遍歷
#for 的語(yǔ)法? for...in...
#代碼解析;將容器類型數(shù)據(jù)的每一個(gè)元素,依次的拿出來(lái)賦值給變量,直到所有數(shù)據(jù)依次遍歷后終止,跳出循環(huán)
#遍歷字典的時(shí)候,遍歷的是鍵
container="我愛你親愛的的姑娘,見到你我就心慌"
for i in container:
print(i)
#字符串是將每一個(gè)字符進(jìn)行單獨(dú)遍歷
#編列等長(zhǎng)的二級(jí)容器
listvar=[[1,2],[3,4],[5,6]]
for x,y in listvar:
print(x)
print(y)
#變量的解包
#range對(duì)象
'''
語(yǔ)法
range(start,end,step)
使用方式像是,高位的end取不到'''
#一個(gè)參數(shù)情況
for i in range(5):
print(i)
#默認(rèn)從0開始
#兩個(gè)參數(shù)
for i in range(3,10):
print(i)
#三個(gè)參數(shù):
for i in range(3,10,2):
print(i)
#打印9~1
for i in range(9,0,-1):
print(i)
# ###字符串相關(guān)函數(shù)(函數(shù)就是方法的意思,完成某個(gè)功能)
'''語(yǔ)法:字符串.函數(shù)'''
#capitalize
strvar="one world one dream"
res=strvar.capitalize()
print(res)
#title將每個(gè)字母的字母大寫(非字母就可以 讓后面的字母字符串大寫)
strvar="oneworld one---dream"
print(strvar.title())
#upper將所有字母大寫
strvar="one world one dream"
res=strvar.title()
print(res)
#lower將所有字母小寫
print(res)
print(res.lower())
#swapcase大小寫互換
strvar="sacmiamreASACMIR"
print(strvar.swapcase())
#len計(jì)算字符串的長(zhǎng)度
#count計(jì)算某個(gè)元素在字符串中出現(xiàn)的數(shù)量
strvar="案件哈時(shí)間啊曹鵬模擬題你不覺得是你覺得煩哈哈回復(fù)"
print(strvar.count("哈"))
#find 查找某個(gè)元素第一次出現(xiàn)的索引,找不到返回-1
'''find("元素",start,end),高位取不到end'''
strvar="are u happy"
res=strvar.find('h')
print(res)
res2=strvar.find("h",0,5)
print(res2)
res3=strvar.find("h",-6,-1)
print(res3)
#find只接受從左到右的順序
#index用法和find相同,但index如果沒(méi)有查找到就是報(bào)錯(cuò)
#startswith 返回True or False
'''表村是否以某個(gè)字符或字符串的為開頭'''
strvar="天天開心日日快樂(lè)"
res=strvar.startswith("天")
print(res)
'''startswith("字符",starts,end)高位取不到'''
#endswith以某個(gè)字符串或者字符皆為
strvar="天天開心日日快樂(lè)"
res=strvar.endswith("樂(lè)")
print(res)
#isalpha判斷字符串是否由字母或者文字組成
strvar="哈哈哈哈123505xxx"
print(strvar.isalpha())
strvar="哈哈哈哈xxx"
print(strvar.isalpha())
#isalnum判斷字符串是否由數(shù)字字母漢字組成
strvar="哈哈哈哈123505xxx"
print(strvar.isalnum())
#isdigit判斷字符串是否完全由數(shù)字組成,可以接受二進(jìn)制字節(jié)流
strvar="15050600"
print(strvar.isdigit())
strvar=b"1223150"
print(strvar.isdigit())
strvar=b"asdfa"
print(strvar.isdigit())
#isdecimal判斷字符串是否由數(shù)字組成,不能接受二進(jìn)制字節(jié)流
strvar="15050600"
print(strvar.isdecimal())
# strvar=b"1223150"
# print(strvar.isdecimal())? error
#split將字符串分割為列表(默認(rèn)是空格)
strvar="開心高興快樂(lè)"
res=strvar.split()
print(res)
strvar="開心 高興 快樂(lè)"
res=strvar.split()
print(res)
strvar="開心.高興.快樂(lè)"
res=strvar.split(".")
print(res)
strvar="開心.高興.快樂(lè)"
res=strvar.split(".",1)
print(res)
#split從左往右數(shù)? ? rsplit是從右往左數(shù)
strvar="開心.高興.快樂(lè)"
res=strvar.rsplit(".",1)
print(res)
#join 將容器類型數(shù)據(jù)拼接為字符串
listvar=["開心","高興","完美",'',""]
res="".join(listvar)
print(res)
listvar=["開心","高興","完美",'',""]
res="+".join(listvar)
print(res)
dictvar={"a":"天才","b":"兒童"}
res="+".join(dictvar)
print(res)
#字典使用join時(shí),只提取鍵
#center填充字符,原字符默認(rèn)居中(默認(rèn)填充空格)
'''原字符個(gè)數(shù)+要填充的字符一共多少個(gè)'''
strvar="哈哈哈"
print(strvar.center(10,"*"))
#數(shù)在前,填充的字符在后
#strip 默認(rèn)去掉首位兩邊的空白符
strvar="? ? ? ? ? 周杰倫? ? ? ? "
res=strvar.strip()
print(res)
#rstrip 去掉右邊的字符
#lstrip 去掉左邊的字符
strvar="aaxxxaaaaaaaaaaa15505bbbbbbsssbbbb"
print(strvar.lstrip("aa"))
print(strvar.rstrip("bb"))
#replace()? 將某個(gè)元素替換為另一個(gè)元素(可選擇替換幾次)
strvar="可愛的小狼狗,喜歡吃肉肉,有么有,有沒(méi)有,還有沒(méi)有"
res=strvar.replace("有沒(méi)有","別啊",1)
print(res)
# ###字符串的格式化 format
# (1)順序占位
strvar="{}給{}踹了一腳".format("xjxj","yx")
print(strvar)
#索引占位
strvar="{1}向{0}開了一槍".format("xjxjxx","yx")
print(strvar)
#關(guān)鍵字占位
strvar="{兇手}向{受害人}開了一槍".format(兇手="天才",受害人="智障")
print(strvar)
#容器類型傳參
strvar="{1[1]}向{0[2]}開了一槍".format(["天才","智障","王牌","間諜"],[12315,150505])
print(strvar)
#如果是字典,場(chǎng)景發(fā)生在format字符串格式化中,通過(guò)鍵取值,不要加上引號(hào)
strvar="{0[兇手]}向{0[受害者]}開了一槍".format({"兇手":"天才","受害者":"智障"})
print(strvar)
# ###format填充符號(hào)與格式化
# (5)format填充符號(hào)的使用
strvar="{who:*^10}今天買了香蕉".format(who="王朝")
print(strvar)
'''格式{who:*>10}'''
strvar="{who:*^10}在這個(gè)城市的{where:*>20}能夠開心的{what:*<10}"
res=strvar.format(who="王朝",where="上層",what="生活")
print(res)
#進(jìn)制轉(zhuǎn)換等特殊符號(hào)的使用(:d :f :s :,)
#:d整形占位符
strvar="徐小姐買了{(lán):d}雙鞋"
res=strvar.format(16)
print(res)
strvar="徐小姐買了{(lán):7d}雙鞋"
res=strvar.format(16)
print(res)
strvar="徐小姐買了{(lán):<7d}雙鞋"
res=strvar.format(16)
print(res)
strvar="徐小姐買了{(lán):^7d}雙鞋"
res=strvar.format(16)
print(res)
#f浮點(diǎn)型占位符
strvar="xjx的體重是{:.2f}"
res=strvar.format(120.529502)
print(res)
#s字符串占位符
strvar="{:s}"
res=strvar.format("1235")
print(res)
#金錢占位符
strvar="{:,}"
print(strvar.format(1505602))