python-day4

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
在計算2
4*..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. 求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. 計算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. 計算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
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,224評論 6 529
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 97,916評論 3 413
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 175,014評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,466評論 1 308
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,245評論 6 405
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,795評論 1 320
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 42,869評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,010評論 0 285
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,524評論 1 331
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,487評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,634評論 1 366
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,173評論 5 355
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 43,884評論 3 345
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,282評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,541評論 1 281
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,236評論 3 388
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,623評論 2 370

推薦閱讀更多精彩內容

  • 第2章 基本語法 2.1 概述 基本句法和變量 語句 JavaScript程序的執行單位為行(line),也就是一...
    悟名先生閱讀 4,181評論 0 13
  • 一、Java 簡介 Java是由Sun Microsystems公司于1995年5月推出的Java面向對象程序設計...
    子非魚_t_閱讀 4,222評論 1 44
  • 文|素餡丸子 她叫王天宇,王子的王,天下的天,宇宙的宇。14歲那年,明艷如她,跋扈如她,我行我素如她,是我觸不到的...
    素餡丸子閱讀 3,033評論 41 55
  • 在別人眼里,我是一個無拘無束大大咧咧的姑娘,這也是給人最深刻的印象吧。如果你向別人問起我,無非是我是個熱心腸...
    點點的小秘密閱讀 336評論 1 1
  • 這個方法好,記住當你讀書之后,阿澤搭訕 送給正在成功路上的你們?? 什么叫做成功?其實,你選擇了你愿意努力的人生,...
    天涯海角_a50e閱讀 337評論 0 1