本文為中國大學MOOC《Python語言程序設計》課程學習筆記,課程主講:嵩天老師,練習平臺:Python123,參考教材:《Python語言程序設計基礎》
1.1 字符串拼接
Str1 = input("請輸入一個人的名字:")
Str2 = input("請輸入一個國家的名字:")
print("世界那么大,{}想去{}看看".format(Str1,Str2))print()引用字符串時,直接使用{}
format()可以指向多個變量的引用,按先后關系一一對應
1.2 整數序列求和
用戶輸入一個正整數N,計算從1到N(包含1和N)相加之后的結果。
我寫的:
N = eval(input("請輸入一個正整數:"))
summ = 0
for i in range(1,N+1):
summ = summ + i
print("1到{}的求和結果是:{}".format(N,summ))
參考答案:
N = input("請輸入一個正整數:")
summ = 0
for i in range(int(N)):
summ = summ + i + 1
print("1到{}的求和結果是:".format(N),summ)
不同之處:將用戶輸入的值轉換為整數用了不同的函數,eval()和int()
從1到N相加表示時的區間,我寫的是range(1,N+1),參考答案是將求和公式時統一加了1
print()時,我是將兩個都用format()函數輸出,參考答案是將兩段字符串分別輸出,中間使用逗號分隔。
1.3 九九乘法表
for i in range(1,10):
for j in range(1,i+1):
ji = j*i
print("{} × {} = {}".format(j,i,ji),end=" ")
print("")
輸出結果:輸出結果不換行的處理方法,print("",end=""),end=" ",中間加空格,則輸出結果中間多出空格
print("")確保了換行
1.4 1!+2!+……10!=?
s,t=0,1
for i in range(1,11):
t*=i
s+=t
print("運行的結果是:{}".format(s))t*=i,等價于 t=t*i
在python中,多余的空格在執行時會被刪除,t*=i 等價于 t = t * i
1.5 猴子吃桃問題
猴子吃桃問題。猴子第一天摘下若干個桃子,當即吃了一半,還不過癮,又多吃了一個。第二天早上又將剩下的桃子吃掉一半,又多吃了一個。以后每天早上都吃了前一天剩下的一半零一個。到第十天早上在想吃時,就只剩一個桃子了。求第一天共摘了多少個桃子?
參考答案:
n = 1
for i in range(4,0,-1):
n = (n + 1)<<1
print(n)
(這題沒有看明白,以后學了更多知識后回頭再看)
1.6 健康食譜輸出
列出5種不同食材,輸出它們可能組成的所有菜式名稱。
diet = ['土豆','西紅柿','黃瓜','鯉魚','雞蛋']
for i in range(0,5):
for j in range(0,5):
if not(i==j):
print("{}{}".format(diet[i],diet[j]))i不等于j的表達方式,不是 i<>j,而是not(i==j)
1.7 五角星的繪制
參考答案:
from turtle import *
fillcolor("red")
begin_fill
while True:
forward(200)
right(144)
if abs(pos())<1:
break
end_fii()
(本題現在還看不明白)
1.8 太陽花的繪制
參考答案:
from turtle import *
color('red','yellow')
begin_fill()
while True:
forward(200)
left(170)
if abs(pos())<1:
break
end_fill
done()
(本題現在還看不明白)
繪圖效果:
總結
Python語言簡潔而強大,簡單的幾行代碼就能實現一些復雜的效果。做題的過程中在網上搜了下,其他語言實現同樣的效果,要用更多的代碼才能完成。
有些代碼還不能理解,后面的課程學習后再回頭來看。