Day4-Python-循環(huán)和分之學(xué)習(xí)-2018/7/19

1.if

if 條件語句:
&代碼塊
其他語句

執(zhí)行過程:先判斷條件語句是否為True,如果是True就執(zhí)行代碼塊,執(zhí)行完代碼塊再執(zhí)行其他語句。 如果是False,直接執(zhí)行其他語句

2.if--else

if 條件語句:
代碼塊1
else:
代碼塊2
其他語句

執(zhí)行過程:先判斷條件語句是否為True,如果為True就執(zhí)行代碼塊1,執(zhí)行完代碼塊1再執(zhí)行其他語句。 如果是False,執(zhí)行代碼塊2,執(zhí)行完代碼塊2,再執(zhí)行其他語句

3.if-elif-elif-...-else

if 條件語句1:
代碼塊1
elif 條件語句2:
代碼塊2
else:
代碼塊3
其他語句

執(zhí)行過程: 先判斷條件語句1是否為True,如果為True就執(zhí)行代碼塊1,執(zhí)行完代碼塊1再執(zhí)行其他語句。 如果條件語句1是False,就判斷條件語句2是否為True: 如果條件語句2為True就執(zhí)行代碼塊2,執(zhí)行完代碼塊2再執(zhí)行其他語句 如果條件語句2為False就執(zhí)行代碼塊3,執(zhí)行完代碼塊3再執(zhí)行其他語句

給一個學(xué)生的成績,判斷成績是優(yōu)秀(90-100)、良好(70-89)、及格(60-69)、不及格(0-59)

score  = -40
if 90<=score<=100:
    print('優(yōu)秀')

elif 70<=score<90:
    print('良好')

elif 60<=score<70:
    print('及格')

elif 0<=score<60:
    print('不及格')
else:
    print('成績有誤!!')

print('======')

4.if語句可以嵌套使用

if 條件語句1:
if 條件語句2:
執(zhí)行語句塊2
else:
執(zhí)行語句塊3
else:
執(zhí)行語句塊4

練習(xí):給一個數(shù)字(整數(shù)),如果是偶數(shù)就打印‘xxx是偶數(shù)’,是偶數(shù)并且還能被4整除就打印‘xxx是4的倍數(shù)’,否則打印‘xxx是奇數(shù)’

是偶數(shù) ---> 打印‘xxx是偶數(shù)’--->如果還能被4整除,打印‘xxx是4的倍數(shù)‘
是奇數(shù) ---> 打印’xxx是奇數(shù)‘

numer = 12
if numer%2 == 0:
    print('%d是偶數(shù)' % (numer))

    if numer % 4 == 0:
        print('%d是4的倍數(shù)' % (numer))
else:
    print('%d是奇數(shù)' % (numer))
if numer%2:
    print('奇數(shù)')
else:
    print('偶數(shù)')
if isinstance(numer, int):
    print('是整數(shù)')
    if numer % 2:
        print('奇數(shù)')
    else:
        print('偶數(shù)')
        if not (numer % 4):
            print('是4的倍數(shù)')

print('=====')



5.判斷數(shù)據(jù)的類型

isinstance(值,類型名) --> 判斷指定的值是否是指定的類型,如果是結(jié)果是True,否則結(jié)果是False

print(isinstance(10, int)) # 判斷10是否是int類型
print(isinstance(12.0, int))



數(shù)據(jù)類型轉(zhuǎn)換:類型名(被轉(zhuǎn)換的數(shù)據(jù))

int、 float、 bool、 str

1.其他的數(shù)據(jù)類型轉(zhuǎn)換成整數(shù):int()

浮點型:只保留整數(shù)部分
布爾類型:True -> 1 False -> 0
字符串類型:去掉字符串的引號后,剩下的部分本身就是一個整形數(shù)據(jù)的字符串,才能轉(zhuǎn)換成整數(shù)。

print(int(12.9),type(int(12.9)))
print(int(True),int(False))
print(int('-12'))

2.其他的數(shù)據(jù)類型轉(zhuǎn)換成浮點型:float()

整型:在整數(shù)后面加一個'.0'
布爾類型:True -> 1.0 False -> 0.0
字符串:去掉字符串的引號后,剩下的部分本身就是一個整型或者浮點型數(shù)據(jù)的字符串,才能轉(zhuǎn)換成浮點型。

print(float(123))
print(float(True))
print(float('+100.23'))

3.其他類型的數(shù)據(jù)轉(zhuǎn)換成布爾類型:bool()

