-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathPractice_2.py
More file actions
166 lines (119 loc) · 5.35 KB
/
Copy pathPractice_2.py
File metadata and controls
166 lines (119 loc) · 5.35 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
### 基础编程题
"""
1.编写 Python 程序输出一个具有如下风格效果的文本,用作文本进度条样式,部分代码如下,填写空格处。
10%@==__________.
3哥字符,右对齐 20 个字符,左对齐
文本中左侧一段输出 N 的值,右侧一段根据 N 的值输出等号,
等号个数为 N 与 5 的整除商的值,
例如,当 N 等于 10 时,输出 2 个等号。
N = 10 #N取值范围是0-100,整数
print( ① )
"""
N = 10 #N取值范围是0-100,整数
print("{:>3}%@{:<20}".format(N,"="*(N//5)))
"""
2.以论语中一句话作为字符串变量s,补充程序,
分别输出字符串s中汉字和标点符号的个数。
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=eval(N)
s=0
for i in range(N,N+100):
if i % 2 != 0:
s+=i
print(s)
### 简单应用题
"""
1.使用 turtle 库的 turtle.fd () 函数和 turtle.left () 函数绘制一个六边形,
边长为 100 像素,效果如下图所示。
"""
import turtle as t
for i in range(6):
t.fd(100)
t.left(60)
"""
2.经常会有要求用户输入整数的计算需求,但用户未必一定输入整数。
为了提高用户体验,编写getInput()函数处理这样的情况。
请补充如下代码,如果用户输入整数,则直接输出整数并退出,
如果用户输入的不是整数,则要求用户重新输入,直至用户输入整数为止。
def getInput():
① #可以是多行代码
return ② #只能是单行代码
print(getInput())
"""
def getInput():
try:
v=eval(input("请输入一个整数:"))
## 注意要考虑全面:如果输入的不是整数,有可能是输入整数(此时不会报错)或字符串(此时会报错)
while v !=int(v):
v=eval(input("请输入一个整数:"))
except:
return getInput()
return v
print(getInput())
### 综合应用题
"""
《论语》是儒家学派的经典著作之一,主要记录了孔子及其弟子言行。
这里给出了一个网络版本的《论语》,文件名称为 “论语.txt",
其内容采用逐句 “原文” 与逐句” 注释” 相结合的形式组织,
通过【原文】标记《论语》原文内容,通过【注释】标记《论语》注释内容,
具体文件格式框架请参考 “论语.txt” 文件。
问题 1:在 PY301_1.py 文件中修改代码,提取 “论语.txt” 文件中的原文内容,
输出保存到考生文件夹下,文件名为 “论语 - 原文.txt”。
具体要求:仅保留 “论语.txt” 文件中所有【原文】标签下面的内容,不保留标签,
并去掉每行行首空格及行尾空格,无空行。
原文小括号及内部数字是源文件中注释项的标记,请保留。
示例输出文件格式请参考 “论语 - 原文 - 输出示例.txt” 文件。
注意:示例输出文件仅帮助考生了解输出格式,不作它用。
输出示例:
子曰 (1): "学 (2) 而时习 (3) 之,不亦说 (4) 乎?有朋 (5) 自远方来,不亦乐乎 (6) 乎?人不知 (7),而不愠 (8),不亦君子 (9) 乎?"
有子 (1) 曰: " 其为人也孝弟 (2),而好犯上者 (3),鲜 (4) 矣;不好犯上,而好作乱者,未之有也 (5)。君子务本 (6),本立而道生 (7)。孝弟也者,
子曰:巧言令色 (1),鲜 (2) 仁矣。"
曾子 (1) 曰: "吾日三省 (2) 吾身。为人谋而不忠 (3) 乎?与朋友交而不信 (4) 乎?传不习乎?"
"""
fi=open("论语.txt","r")
fo=open("论语-原文.txt","w")
flag=False
for ling in fi:
if "【原文】" in line:
flag=True
continue
if "【注释】" in line:
flag=False
if flag==True:
line =line.strip(" ")
if line.count("\n")!=len(line):
fo.write(line)
fi.close()
fo.close()
"""
问题 2:在 PY301-2.py 文件中修改代码,对 “论语 - 原文.txt” 文件进一步提纯,
去掉每行文字中所有小括号及内部数字,保存为 “论语 - 提纯原文.txt” 文件。
示例输出文件格式请参考 “论语 - 提纯原文 - 输出示例.txt” 文件。
"""
fi=open("论语-原文.txt","r")
fo=open("论语-提纯原文.txt","w")
for line in fi:
for i in range(1,23):
line= line.replace("({})".format(i),"")
#或者用字符串拼接的版本: line=line.replac("("+str(i)+")","")
fo.write(line)
fi.close()
fo.close()