Python學(xué)習(xí)總結(jié)【連載】(三)
2018.06.14 Juttachen
概述
+ 10 數(shù)據(jù)類型轉(zhuǎn)換
+ 11 if 判斷
- 格式與執(zhí)行過(guò)程
- input 語(yǔ)句
- pass 語(yǔ)句
+ 12 for 循環(huán)
- 格式與執(zhí)行過(guò)程
- range語(yǔ)句
+ 13 while 循環(huán)
- 格式與執(zhí)行過(guò)程
十浑此、數(shù)據(jù)類型轉(zhuǎn)換
1.將其他的數(shù)據(jù)轉(zhuǎn)換成數(shù)字
int():將其他的數(shù)據(jù)轉(zhuǎn)換成int類型的數(shù)據(jù)
num = 12.56
print(int(num)) #將浮點(diǎn)數(shù)轉(zhuǎn)換成整數(shù)(直接去掉小數(shù)部分)
bool1 = True
print(int(bool1)) #將布爾值轉(zhuǎn)換成整數(shù)捞魁,真1假0
str1 = '123'
print(int(str1)) # 將純數(shù)字整型字符串可以直接轉(zhuǎn)化成整型數(shù)字
注意:int()轉(zhuǎn)換字符串的時(shí)候,不是純數(shù)字會(huì)報(bào)錯(cuò),不是整型數(shù)字也會(huì)報(bào)錯(cuò)赫编。
float() 可以將其他數(shù)據(jù)轉(zhuǎn)換成浮點(diǎn)型數(shù)據(jù).和整形相似图焰。
2.把其他數(shù)據(jù)轉(zhuǎn)換成布爾值
bool() 可以將其他數(shù)據(jù)轉(zhuǎn)換成布爾值:非零數(shù)是True,只有0是False盐碱,字符串里面除了空串轉(zhuǎn)換成布爾會(huì)變成False以外榛了,其他的都是True。
print(bool(12))
print(bool(-12))
print(bool(12.5))
print(bool(0))
print(bool('abc'))
print(bool('')) #空串是False
3.其他數(shù)據(jù)轉(zhuǎn)換成字符串
str() 將其他數(shù)據(jù)轉(zhuǎn)換成字符串抢肛。所有的數(shù)據(jù)類型的數(shù)據(jù)都可以轉(zhuǎn)換成字符串狼钮。
注意:
可以在if或者while循環(huán)后的條件語(yǔ)句里面只寫數(shù)字或字符串,和數(shù)據(jù)類型相關(guān)捡絮,見(jiàn)其他類型轉(zhuǎn)換為布爾值情況熬芜。
if 10:
print('aaa')
判斷一個(gè)字符串是否是空串,如果不是就直接打印這個(gè)字符串福稳,否則輸出空串
str1 = ''
if str1:
print(str1)
else:
print('空串')
十一猛蔽、if 判斷
1. 格式與執(zhí)行過(guò)程
基本格式:
if 條件語(yǔ)句1:
執(zhí)行語(yǔ)句塊1
elif 條件語(yǔ)句2
執(zhí)行語(yǔ)句塊2
else:
執(zhí)行語(yǔ)句塊3
其他語(yǔ)句
執(zhí)行過(guò)程:
先判斷條件語(yǔ)句1是否為True,如果為True灵寺,就去執(zhí)行語(yǔ)句塊1中曼库,整個(gè)條件結(jié)果就執(zhí)行完了,如果是False略板,執(zhí)行判斷條件語(yǔ)句2毁枯,執(zhí)行語(yǔ)句塊2,再執(zhí)行其他語(yǔ)句叮称,如果False則直接執(zhí)行語(yǔ)句塊3种玛。
條件語(yǔ)句只能有一個(gè)語(yǔ)句塊被執(zhí)行
常用形式
if 條件語(yǔ)句:
執(zhí)行語(yǔ)句塊
判斷條件語(yǔ)句的值是否為True,如果為True瓤檐,執(zhí)行語(yǔ)句塊赂韵,F(xiàn)alse執(zhí)行下面的其他語(yǔ)句。
例子:判斷年齡
要求:判斷年齡是否大于18挠蛉,如果大于18輸出成年人
age = 12
if age > 18:
print("成年人")
練習(xí):判斷一個(gè)數(shù)是否是偶數(shù)祭示,是的打印‘xxx是偶數(shù)’
num = 23
if num % 2 == 0:
print('xxx是偶數(shù)')
第二種常用形式
if 條件語(yǔ)句1:
執(zhí)行語(yǔ)句塊1
else:
執(zhí)行語(yǔ)句塊2
判斷條件語(yǔ)句是否為True,如果為True谴古,就執(zhí)行語(yǔ)句塊1质涛,否則執(zhí)行語(yǔ)句塊2.
判斷一個(gè)數(shù)是否是偶數(shù)稠歉,是的打印‘xxx是偶數(shù)’,不然就打印‘xxx是奇數(shù)’汇陆。
if num % 2 == 0:
print('%d是偶數(shù)'%(num))
else:
print('%d是奇數(shù)'%(num))
練習(xí):輸入一個(gè)數(shù)怒炸,如果這個(gè)數(shù)大于10就輸出他的二倍值,否則輸出這個(gè)數(shù)的二次冪
num = 2
if num > 10:
num = num * 2
print(num)
else:
print(num**2)
2. input 語(yǔ)句
input():從控制臺(tái)獲取鍵盤輸入的一個(gè)字符串毡代,以回車結(jié)束阅羹。
也就是說(shuō):程序執(zhí)行到input函數(shù)的時(shí)候,程序就會(huì)停下來(lái)教寂,等待用戶從鍵盤輸入并且以回車結(jié)束灯蝴,然后才會(huì)往下執(zhí)行。
inputvalue = input("請(qǐng)您輸出數(shù):")
print(inputvalue)
print(type(inputvalue))
new_value = int(inputvalue) # input()默認(rèn)輸出是字符串類型孝宗,要按要求轉(zhuǎn)換成各種類型。比較預(yù)算符合和+耕肩,*因妇,在運(yùn)算的時(shí)候,兩邊都可以是數(shù)字猿诸,或者都是字符串婚被,但不能一邊是字符串一邊是數(shù)字莉炉。
if new_value > 10:
num = new_value * 2
print(num)
else:
num = new_value ** 2
print(num)
第三種常用形式
elif 可以按情況寫很多很多個(gè)
練習(xí):成績(jī)分類
判斷成績(jī)是
優(yōu)秀(90-100)
良好(80-89)
中等(60-79)
不及格(60以下)
grade = 90
if 0 <=grade < 60:
if grade < 0:
print('成績(jī)有誤')
else:
print('不及格')
elif grade < 80:
print('中等')
elif grade < 90:
print('良好')
elif grade <= 100:
print('優(yōu)秀')
else:
print('成績(jī)有誤')
練習(xí):年齡判斷
嬰兒(0-1歲)休雌、兒童(2-4歲)、少年(5-12)诚纸、青年(13-18)
成年(19-40)窜觉,中年(41-60)谷炸,老年(60-)
age = input()
int_age = int(age)
if int_age < 2:
if int_age > 0:
print('嬰兒')
else:
print('錯(cuò)誤')
elif int_age < 5:
print('兒童')
elif int_age < 13:
print('少年')
elif int_age < 19:
print('青年')
elif int_age < 41:
print('成年')
elif int_age < 61:
print('中年')
else:
print('老年')
3. pass語(yǔ)句
pass:占位,防止因?yàn)闆](méi)有寫塊結(jié)構(gòu)而出現(xiàn)禀挫。
if age == 10:
pass
十二旬陡、for 循環(huán)
1.格式與執(zhí)行過(guò)程
python中的for循環(huán)只有for-in循環(huán)
格式:
for 變量名 in 列表:
循環(huán)體
執(zhí)行過(guò)程:使用變量去依次獲取列表中的數(shù)據(jù)直到獲取完為止;
每獲取一個(gè)數(shù)據(jù)语婴,執(zhí)行一次循環(huán)體描孟。
循環(huán)次數(shù):由列表中的數(shù)據(jù)的個(gè)數(shù)決定
例子
去獲取字符串中每一個(gè)字符
str1 = 'abcdefjsajikldjfpjapifosiorekdljs'
for char in str1:
print(char)
# 去統(tǒng)計(jì)一個(gè)字符串中’a‘出現(xiàn)的次數(shù)
num = 0
for char_a in str1:
if ord(char_a) == 97:
num = num + 1
print(num)
# 其他做法
count = 0
for char in str1:
if char == "a":
count += 1
print(count)
2.range語(yǔ)句
range函數(shù): 可以生成一個(gè)數(shù)值范圍
用法1: range(n), 生成0~(n-1)的值
print(range(10))
for x in range(10):
print(x)
用法2:range(m,n),生成 m ~ (n-1)的數(shù)
for x in range(2,10):
print(x)
# 打印1-100
for x in range(1,101):
print(x)
# 打印0-100之間所有的偶數(shù)
num = 0
for x in range(101):
if x % 2 == 0:
print(x)
用法3: range(m,n,step):從m開始每step取一個(gè)數(shù)砰左,取到(n-1)為止
step:步數(shù)
for x in range(1,101,2):
print(x)
例子
不通過(guò)字符串相乘匿醒,打印10遍‘=’
注意:編程規(guī)范:如果循環(huán)中的變量取到的值沒(méi)有意義,循環(huán)只是單純的控制次數(shù)缠导,這個(gè)時(shí)候for后面的變量名一般都用“_”代替
for _ in range(10):
print("=",end='')
求1+2+3+...+100
sum1=0
for x in range(101):
sum1 += x
print(sum1)
求10廉羔!
num1 = 1
for x in range(1,11):
num1 *= x
print(num1)
十三、while 循環(huán)
1. 格式與執(zhí)行過(guò)程
格式:
while 條件語(yǔ)句:
循環(huán)體
執(zhí)行過(guò)程:
判斷條件語(yǔ)句結(jié)果是否為真僻造,如果為真就執(zhí)行一次循環(huán)體蜜另。
執(zhí)行完后再次判斷條件語(yǔ)句是否為真适室,為真的話又執(zhí)行循環(huán)體。
重復(fù)這個(gè)過(guò)程举瑰,直到條件語(yǔ)句結(jié)果為False.
例子
打印1-100
x = 1
while x <= 100:
print(x)
x += 1
計(jì)算1+2+3+...+100
看代碼捣辆,一句一句讀,看邏輯此迅,一定要寫出來(lái)那些變量的變化汽畴。
x = 1
num = 0
while x <= 100:
num += x
x +=1 #num = num + 1
print(num)
求1-100中所有偶數(shù)的和(while循環(huán))
x =0
sum1 = 0
while x <= 100:
sum1 += x
x += 2
print(sum1)
# 第二種方法
num = 0
sum1 = 0
while num <= 100:
if num % 2 == 0:
sum1 += num
num += 1
print(sum1)