不管什么類型的數(shù)據(jù)都可以轉(zhuǎn)換成布爾值 整數(shù)中,除了0會轉(zhuǎn)換成False,其他的都會轉(zhuǎn)換成True

總結(jié):所有為0為空的值都會轉(zhuǎn)換成False,其他的值都是True

print(bool('')),print(bool(0)),print(bool(0.0))


if 0:
    print('====')
else:
    print('!!!!')

判斷一個字符串是否是空串(字符串長度是0)

str1 = ''

# 方法1
if str1 == '':
    print('空串')
else:
    print('不是空串')
# 方法2
if len(str1) == 0:
    print('空串')
else:
    print('不是空串')
# 方法3
if str1:
    print('不是空串')
else:
    print('空串')

判斷一個數(shù)字是否是0

number = 10

# 方法1
if number == 0:
    print('是')
else:
    print('非')
# 方法2
if number:
    print('非')
else:
    print('是')

4.其他類型的數(shù)據(jù)轉(zhuǎn)換成字符串:str()

不管什么類型的數(shù)都可以轉(zhuǎn)換成字符串 其他數(shù)據(jù)轉(zhuǎn)換成字符串的時候,就是直接在數(shù)據(jù)的外層加引號

print(str(120),type(str(120)))



需要重復(fù)執(zhí)行某個過程,就可以使用循環(huán)。

python中的循環(huán)有for循環(huán)while循環(huán)。

1.for循環(huán):

for 變量名 in 序列:
循環(huán)體

for:關(guān)鍵字
變量名:和聲明變量時的變量名要求是一樣的,功能也是存儲值
in:關(guān)鍵字,在···里的意思
序列:容器類型的數(shù)據(jù)。字符串、列表、字典、元組、集合等
循環(huán)體:會重復(fù)執(zhí)行的代碼塊
執(zhí)行過程:使用變量去序列中取數(shù)據(jù),一個一個的取,取完為止。每取一個值,執(zhí)行一次循環(huán)體。

for char in 'abcd123':
    print(char)
    print('!')

print('====')

打印20次abc

2.range函數(shù)

xrange是python2.x中的函數(shù),在python3.x使用range函數(shù)代替

range功能是產(chǎn)生指定范圍的數(shù)字序列。一般用在for循環(huán)中,控制循環(huán)次數(shù)?;蛘弋a(chǎn)生索引值。
range(n):產(chǎn)生0~n-1的整數(shù)序列
range(m,n):產(chǎn)生m~n-1的整數(shù)序列
range(m,n,step):從m開始,每次加step產(chǎn)生下一個數(shù)字,直到n前一個

range(10):產(chǎn)生數(shù)字:0,1,2,3,4,5,6,7,8,9,

for x in range(10):
    print(x)

print('=======')

range(10,20):產(chǎn)生數(shù)字:10~19

for x in range(10,20):
    print(x)

print('+++++++')

range(0,10,2):產(chǎn)生數(shù)字:0,2,4,6,8

for x in range(0,10,2):
    print(x)

練習(xí):計算1+2+3+···+100

sum1 = 0  # 聲明一個變量來存和
for x in range(1,101):
    sum1 += x

print(sum1)

sum1 = 0
x在(1-100)
x = 1 sum1 += 1 = 0+1
x = 2 sum1 += 2 = 1+2
x = 3 sum1 += 3 = 1+2+3
···
x = 100 sum1 += 100 = 1+2+3+···+99+100

練習(xí):只使用一個循環(huán)

計算:123···10

計算:246···10

mul1 = 1
for x in range(1,11):
    mul1 *= x
print(mul1)

mul2 = 1
for x in range(2,12,2):
    mul2 *= x
print(mul2)


mul1 = 1
mul2 = 1
# 遍歷取出1-10中所有的數(shù)字
for x in range(1,11):
    mul1 *= x
    # 判斷x是否是偶數(shù)
    if x % 2 == 0:
        mul2 *= x 
print(mul1,mul2)

練習(xí)2:有一個字符串‘a(chǎn)bcdef’,依次取出字符串中偶數(shù)位(下標(biāo)值是偶數(shù))上的字符

# 0 ~ len-1
str1 = 'abcdef'

# 方法一:
# 循環(huán)取出字符串所有的偶數(shù)下標(biāo)
# index = 0,2,4
for index in range(0,len(str1),2):
    print(str1[index])
# 方法二:
# 循環(huán)取出字符串中每個字符的下標(biāo)
for index in range(0,len(str1)):
    # 判斷下標(biāo)是否是偶數(shù)
    if index % 2 == 0:
        print(str1[index])
    
print('======')
# 方法三:
index = 0
for char in str1:
    if index % 2 ==0:
        print(char)
    index += 1

index = 0
char = (abcdef)
char = a index = 0 print('a') index = 1
char = b index = 1 index = 2
char = c index = 2 print('c') index = 3
...



while循環(huán)

while 條件語句:
循環(huán)體
其他語句

while: 關(guān)鍵字
條件語句:結(jié)果是True,或者False
循環(huán)體: 重復(fù)執(zhí)行的代碼段
執(zhí)行過程:判斷條件語句是否為True,如果為True就執(zhí)行循環(huán)體。 執(zhí)行完循環(huán)體,再判斷條件語句是否為True,如果為True就再執(zhí)行循環(huán)體.... 直到條件語句的值為False,循環(huán)結(jié)束,直接執(zhí)行while循環(huán)后面的語句

注意:如果條件語句的結(jié)果一直都是True,就會造成死循環(huán)。所以在循環(huán)體要有讓循環(huán)可以結(jié)束的操作

python中沒有do-while循環(huán)

# 死循環(huán)
# while True:
#   print('aaa')

循環(huán)只執(zhí)行一次

flag = True
while flag:
    print('aaa')
    flag = False

使用while循環(huán)計算1+2+3+...+100

number = 1  # 保存數(shù)字1-100
sum1 = 0  # 保存和
while number <= 100:
    print(number)
    sum1 += number

    # 每次循環(huán)讓number值加1
    number += 1

print(sum1)

練習(xí):計算2+4+6+...100

number = 2
sum2 = 0
while number <= 100:
    sum2 += number
    number += 2

print(sum2,number)


breakcontinue兩個關(guān)鍵字,都是作用于循環(huán)當(dāng)中,用來結(jié)束當(dāng)次循環(huán)的。

continue: 關(guān)鍵字,在循環(huán)體中遇到continue,就結(jié)束當(dāng)次循環(huán),直接進(jìn)入下次循環(huán)的判斷
(如果是for循環(huán),就讓變量去取下一個值。如果是while循環(huán)就去判斷while后邊的條件語句是否為True)

for x in range(10):
    print(x)
    continue   # 不執(zhí)行continue后面的語句,直接讓x取下一個值
    print('====')

print('=====')
for x in range(10):
    if x % 2:
        continue
    print(x)  

break:關(guān)鍵字,在循環(huán)體中遇到break,就直接結(jié)束整個循環(huán)。直接執(zhí)行循環(huán)后邊的其他語句

for x in range(10):
    print(x)
    break
    print('======')
print('!!!!')

通過改變條件語句的值,來結(jié)束循環(huán)

numer = 1
while numer <= 100:
    print(numer)
    numer += 1

使用break結(jié)束死循環(huán)

numer = 1
while True:
    if numer > 100:
        break
    print('==:',numer)

    numer += 1

練習(xí):找出100-1000以內(nèi)第一個能夠被3整除同時能夠被17整除的數(shù)

for x in range(100,1001):
    if x%3==0 and x%17==0:
        print(x)
        # 找到第一個就不用再往下找了
        break


1.for和while的選擇

for循環(huán)的循環(huán)次數(shù)是確定的,white循環(huán)的循環(huán)次數(shù)可以不確定
1.循環(huán)次數(shù)不確定的時候,選擇while循環(huán)。次數(shù)確定一般使用for循環(huán)
2.通過循環(huán)遍歷一個序列中的值,使用for循環(huán)

2.input()

input():接收從控制臺輸入數(shù)據(jù)的數(shù)據(jù)(輸入的數(shù)據(jù)以回車結(jié)束)
程序中遇到input()函數(shù),程序會阻塞,等待用戶輸入完成后,才會接著執(zhí)行后面的代碼

使用value去保存從控制臺輸入的數(shù)據(jù)

value = input()

print('=====')

3.產(chǎn)生隨機數(shù)

python中有一個內(nèi)置模塊,可以產(chǎn)生隨機數(shù):random

randint(m,n):產(chǎn)生一個m~n的隨機數(shù)(整數(shù))

導(dǎo)入random模塊

import random

產(chǎn)生100-200的隨機數(shù)

number = random.randint(100,200)
print(number)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容