python for循環內輸出和外輸出方式
通過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
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。如有錯誤或未考慮完全的地方,望不吝賜教。
推薦閱讀:
- 利用Python函數實現一個萬歷表完整示例
- 利用Java編寫一個屬於自己的日歷
- C語言打印某一年的日歷
- 10個必須要掌握的Python內置函數
- Python中的枚舉函數enumerate()的具體用法