1.
編寫 Python 程序輸出一個具有如下風格效果的文本,用作文本進度條樣式,部分代碼如下,填寫空格處。
10%@==
20%@====
100%@====================
前三個數字,右對齊;后面字符,左對齊
文本中左側一段輸出 N 的值,右側一段根據 N 的值輸出等號,中間用 @ 分隔,等號個數為 N 與 5 的整除商的值,例如,當 N 等於 10 時,輸出 2 個等號。
N = eval(input()) # N取值范圍是0—100,整數 print(____①____)
N = eval(input()) # N取值范圍是0—100,整數
print(____①____)
參考代碼
N = eval(input()) # N取值范圍是0—100,整數 print("{:>3}%@{}".format(N,"="*(N//5)))
2.
以論語中一句話作為字符串變量 s,補充程序,分別輸出字符串 s 中漢字和標點符號的個數。
s = "學而時習之,不亦說乎?有朋自遠方來,不亦樂乎?人不知而不慍,不亦君子乎?" n = 0 # 漢字個數 m = 0 # 標點符號個數 ____①____ # 在這里補充代碼,可以多行 print("字符數為{},標點符號數為{}。".format(n, m))
s = "學而時習之,不亦說乎?有朋自遠方來,不亦樂乎?人不知而不慍,不亦君子乎?"
n = 0 # 漢字個數
m = 0 # 標點符號個數
____①____ # 在這里補充代碼,可以多行
print("字符數為{},標點符號數為{}。".format(n, m))
參考代碼
s = "學而時習之,不亦說乎?有朋自遠方來,不亦樂乎?人不知而不慍,不亦君子乎?" n = 0 # 漢字個數 m = 0 # 標點符號個數 m = s.count(',') + s.count('?') n = len(s) - m print("字符數為{},標點符號數為{}。".format(n, m))
3.
使用程序計算整數 N 到整數 N+100 之間所有奇數的數值和,不包含 N+100,並將結果輸出。整數 N 由用戶給出,代碼片段如下,補全代碼。不判斷輸入異常。
N = input("請輸入一個整數: ") ____①____ # 可以是多行代碼
輸入輸出示例

N = input("請輸入一個整數: ")
____①____ # 可以是多行代碼
參考代碼
N = input("請輸入一個整數: ") s = 0 for i in range(eval(N), eval(N)+100): if i%2 == 1: s += i print(s)
4.
使用 turtle 庫的 turtle.fd() 函數和 turtle.left() 函數繪制一個六邊形,邊長為 200 像素,效果如下圖所示,請結合格式框架,補充橫線處代碼。
import turtle as t for i in range(___①___): t.fd(___②___) t.left(___③___)
--------------------------------------------------------------------
自動評閱說明
最后使用 print 函數輸出 ____①____,____②____,____③____中應填代碼即可以自動評閱得分,如果有運算符,請在運算符兩側加上空格,
例如,如果代碼為:
import turtle as t for i in range(2): t.fd(i + 100) t.left(200)
在提交代碼頁面輸入: print(2, 'i + 100', 200),運行即可
提交代碼
# import turtle as t
# for i in range(___①___):
# t.fd(___②___)
# t.left(___③___)
print(____①____,____②____,____③____)
參考代碼
import turtle as t for i in range(6): t.fd(200) t.left(60)
5.
經常會有要求用戶輸入整數的計算需求,但用戶未必一定輸入整數。為了提高用戶體驗,編寫 getInput() 函數處理這樣的情況。請補充如下代碼,如果用戶輸入整數,則直接輸出整數並退出,如果用戶輸入的不是整數,則要求用戶重新輸入,直至用戶輸入整數為止。
def getInput(): ____①____ # 可以是多行代碼 return ____②____ # 只能是單行代碼 print(getInput())
def getInput():
____①____ # 可以是多行代碼
return ____②____ # 只能是單行代碼
print(getInput())
參考代碼
def getInput(): try: txt = input() # "請輸入整數: " while eval(txt) != int(txt): txt = input() # "請輸入整數: " except: return getInput() return eval(txt) print(getInput())
6.
《天龍八部》是著名作家金庸的代表作之一,歷時4年創作完成。該作品氣勢磅礴,人物眾多,非常經典。這里給出一個《天龍八部》的網絡版本,文件名為“天龍八部-網絡版.txt”。
問題1:請編寫程序,對這個《天龍八部》文本中出現的漢字和標點符號進行統計,字符與出現次數之間用冒號:分隔,輸出保存到“天龍八部-漢字統計.txt”文件中,該文件要求采用 CSV 格式存儲,參考格式如下(注意,不統計空格和回車字符):
天:100, 龍:110, 八:109, 部:10
(略)
問題2:請編寫程序,對《天龍八部》文本中出現的中文詞語進行統計,采用 jieba 庫分詞,詞語與出現次數之間用冒號:分隔,輸出保存到“天龍八部-詞語統計.txt”文件中。參考格式如下(注意,不統計任何標點符號):
天龍:100, 八部:10
(略)
本題暫不支持自動評閱,print('ok'),即可得分
參考代碼 1
fi = open("天龍八部-網絡版.txt", "r", encoding='utf-8') fo = open("天龍八部-漢字統計.txt", "w", encoding='utf-8') txt = fi.read() d = {} for c in txt: d[c] = d.get(c, 0) + 1 del d[' '] del d['\n'] ls = [] for key in d: ls.append("{}:{}".format(key, d[key])) fo.write(",".join(ls)) fi.close() fo.close()
參考代碼 2
import jieba fi = open("天龍八部-網絡版.txt", "r", encoding='utf-8') fo = open("天龍八部-詞語統計.txt", "w", encoding='utf-8') txt = fi.read() words = jieba.lcut(txt) d = {} for w in words: d[w] = d.get(w, 0) + 1 del d[' '] del d['\n'] ls = [] for key in d: ls.append("{}:{}".format(key, d[key])) fo.write(",".join(ls)) fi.close() fo.close()