-
Python之while循環
和 for 循環不同的另一種循環是 while 循環,while循環可以繼續進行下去的條件更加簡單,只需要判斷while循環的條件是否為True即可,當條件為True時,即繼續運行下去。
比如:while True: ? ? print(1)
在上述代碼中,由于while的條件一直為True,所以這個代碼將會無限的輸出1,同學們不要輕易嘗試。
我們可以把while循環的條件設置得復雜一些,在運行一定次數后,條件可以自動變為False從而跳出while循環。
比如計算1~100的和。num = 1 sum = 0 while num <= 100: ? ? sum = sum + num # 注意縮進 ? ? num = num + 1 # 注意縮進 print(sum) # ==> 5050
在上述代碼中,while的判斷條件是num <= 100,當num小于或者等于100時,循環會繼續下去,但當num > 100時,將跳出循環;因為在while循環里面num不斷加1,所以num最終會大于100,因此while循環不會無限進行下去。
# Enter a code
num = 1
sum = 0
while num <= 100:
? ? sum = sum + num
? ? num = num + 1
print(sum)
查看全部 -
for循環在Python語言的流程控制中是非常重要的,在編程中有很多場景需要使用到for循環。舉個例子,當我們需要把字符串中的每一個字符打印出來的時候,我們怎么實現呢?
我們當然可以使用之前學習的指定位置的方式讓每個字符打印出來。s = 'ABCD'
print(s[0])
print(s[1])
print(s[2])
print(s[3])但是,這是字符串s比較短的情況下可以實現的,當s擁有成千上萬個字符的時候,難道我們要為此書寫上萬行代碼嗎?這個時候for循環就可以派上用場了。
s = 'ABCD'
for ch in s:
? ? print(ch) # 注意縮進在上述代碼中,ch是在for循環中定義的,意思是把字符串s中的每一個元素依次賦值給ch,然后再把ch打印出來,直到打印出字符串s的最后一個字符為止。
任務
班里考試后,老師要統計幾位同學的平均成績,已知5位同學的成績用list表示如下:
L = [75, 92, 59, 68, 99]
請利用for循環計算出平均成績。#-*- coding: utf-8 -*-
s='ABCD'
print(s[0])
print(s[1])
print(s[2])
print(s[3])
a='for循環'
print(a)
for ch in s:
? ? print(ch)
? ??
b='利用for循環打印出平均成績'
print(b)
L=[75,92,68,99]
sum = 0.0
for X in L:
? ? sum = sum + X
print(sum / 5)
查看全部 -
if-elif-else語句
這一系列條件判斷會從上到下依次判斷,如果某個判斷為 True,執行完對應的代碼塊,后面的條件判斷就直接忽略,不再執行了。
查看全部 -
在Python規范中,一般使用4個空格作為縮進
在if語句的最后,有一個冒號:,這是條件分支判斷的格式,在最后加入冒號:,表示接下來是分支代碼塊
查看全部 -
Python之if-elif-else語句
在100分的考試當中,分數達到或超過90分是頂尖的,達到或超過80分是優秀的,如果想對達到或者超過60分的學生進行不同的分類,使用if-else進行判斷,代碼如下:
score = 59 if score < 60: ? ? print('抱歉,考試不及格') else: ? ? if score >= 90: ? ? ? ? print('恭喜你,拿到卓越的成績') ? ? else: ? ? ? ? if score >= 80: ? ? ? ? ? ? print('恭喜你,拿到優秀的成績') ? ? ? ? else: ? ? ? ? ? ? print('恭喜你,考試及格')
在這個程序里,我們做了多次分類,第一次,我們把低于60分和大于等于60分的分開,第二次,我們把大于等于90分和小于90分的分開,第三次,我們把大于等于80分和小于80分的分開。
這樣寫,我們得到一個兩層嵌套的if-else語句,這樣的實現可以滿足我們的要求,但是如果繼續增加條件,比如繼續判斷高于70分和低于70分的話,那么這個代碼將會縮進越來越多,代碼邏輯看起來也不夠清晰。
我們可以使用if-elif-else語句來簡化以上的邏輯。其中elif就是else if的意思。score = 59 if score < 60: ? ? print('抱歉,考試不及格') elif score >= 90: ? ? print('恭喜你,拿到卓越的成績') elif score >= 80: ? ? print('恭喜你,拿到優秀的成績') else: ? ? print('恭喜你,考試及格')
這樣,我們就可以寫出代碼結構非常清晰的一系列條件判斷了。
特別注意: 這一系列條件判斷會從上到下依次判斷,如果某個判斷為 True,執行完對應的代碼塊,后面的條件判斷就直接忽略,不再執行了。
請思考以下代碼將會輸出什么?為什么不輸出恭喜你,拿到卓越的成績。score = 95 if score < 60: ? ? print('抱歉,考試不及格') elif score >= 80: ? ? print('恭喜你,拿到優秀的成績') elif score >= 90: ? ? print('恭喜你,拿到卓越的成績') else: ? ? print('恭喜你,考試及格')
任務
如果年齡達到18歲,則是成年人,如果年齡6歲到18歲,則是青少年,如果年齡3歲到6歲,則是小孩子,如果年齡在3歲以下,則是嬰兒,請使用if-elif-else語句實現邏輯,如果成年,輸出'adult',如果是青少年,輸出'teenager',如果是小孩子,輸出kid,如果是嬰兒,輸出baby。
查看全部 -
Python的字符串切片
我們可以使用位置的方式取出字符串中特定位置的字符,按照位置取字符串的方式使用中括號[]訪問,這個時候可以把字符串看作是一個列表
在程序的世界中,計數是從0開始的,使用0來表示第一個
切片(用來獲取字符串的一部分):在中括號[]中填入兩個數字,中間用冒號分開,表示子串的開始位置和結束位置,并且這是半閉半開區間,不包括最后的位置
查看全部 -
Python的字符串編碼
最早的計算機在設計時采用8個比特(bit)作為一個字節(byte),所以,一個字節能表示的最大的整數就是255(二進制11111111=十進制255)
0 - 255被用來表示大小寫英文字母、數字和一些符號,這種編碼方式被稱為ASCII編碼,比如大寫字母 A 的編碼是65,小寫字母 z 的編碼是122
Unicode通常用兩個字節表示一個字符,原有的英文編碼從單字節變成雙字節,只需要把高字節全部填為0就可以
在python3中,默認使用UTF-8 Unicode來進行編碼
查看全部 -
Python的字符串format
字符串format由兩個部分組成,字符串模板和模板數據內容組成,通過大括號{},就可以把模板數據內容嵌到字符串模板對應的位置。
如果模板中{}比較多,則容易錯亂,那么在format的時候也可以指定模板數據內容的順序。
除了使用順序,還可以指定對應的名字,使得在format過程更加清晰。
查看全部 -
\轉義字符串
\n表示換行
\t 表示一個制表符
\\表示 \ 字符本身查看全部 -
round(*,?)? 保留小數點后若干位查看全部
-
// 地板除? 忽略答案小數部分查看全部
-
請分別使用循環和遞歸的形式定義函數,求出1~100的和。
# coding=utf-8
def sum1(n):
? ? if n==1:
? ? ? ? return 1
? ? else:
? ? ? ? return n+(sum1(n-1))
print(sum1(100))
def sum2():
? ? sum=0
? ? for i in range(1,101):
? ? ? ? sum=sum+i
? ? return sum
print(sum2())
查看全部 -
請實現函數func,當參數類型為list時,返回list中所有數字類型元素的和,當參數類型為tuple時,返回tuple中所有數字類型元素的乘積。
# Enter a code
def func(param):
? ? if isinstance(param,list):
? ? ? ? result =0
? ? ? ? for item in param:
? ? ? ? ? ? if isinstance(item,int) or isinstance(item,float):
? ? ? ? ? ? ? ? result=result+item
? ? ? ? return result
? ? elif isinstance(param,tuple):
? ? ? ? result=1
? ? ? ? for item in param:
? ? ? ? ? ? if isinstance(item,int) or isinstance(item,float):
? ? ? ? ? ? ? ? result=result*item
? ? ? ? return result
? ? else:
? ? ? ? return None
l=(1,2,3,"4",5)? ?
print(func(l))
查看全部 -
3.1415926符點數
'Learn Python in imooc字符串
0b1101整數
100整數查看全部 -
3.1415926浮點數
'Learn Python in imooc.'字符串
100整數
0b1101整數查看全部
舉報