五,Python基礎(chǔ)(2)
1.數(shù)據(jù)類型基礎(chǔ)
(一)什么是數(shù)據(jù)類型?
用于區(qū)分變量值的不同類型。
(二)為何對(duì)數(shù)據(jù)分類?
針對(duì)不同狀態(tài)就應(yīng)該用不同類型的數(shù)據(jù)去標(biāo)識(shí)。
(三)數(shù)據(jù)類型分類
1.數(shù)字類型
1.1整型(int)
1.11作用
表示人的年齡、各種號(hào)碼、級(jí)別
1.12定義
age = 24 # age=int(24)
print(id(age))
print(type(age))
print(age)
1982099648
24
1.13如何用
加減乘除、邏輯判斷(大于、小于)
print(a+b)
print(a-b)
print(a*b)
print(a/b)
.....
1.2浮點(diǎn)型(float)
1.21作用
表示身高、體重、薪資
1.22定義
money = 2.5 # money=float(2.5)
print(id(money))
print(type(money))
print(money)
244287541632
2.5
1.23如何用
加減乘除、邏輯判斷(大于、小于)
2.字符串類型(str)
2.1作用
表示名字、性別、愛(ài)好等
2.2定義
name='sanpao'
hobby='wanle'
print(type(name1))
print(name+hobby)
2.3如何用
字符串只能加、乘和邏輯比較
不同數(shù)據(jù)類型不能拼接
字符串的拼接,即重新申請(qǐng)一個(gè)小空間把兩個(gè)字符串都拷貝再拼接
3.列表類型(list)
3.1作用
例如存取一個(gè)人的愛(ài)好
3.2定義
在[]內(nèi)用逗號(hào)隔開(kāi)任意類型的值
list=['name','height','weight','age']
print(list)
3.3如何用
存不是目的,取才是目的
list=['name','height','weight','age']
# 索引序號(hào) 0 1 2 3
#取出第三位
print(list[2])
4.字典類型(dict)
4.1作用
用來(lái)存取多個(gè)值,按照key : value的方式存值,取得時(shí)候可以通過(guò)key而非索引去取值,key對(duì)value具有描述性的作用,存放數(shù)據(jù)的種類,各種各樣且數(shù)據(jù)較多的時(shí)候可以使用字典。
4.2定義
在{}內(nèi)用逗號(hào)分割開(kāi)多個(gè)元素,每一個(gè)元素都是key:value的格式,其中value是任意格式的數(shù)據(jù)類型,由于key具有描述性的作用,所以key通常是字符串類型
dict={'name':'mahua','gender':'male','age':18,'power_info':['oldboy','shanghai','hongqiao']}
4.3如何用
字典取值方式不再依賴于索引,而是依賴于key,通過(guò)key即可獲取對(duì)應(yīng)value值。
5.布爾類型(bool)
5.1作用
用于判斷條件結(jié)果
5.2定義
true、false通常情況不會(huì)直接引用,需要使用邏輯運(yùn)算得到結(jié)果。
5.3如何用
print(type(true))
print(true)
print(bool(1>2))
print(bool(1==1))
注意:Python中所有數(shù)據(jù)類型的值自帶布爾值,如此多的數(shù)據(jù)類型中只需要記住只有0、None、空、False的布爾值為False,其余的為True.
2.解壓縮
解壓縮可以理解為我們?nèi)ゾ魄f存了多瓶酒,然后我們到了時(shí)間把這些酒一次性全部取出來(lái)。
name_list = ['mahua','guapi','shadiao','doubi']
x,y,z,k=name_list
print(f'x:{x},y:{y},z:{z},k:{k}')
x:mahua,y:guapi,z:shadiao,k:doubi
如果遇到一些我們不想要的酒,過(guò)期了,想丟掉的話,那么我們可以用下劃線,無(wú)所不能的下劃線
name_list = ['mahua','guapi','shadiao','doubi']
x,y,z,k=name_list
x,_,z,_=name_list
print(x,z)
mahua shadiao
還有一種方法就是添加一個(gè)星號(hào)*與下劃線相乘可以代替一段連續(xù)的下劃線,方便簡(jiǎn)潔。
name_list = ['mahua','guapi','shadiao','doubi']
x,y,z,k=name_list
x,*_,k=name_list
print(x,k)
print(*_)
mahua doubi
guapi shadiao
字典也是用來(lái)解壓縮,但字典解壓縮的是key
dict={'name': 'mahua', 'age': 24}
x, y=dict
print(x, y)
name age
3.Python與用戶交互
一、為什么要交互?
計(jì)算機(jī)的發(fā)明是為了奴役計(jì)算機(jī),我們寫程序就是用來(lái)跟計(jì)算機(jī)交互,不然我們寫程序?qū)⒑翢o(wú)意義。
二、如何交互?
name=input('你的姓名:')
print(name*10)
name = input('請(qǐng)輸入你的姓名')
pwd = input('請(qǐng)輸入你的密碼')
input作用只是接收值
4.格式化輸出的三種方式
一、占位符
%s(針對(duì)所有數(shù)據(jù)類型)、d%(僅僅針對(duì)數(shù)字類型)
name='magua'
age =24
print('my name is %s my age is %s' % (name ,age)) (占位符)
print('my age is %d' %(age))
name1='guapi'
height=180
print('my name is %s,my age is %s'%(name1,height))
二、format格式
name='magua'
age=24
print("hello {},you are {}.".format(name,age))
三、f-string格式化
name ='magua'
age = 24
print(f"hello,{name}.you are {age}.") #大小寫f都可以。
5.基本運(yùn)算符
一、算術(shù)運(yùn)算符:
x=10
y=20
print(x+y)
print(x-y)
print(x*y)
print(x/y)
print(x%y)
print(x//y)
print(x**y)
二、比較運(yùn)算符:
z=10
k=20
print(z
k)
print(z>=k)
print(z<=k)
print(z==k)
print(z!=k)
三、賦值運(yùn)算符:
a=10 #(一元賦值運(yùn)算符)
b=20
a += b #相當(dāng)于a=a+b #二元賦值運(yùn)算符
print(a)
b += 10
print(b)
a -= b
print(a)
a *= b
print(a)
a /= b
print(a)
a **= b
print(a)
a //= b
print(a)
a %= b
print(a)
四、邏輯運(yùn)算符:
# and
print(True and True) # true #兩個(gè)為真才能為真
print(True and False) # false
print(1<2 and 2>3) # false
# or
print(True or False) #true 有一個(gè)為真即為真
print(False or False) #false
# not # 非,不是。
print(not False) # true
print(not True) # false
print(not 1>2)
五、身份運(yùn)算符:
d=1000
c=1002
print(d is c)
print(d is not c)
print(not c is d)
六,運(yùn)算符優(yōu)先級(jí)
print(not c is d**2) #建議加括號(hào)
#True為1,F(xiàn)alse為0
print(True>0)
print(False<1)
6.流程控制之if判斷
模擬人做判斷
1.if
學(xué)什么都是為了讓計(jì)算機(jī)向人一樣工作,我們無(wú)時(shí)無(wú)刻都在判斷。路邊路過(guò)一個(gè)生物,你會(huì)判斷兩個(gè)人是不是會(huì)表白?首先會(huì)判斷這個(gè)生物是不是人類,并且這個(gè)人類是個(gè)女人,年齡大于18小于20幾歲。你首先需要記錄一堆數(shù)據(jù),然后才會(huì)用你的大腦去判斷。if表示if成立代碼成立會(huì)干什么。
if 條件:
代碼1
代碼2
代碼3
...
# 代碼塊(同一縮進(jìn)級(jí)別的代碼,例如代碼1、代碼2和代碼3是相同縮進(jìn)的代碼,這三個(gè)代碼組合在一起就是一個(gè)代碼塊,相同縮進(jìn)的代碼會(huì)自上而下的運(yùn)行)
cls = 'human'
gender = 'female'
age = 18
if cls == 'human' and gender == 'female' and age > 16 and age < 22:
print('開(kāi)始表白')
print('end...')
2.if...else
if 條件:
代碼1
代碼2
代碼3
...
else:
代碼1
代碼2
代碼3
...
if...else表示if成立代碼成立會(huì)干什么,else不成立會(huì)干什么。
light = "green"
if light=='green':
print('通過(guò)')
else:
print('等待')
- if...elif...else
if 條件1:
代碼1
代碼2
代碼3
...
elif 條件2:
代碼1
代碼2
代碼3
...
elif 條件3:
代碼1
代碼2
代碼3
...
...
else:
代碼1
代碼2
代碼3
...
if...elif...else表示if條件1成立干什么,elif條件2成立干什么,elif條件3成立干什么,elif...否則干什么。
age=input('your age:')
age=int(age)
if age>18:
print('猜大了')
elif age<18:
print('猜小了')
else:
print('猜對(duì)了')
4.if的嵌套
給定一個(gè)年齡,判斷他是否猜對(duì)或猜大猜下,然后該怎么做。
age=18
inp_age=int(input("age:"))
if age <= inp_age:
if age < inp_age:
print('猜大了')
else:
print('猜對(duì)了')
break
else:
print('猜小了')
7.流程控制之while循環(huán)
什么是循環(huán)呢?我們每天早上起床,上課,休息,每天都重復(fù)這幾件事,這就是循環(huán)。
while循環(huán)又稱為條件循環(huán)。
1.whil+break
break的意識(shí)是終止掉當(dāng)前層的循環(huán),執(zhí)行其他代碼。
while True:
name = ('cxk')
key = ('rap')
inp_user=input('請(qǐng)輸入用戶名:')
inp_pwd=input('請(qǐng)輸入密碼:')
if name == inp_user and key == inp_pwd:
print('登陸成功')
break #跳出本層循環(huán)
else:
print('登陸失敗')
2.while+continue
continue的意思是終止本次循環(huán),直接進(jìn)入下一次循環(huán)。
n = 1
while n < 4:
print(n)
n += 1
n=1
while n<10:
if n == 5:
n += 1
continue #跳出本次循環(huán)
n += 1
print(n)
n=1
while n<10:
if n == 5:
n += 1
continue #跳出本次循環(huán)
n += 1
print(n)
continue不能加載循環(huán)體的最后一步執(zhí)行的代碼,因?yàn)榇a加上去毫無(wú)意義,如圖所示的continue所在的位置就是毫無(wú)意義的,注意是最后一步執(zhí)行的代碼,而不是最后一行。
3.while循環(huán)的嵌套。
#退出內(nèi)層循環(huán)的while嵌套:
while True:
name = ('cxk')
key = ('123')
inp_name=input('用戶名:')
inp_key =input('密碼:')
if inp_name==name and inp_key==key :
print('登陸成功')
while True:
older=input('請(qǐng)輸入指令')
if older=='esc':
print('退出登錄')
break
else:
print('操作成功')
else:
print('登陸失敗')
#打印1-1000之間偶數(shù)之和
n=1
count=0
while n<1001:
if n%2==0:
count+=n
n+=1
print(count)
print((1+1000)*1000/2/2)
#循環(huán)登陸,輸入密碼三次退出,
count=0
user_name=('cxk')
pwd_key=(123)
while count<3:
name=input('賬號(hào):')
key =int(input('密碼:'))
if name==user_name and key == pwd_key:
print('登陸成功')
break
else:
print('登陸失敗')
count+=1
4.while+else
n = 1
while n < 3:
print(n)
n += 1
else:
print('else會(huì)在while沒(méi)有被break時(shí)才會(huì)執(zhí)行else中的代碼')
注意:else會(huì)在while沒(méi)有被break時(shí)才會(huì)執(zhí)行else中的代碼
while循環(huán)會(huì)進(jìn)入死循環(huán)(不可控),盡量少使用
世間萬(wàn)物(所有數(shù)據(jù)類型都可以)作為循環(huán)的對(duì)象。
8.流程控制之for循環(huán)
1.為什么有了while循環(huán),還會(huì)有for循環(huán)呢?如果我們要從字典里取值,那我們只能用到for 循環(huán)了。
dict = {'name':'cxk','age':98}
for i in dict:
print(i)
2.for循環(huán)的循環(huán)次數(shù)受限于容器類型的長(zhǎng)度,且不會(huì)進(jìn)入死循環(huán),是可控的,而while循環(huán)的循環(huán)次數(shù)需要自己控制,for循環(huán)也可以按照索引取值。for循環(huán)只對(duì)容器類數(shù)字類型循環(huán)()
for i in range(1,10):
print(i)
3.for+break
跳出本層循環(huán)
for i in range(1,10):
if i==5:
break #跳出本層循環(huán)
print(i)
4.for+continue
for i in range(1,10):
if i==6:
continue #跳出本次循環(huán)
print(i)
5.for循環(huán)嵌套
外層循環(huán)循環(huán)一次,內(nèi)層循環(huán)循環(huán)所有。
*打印九九乘法表
for i in range(1,10):
for j in range(1,10):
k=i*j
print(f'%d*%d=%d '%(i,j,k),end='')
if i==j:
break
print()
6.for+else
for循環(huán)沒(méi)有被break的時(shí)候觸發(fā)else內(nèi)部代碼塊。
name_list=['cxk','magua','james']
for i in name_list:
print(i)
else
print('over')
7.for循環(huán)實(shí)現(xiàn)loading.
print("loading",end='')
for i in range (6):
print('.',end='')
9.Python基礎(chǔ)實(shí)戰(zhàn)之猜年齡游戲
編寫猜年齡游戲,有以下要求:
-
可能會(huì)有用戶會(huì)在輸入年齡之后不小心輸入空格,如18???,請(qǐng)做處理
-
可能會(huì)有用戶會(huì)惡意輸入導(dǎo)致程序報(bào)錯(cuò),如
逗你玩呀
,請(qǐng)做處理 -
如果用戶3次沒(méi)有猜對(duì),可以選擇繼續(xù)玩或退出(自定義退出條件)
-
如果用戶猜對(duì)了,可以在以下獎(jiǎng)品中選擇兩件獎(jiǎng)品(一次只能選擇一件獎(jiǎng)品):{1:'辣條',2:'小豬佩奇',3:'蔡徐坤',4:'Python從刪庫(kù)到跑路'}
-
用戶選擇獎(jiǎng)品后退出程序,用戶也可以不選擇獎(jiǎng)品直接退出程序。
age = 18 count = 0 liwu={1:'辣條',2:'小豬佩奇',3:'蔡徐坤',4:'Python從刪庫(kù)到跑路'} while count<3: age_1=input('請(qǐng)輸入年齡:') if not age_1.isdigit(): continue age_1=int(age_1) if age==age_1: print('猜對(duì)了哦,真棒') print(f'請(qǐng)選擇你的禮物(n放棄):',liwu) for i in range(2): choice = input() if choice=='n': break print(f'恭喜你獲得了:,{liwu[int(choice)]}') break elif age_1<18: print('猜小了,繼續(xù)努力') else: print('猜大了,繼續(xù)努力') count+=1 while count==3: keep=input('是否繼續(xù)(Y繼續(xù),N退出)') if keep=='Y': count=0 elif keep=='N': break else: print('輸入有誤,請(qǐng)重新輸入')
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
