Python——簡單A+B
題目來自NEUQ OJ(2.7)
1003: A+B(基本輸入輸出3)
描述題目描述:
輸入兩個數A,B,輸出A+B的值。
輸入:
多組資料:每組由兩個整數(a和b)構成,a和b之間用空格隔開,每組輸入單獨佔一行。
當輸入為 0 0 時,輸入結束。0 0這組資料不處理。
輸出:
對於每一組測試用例,輸出齊對應的和,每組資料一行。
樣例輸入1 2
3 4
10 20
0 0
3
7
30
程式碼如下:
while(1): try: a,b=map(int,raw_input().split()) if a!=0 or b!=0: sum=a+b print sum elif a==0 and b==0: break; except: break
前幾天聽一個大佬教育我,學一個語言可以先不要系統的學,先學習框架,然後在做題的時候找到自己需要什麼,然後再通過百度啊問大佬啊,這樣的方法,效果會更好。
然後,我就聽取了大佬的意見,果然是受益匪淺。
閒言少敘,就來解析一下這段程式碼需要的知識吧!
①
while迴圈:
(資料來源於http://www.runoob.com/python/python-while-loop.html)
while 判斷條件:
執行語句……
例項 #!/usr/bin/python count = 0 while (count < 9): print 'The count is:', count count = count + 1 print "Good bye!"
輸出:
The count is:0
The count is: 1
The count is: 2
The count is: 3
The count is: 4
The count is: 5
The count is: 6
The count is: 7
The count is: 8
Good bye!
while 語句時還有另外兩個重要的命令 continue,break 來跳過迴圈,continue 用於跳過該次迴圈,break 則是用於退出迴圈,此外"判斷條件"還可以是個常值,表示迴圈必定成立,具體用法如下:# continue 和 break 用法 i = 1 while i < 10: i += 1 if i%2 > 0: # 非雙數時跳過輸出 continue print i # 輸出雙數2、4、6、8、10 i = 1 while 1: # 迴圈條件為1必定成立 print i # 輸出1~10 i += 1 if i > 10: # 當i大於10時跳出迴圈 break
如果條件判斷語句永遠為 true,迴圈將會無限的執行下去,如下例項:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
var = 1
while var == 1 : # 該條件永遠為true,迴圈將無限執行下去
num = raw_input("Enter a number :")
print "You entered: ", num
print "Good bye!"
以上例項輸出結果:
Enter a number :20You entered:20Enter a number :29You entered:29Enter a number :3You entered:3Enter a number between :Traceback(most recent call last):File"test.py", line 5,in<module> num = raw_input("Enter a number :")KeyboardInterrupt
注意:以上的無限迴圈你可以使用 CTRL+C 來中斷迴圈。
‘’‘
這裡補充一句,我延續了c++裡的寫法,即while(1)
’‘’
在 python 中,while … else 在迴圈條件為 false 時執行 else 語句塊:
#!/usr/bin/python
count = 0
while count < 5:
print count, " is less than 5"
count = count + 1
else:
print count, " is not less than 5"
以上例項輸出結果為:
0is less than 51is less than 52is less than 53is less than 54is less than 55isnot less than 5
類似 if 語句的語法,如果你的 while 迴圈體中只有一條語句,你可以將該語句與while寫在同一行中, 如下所示:
#!/usr/bin/python
flag = 1
while (flag): print 'Given flag is really true!'
print "Good bye!"
注意:以上的無限迴圈你可以使用 CTRL+C 來中斷迴圈。
②
if && else
以下內容來自http://www.runoob.com/python/python-if-statement.html
Python程式語言指定任何非0和非空(null)值為true,0 或者 null為false。
Python 程式設計中 if 語句用於控制程式的執行,基本形式為:
if 判斷條件:
執行語句……
else:
執行語句……
其中"判斷條件"成立時(非零),則執行後面的語句,而執行內容可以多行,以縮排來區分表示同一範圍。
else 為可選語句,當需要在條件不成立時執行內容則可以執行相關語句,具體例子如下:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
# 例1:if 基本用法
flag = False
name = 'luren'
if name == 'python': # 判斷變數否為'python'
flag = True # 條件成立時設定標誌為真
print 'welcome boss' # 並輸出歡迎資訊
else:
print name # 條件不成立時輸出變數名稱
輸出結果為:
luren # 輸出結果
if 語句的判斷條件可以用>(大於)、<(小於)、==(等於)、>=(大於等於)、<=(小於等於)來表示其關係。
當判斷條件為多個值時,可以使用以下形式:
if 判斷條件1:
執行語句1……
elif 判斷條件2:
執行語句2……
elif 判斷條件3:
執行語句3……
else:
執行語句4……
例項如下:#!/usr/bin/python
# -*- coding: UTF-8 -*-
# 例2:elif用法
num = 5
if num == 3: # 判斷num的值
print 'boss'
elif num == 2:
print 'user'
elif num == 1:
print 'worker'
elif num < 0: # 值小於零時輸出
print 'error'
else:
print 'roadman' # 條件均不成立時輸出
輸出結果為:
roadman # 輸出結果
由於 python 並不支援 switch 語句,所以多個條件判斷,只能用 elif 來實現,如果判斷需要多個條件需同時判斷時,可以使用 or (或),表示兩個條件有一個成立時判斷條件成功;使用 and (與)時,表示只有兩個條件同時成立的情況下,判斷條件才成功。
#!/usr/bin/python
# -*- coding: UTF-8 -*-
# 例3:if語句多個條件
num = 9
if num >= 0 and num <= 10: # 判斷值是否在0~10之間
print 'hello'
# 輸出結果: hello
num = 10
if num < 0 or num > 10: # 判斷值是否在小於0或大於10
print 'hello'
else:
print 'undefine'
# 輸出結果: undefine
num = 8
# 判斷值是否在0~5或者10~15之間
if (num >= 0 and num <= 5) or (num >= 10 and num <= 15):
print 'hello'
else:
print 'undefine'
# 輸出結果: undefine
當if有多個條件時可使用括號來區分判斷的先後順序,括號中的判斷優先執行,此外 and 和 or 的優先順序低於>(大於)、<(小於)等判斷符號,即大於和小於在沒有括號的情況下會比與或要優先判斷。③
邏輯運算子 以下內容來自:http://www.yiibai.com/python/logical_operators_example.html
Python語言支援以下邏輯運算子。假設變數a
的值為True
,變數b
的值為False
,那麼 -
運算子 | 描述 | 示例 |
---|---|---|
and |
如果兩個運算元都為真,則條件成立。 | (a and b) 的結果為False |
or |
如果兩個運算元中的任何一個非零,則條件成為真。 | (a or b) 的結果為True |
not |
用於反轉運算元的邏輯狀態。 | not(a and b) 的結果為True |