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

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