1.if語句
1.if
if 條件語句:
代碼塊
其他與句
執行過程:先判斷條件語句是否為True,如果是執就行代碼塊,執行完代碼塊再執行其他語句。如果是False,直接執行其他語句
2.if--else
if 條件語句:
代碼塊1
else:
代碼塊2
其他與句
執行過程:先判斷條件語句是否為True,如果是就執行代碼塊1,執行完代碼塊1在執行其他與句如果是False,執行代碼塊2,執行完代碼塊2,在執行其他語句
3. if-elif-elif-...-else
if 條件語句1:
代碼塊1:
elif 條件語句2:
代碼塊2
else:
代碼塊3
其他與句
執行過程:先判斷條件語句1是否為True,如果為True就執行代碼塊1,執行完代碼塊1,在執行其他語句。
如果條件語句1是False,就判斷條件語句2是否為True:
如果條件語句2為True,就執行代碼塊2,執行完代碼塊2,在執行其他與句
如果條件語句3為False,就執行代碼塊3,執行完在執行其他語句
- 給一個學生的成績,判斷成績優秀(90-00)、良好(70-89)、及格(60-69)、不及格(0-59)
score=110
if 90<=score<=100:
print('優秀')
elif 70<=score<=89:
print('良好')
elif 60<=score<=69:
print('及格')
elif 0<=score<59:
print('不及格')
else:
print('成績有誤,請重新輸入!')
結果
成績有誤,請重新輸入!
4.if語句可以嵌套使用
if 條件語句1:
if 條件語句2:
執行語句塊2
else:
執行語句塊3
else:
執行語句塊4
- 練習:給一個數字,如果是偶數就打印'xxx偶數',是偶數并且還能被4整除就打印'XXX是4的倍數,否則打印'xxx基數''
是偶數 ---> 打印'xxx是偶數' --->如果還能被4整除。
number=12
if isinstance(number,int):
print('是整數')
if number%2:
print(str(number)+('是奇數'))
else:
print(str(number)+('是偶數'))
if not number%4:
print(str(number)+('是4的倍數'))
結果:
是整數
12是偶數
12是4的倍數
5.判斷數據的類型
isinstance(值,類型名) --> 判斷指定的值是否是指定的類型,如果是結果是True,否是結果是False
print(isinstance(10,int)) # 判斷10是否是int類型
print(isinstance(10.0,float))
結果:
True
True
2.類型的強制轉換
數據類型裝換:類型名(被轉換的數據)
int(整型) float(浮點型) bool(布爾) str(字符串)
1.其他的數據類型裝換成整型
浮點型轉換整型:只保留整數部分
布爾類型:True ->1 False ->0
字符串:去掉字符串的引號后,剩下的部分本身就是一個整型數據的字符串才能轉換成整數。
print(int(12.9))
print(int(True));print(int(False))
print(int('12'))
結果:
12
1
0
12
2.其他的數據類型轉換成浮點型:float()
整型:在整數后面加一個'.0'布爾類型: True ->1.0 False ->0.0
字符串:去掉字符串的引號后,剩下的部分本身就是一個整型或者浮點型數據的字符串才能轉換成整數。
print(float(100))
print(float(True));print(float(False))
print(float('100'))
結果:
100.0
1.0
0.0
100.0
3.其他類型的數據轉換成布爾類型:bool()
不管什么類型的數據都可以裝換成布爾值
整數中,除了0會轉換成False其他的都會轉換成True
總結:所有為0,或者為空的值都會裝換成False,其他的值都是True
print(bool(''))
if 12:
print(123)
else:
print('!!!')
結果:
False
123
判斷一個字符串是否是空串(字符串長度為0)空串就是:' '," "
str1=''
# 方法1
if str1 =='':
print('空串')
else:
print('不是空串')
結果:
空串
str1=''
# 方法2
if len(str1)==0:
print('空串')
else:
print('不是空串')
結果:
空串
str1=''
number=str1
if str1:
print('不是空串')
else:
print('是空串')
結果:
是空串
判斷一個數字是否為0
number=10
if number:
print('非零')
else:
print('零')
結果:
非零
4.其他類型的數據轉換成字符串:str()
不管什么類型的數據都能轉換成字符串
其他數據轉換成字符串時,直接在數據外層加引號
print(str(152))
結果:
152
3.for循環
需要重復執行某個過程,就可以使用循環。python中的循環有 for循環和while循環
- for循環:
for 變量名 in 序列:
循環體
for:關鍵字
變量名:和聲明變量時的變量名要求是一樣的,功能是存儲值
in:關鍵字,在。。。里的意思
序列:容器類型的數據。字符串、列表、字典、元組、集合等
循環體:會重復執行的代碼塊
執行過程:使用變量去序列中取數據,一個一個的取,直到取完為止。每取一個值,執行一次循環體
for char in 'abcd123':
print(char)
print('!')
結果:
a
!
b
!
c
!
d
!
1
!
2
!
3
!
2.range函數
xrange是python.x中的函數,在python3.x中使用range代替了
range功能:產生指定范圍的數字序列。一般用在for循環中、控制循環次數?;蛘弋a生索引值。
range(n):產生 0 ~ n-1的整數序列
range(m,n):產生 m~n-1 的整數序列
range(m,n,step):從m開始,每次加step產生下一個數字,直到n前面一個數字為止。
range():產生數字0,1,2,3,4,5,6,7,8,9
for x in range(10):
print(x)
print('=======')
結果:
0
1
2
3
4
5
6
7
8
9
=======
range(10,20):產生數字:10~19
for x in range(10,20):
print(x)
print('=======')
結果:
10
11
12
13
14
15
16
17
18
19
=======
range(1,10,2):產生數字:1,3,5,7,9
for x in range(1,10,2):
print(x)
結果:
1
3
5
7
9
練習:1+2+3+.....+100
a=0 # 聲明一個變量來存和
for num in range(1,101):
a+=num
print(a)
結果:
5050
練習:只使用一個循環
計算123...10
在計算24*..10
for x in range(1,11):
a1*=x
# 判斷x是否是偶數
if x%2 ==0:
a2*=x
print(a1)
print(a2)
結果:
3628800
3840
練習2:有一個字符串'abcdef',依次取出字符串中偶數位(下標值是偶數)上的字符
0~len-1
方法1
str1='abcdef'
# 循環取出字符串所有的偶數下標
# index=0,2,4
for index in range(0,len(str1),2):
print(str1[index])
結果:
a
c
e
方法2
循環取出字符串中每個字符的下標
# 判斷下標是否為偶數
# 循環取出字符串中每個字符的下標
# 判斷下標是否為偶數
str1='abcdef'
for index in range(0,len(str1)):
if index%2==0:
print(str1[index])
結果:
a
c
e
方法3
str1='abcdef'
index=0
for char in str1:
if index%2==0:
print(char)
index+=1
結果:
a
c
e
4while循環
while 條件語句:
循環體
其他語句
while:關鍵字
條件語句:結果True,或者是False
循環體:重復執行的代碼段
執行過程:判斷條件語句是否為True,如果為True就執行循環體。
執行完循環體再判斷條件語句是否為True,如果為True就在執行循環體....
直到條件語句的值為False,循環結束,直接執行while循環后面的語句
注意:如果條件語句的結果一直是True,就會造成死循環。所以在循環體中要有讓循環可以結束的操作。
python中沒有do-while循環
使用while循環計算1+2+3+...+100
number=1 # 保存數1-100
sum1=0 # 保存和
while number<=100:
sum1+=number
# 每次循環讓number值加1
number+=1
print(sum1)
結果:
5050
練習:計算 2+4+6+...+100
number=2
sum2=0
while number<=100:
sum2+=number
number+=2
print(sum2)
結果:
2550
5continue和break
break和continue兩個關鍵字,都是作用于循環當中,用來結束循環的。
continue:關鍵字,在循環體中遇到continue就結束單次循環,直接進入下次循環的判斷
(如果是for循環,就讓變量去取下一個值。如果是while循環就去判斷while后面的條件語句是否為True)
for x in range(10):
print(x)
continue # 不執行continue后面的語句,直接讓x取下一個值
#結果 0-9
for x in range(10):
if x%2:
continue
print(x)
#結果:0,8,4,6,8
break:關鍵字,在循環體中遇到break,就直接結束整個循環。直接執行循環后面的其他語句
for x in range(10):
print(x)
break
print('=====')
print('!!!!!')
結果:
0
!!!!!
通過改變條件語句的值,來結束循環
num=1
while num<=100:
print(num)
num+=1
#結果:1-100
使用break結束死循環
num=1
while True:
if num>100:
break
print('==:',num)
num+=1
#結果:==:1-100
練習:找出100-1000以內第一個能被3整除同時能夠被17整除的數
num=100
while num<=1001:
if num%3==0 and num%17==0:
break
num+=1
print(num)
結果:
102
for x in range(100,1001):
if x%3==0 and x%17==0:
print(x)
break
結果:
102
6.for和while的選擇以及循環嵌套
1.for和while的選擇
for循環的循環次數是確定的,while循環的循環次數可以不確定
1.循環次數不確定的時候,選擇while循環。確定一般使用for循環
2.通過循環遍歷一個序列中的值,使用for循環
2.input()
接收從控制臺輸入的數據(輸入的數據以回車結束)
程序中遇到input()函數,程序會阻塞,等待用戶輸入完成后,才會接著執行后面的代碼
使用value去保存從控制臺輸入的數據value=input()
print('=====')
3.產生隨機數
python中有一個內置模塊,可以產生隨機數: random
randint(m,n):產生一個m~n的隨機數(整數)
# 導入random模塊
import random
# 產生100-200的隨機數
number=random.randint(100,200)
print(number)
結果:
123
練習題
讀程序,總結程序的功能:
numbers=1
for i in range(0,20):
numbers*=2
print(numbers)
程序的功能是:實現2^20,結果是1048576
summation=0
num=1
while num<=100:
if (num%3==0 or num%7==0) and num%21!=0:
summation += 1
num+=1
print(summation)
程序的功能是:在1到100之間包括100,能被3或7整除,但是不能被21整除的個數。
結果:39
編程實現(for和while各寫?遍):
- 求1到100之間所有數的和、平均值
for循環
num=0
for x in range(1,101):
num+=x
print(num/100)
結果:
50.5
while循環
num1=0
num2=1
while num2<=100:
num1+=num2
num2+=1
print(num1/100)
結果:
50.5
- 計算1-100之間能3整除的數的和
for循環
num=0
for x in range(1,101):
if x%3==0:
num+=x
print(num)
結果:
1683
while循環
num1=0
num2=3
while num2<=100 :
if num2%3==0:
num1+=num2
num2+=3
print(num1)
結果:
1683
- 計算1-100之間不能被7整除的數的和
for循環
num=0
for x in range(1,101):
if not x%7==0:
num+=x
print(num)
結果:
4315
while循環
num1=0
num2=1
while num2<=100 :
if not num2%7==0:
num1+=num2
num2+=1
print(num1)
結果:
4315