通過for循環求和,結果發現輸出完全不一樣,一個循環是輸出每一步的結果,另一個循環是輸出最終一次的結果,今天終于弄懂了。
如下所示:


補充:python中for循環輸出(index,value)的兩種方法
index索引
value索引值
方法一、利用enumerate()
list1=['a','s','d','g']
for index,value in enumerate(list1):
print('索引:%d,索引值:%s'%(index,value))
輸出結果:
索引:0,索引值:a
索引:1,索引值:s
索引:2,索引值:d
索引:3,索引值:g
方法二、利用range(len())
list1=['q','w','e','r']
for i in range(len(list1)):
print('索引:%d,索引值:%s'%(i,list1[i]))
輸出結果:
索引:0,索引值:q
索引:1,索引值:w
索引:2,索引值:e
索引:3,索引值:r
補充:Python 最基本的語法(輸入輸出,for循環)
Python-入門中的入門——打印日歷
歷程:
大一上半年C++書中的案例,連注釋帶上代碼一共二百行,當時自己C++寫了足足200行才解決。后來19年元旦自學python拿起這道題重寫,寫了60行。為了回憶python 語法重新寫了一遍,結果寫完發現才三十行的樣子(都怪重裝系統忘記備份python文件,搞得現在都不知道當時咋寫的那么長)
題干大意
已知2000年1月1日為星期六,按照日期計算并打印日歷(如圖)

代碼
def get_year_days(n):
if n%4==0 and n%100!=0 or n%400==0 : return 366
else : return 365
def get_month_days(n,m):
if m == 1 or m == 3 or m == 5 or m == 7 or m == 8 or m == 10 or m == 12:return 31
if m == 4 or m == 6 or m == 9 or m == 11 : return 30
if m == 2:
if n==365: return 28
else:return 29
target_n = int(input("Please input year"))
target_y = int(input("Please input month"))
sum = 0
for x in range(2000,target_n):
print(x,get_year_days(x))
sum = sum + get_year_days(x)
for x in range(1,target_y):
print(x,get_month_days(get_year_days(target_n),x))
sum = sum + get_month_days(get_year_days(target_n),x)
# print(sum)
dx = (sum+6)%7
if dx == 0: dx = 7
print("一 二 三 四 五 六 日")
for x in range(1,dx+1):print(" ",end = " ")
for x in range(1,get_month_days(get_year_days(target_y),target_y)):
if x=9 and x>=1 : print(x , end = " ")
else :print(x,end = " ")
if (x+dx)%7==0:print()
語法易錯點整理
輸入輸出格式
(四個月沒寫python 是真的忘得一干二凈,查怎么輸入輸出花了一會時間)
1、理解input ,它可以接受很多形式的輸入,如果在儲存時就想確定他的數據類型,就要用個括號兜起來然后前面寫上數據類型。
a = input(); #此時輸入的以不確定的形式儲存在了a中
a = int(intput()); #此時輸入的東西自動以int數據類型儲存在了a中
a = int(input("一句話")) #此時在輸出之前輸出了"一句話"
2、輸出格式
是print,不是println 也不是printf(受最近寫Java和打acm的習慣的影響)以為println可以換行,才發現print本身就可以換行。此外還有不換行的辦法,就是通過print的()中加上一個 end = ……,來改變輸出后的處理方式。
print(10) #輸出10
print(a) #輸出a
print(a , end = " ") #以空格來結束此次的輸出
print(a, end = "任意東西") #以"任意東西"來做為結束此次的輸出
for循環的range
range的遍歷是前開后不開(用區間來表示)
for x in range(1,5) : #此時會遍歷1 2 3 4,不會遍歷5
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。
您可能感興趣的文章:- for循環在Python中的工作原理詳細
- python入門for循環嵌套理解學習
- Python for 循環語句的使用
- python for循環賦值問題
- Python 如何用一行代碼實現for循環初始化數組
- Python中的for循環詳情