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。如有錯誤或未考慮完全的地方,望不吝賜教。

推薦閱讀: