4.Python的控制结构
4.1 条件控制
1.if-else语句表示?
A.
顺序结构
B.
循环结构
C.
选择结构
D.
递归结构
答案:C
2.
x = range(10) if x > 5: y = x - 5 else: y = x
运行以上if…else语句为什么会出错?
A.
没有提前定义y
B.
没有返回值
C.
'>'不能用于range与int之间
D.
没有大于5的x值
答案:C
3.已知n是一个整数,1<=n<=100
-
请完成函数
judge,要求当n是奇数时打印odd,当n为偶数且在闭区间[2,5]之间时打印'The number is between 2 and 5', 当n为偶数且在比区间[6,20]之间时打印'The number is between 6 and 20', 当n为偶数且大于20时打印'The number is greater than 20'。 例如: judge(5) --->'odd'judge(6) --->'The number is between 6 and 20'
正误判定变量:无
def judge(n):
if n % 2==0:
if n>=2 and n<=5:
return ('The number is between 2 and 5')
elif n>=6 and n<=20:
return('The number is between 6 and 20')
elif n>20:
return('The number is greater than 20')
else:
return ('odd')
judge(5)
4.完成函数mask,使得它可以只保留输入字符串后四位字符,并将剩余字符变成井号#。 例如: mask('12345678') ='####5678' mask('a') = 'a'
正误判定变量:无
def mask(string):
if len(string)<=4:
return string
else:
answer =string.replace(string[:-4],'#'*int(len(string)-4))
return answer
mask('12345678')
5.本题检测一个由数字组成的字符串是否符合规则,规则是字符串必须以7,8或者9开头,字符串的长度必须是10,符合返回YES,不符合返回NO。
-
请补全该函数。
正误判定变量:无
def check(n):
PhoneRegx=re.compile(r'^[7-9]\d{9}$')
if PhoneRegx.match(n):
ans ='YES'
else:
ans ='NO'
return ans
4.2 循坏控制
1.如果要计算1+2+3+…+10,程序中空白部分应该填入
sum = 0 __ x in [1,2,3,4,5,6,7,8,9,10]: sum = sum + x print(sum)
A.
while
B.
for
C.
if
D.
elif
答案:B
2.请完成函数solve,使得它可以返回小于输入整数中所有是3或5的倍数的自然数之和。 例如: solve(10) = 23 因为小于10的自然数中,3、5、6、9是3或5的倍数,3 + 5 + 6 + 9 =23
def solve(x): sum_1 = 0 for i in range(x): if i % 3 == 0 or i % 5 == 0: sum_1 += i return sum_1
3.现定义一个函数add_3,使传入的列表a中每个元素加3,将计算结果存放到新的列表a_new中,并返回列表a_new。
-
请通过
for循环结构补全下列代码
正误判定变量:a_new
def add_3(a): a_new=[] for i in a: a_new.append(i + 3) return a_new
4.【单选】下列关于Python面向对象编程,正确的是?
A.
Python`在类中定义函数的第一个参数为`this
B.
__init__方法可以使定义的实例拥有类模板的属性
C.
如果子类定义了父类中的同名方法,通过子类调用该方法时使用父类的方法
D.
如果一个变量前带有__,可以直接从外部访问
答案:B
5.若k为整型,下面while循环输出结果的个数为:
k=1000 while k>100: print k k /= 2
A.
9
B.
11
C.
10
D.
8
答案:A
6.【单选】如下代码输出结果是?
L = ["life", "answer", 42, 0] for item in L: if item == 0: L[item] = "universe" elif item == 42: L[1] = "everything" print (L)
A.
['universe', 'everything', 42, 0]
B.
['life', 'everything', 42, 0]
C.
['universe', 'answer', 42, 0]
D.
['life', 'answer', 42, 0]
答案:A
7.用While循环求自然数1+2+…+100的结果时,下列程序哪一行会造成结果的错误
i = 1 sum = 0 while i < 100: sum += i i += 1
A.
sum = 0
B.
while i < 100:
C.
sum += i
D.
i += 1
8.完成函数countStr,使其能返回输入字符串中字母的数量,空格的数量和数字的数量,将结果按字母数量,空格数量,数字数量排列在一个列表中。 例如:countStr('str 123')=[3,1,3]
def countStr(string): letters = 0 space = 0 digit = 0 i=0 while i < len(string): c = string[i] i += 1 if c.isalpha(): letters += 1 if c.isspace(): space += 1 if c.isdigit(): digit += 1 result = [letters,space,digit] return result
9.现定义一个函数sub_2,使传入的变量a每次减2,共减100次,并将每一次计算结果存放到列表list中,并返回列表list。
-
请通过
while循环结构补全下列代码
正误判定变量:list
def sub_2(a): list=[] count=0 while count<100: count=count+1 a=a-2 list.append(a) return list
10.如下代码执行结果正确的是?
HK = 157 while HK > 40: HK = HK % 3 print HK
A.
52
B.
17
C.
1
D.
157
答案:C
11.如下代码执行结果正确的是?
Number = [25, 25, 32, 86, 97] Number_new = [] for n in Number: if not n%2: Number_new.append(n*2) else: Number_new.append(n+2) print Number_new
A.
[27, 27, 64, 172, 99]
B.
[27, 27, 34, 88, 99]
C.
代码错误
D.
[50, 50, 64, 172, 194]
答案:A
12.如下代码执行后的结果是?
hack = [2, 3, 2, 5, 7, 3] hack_new = [] for n in hack: if n not in hack_new: hack_new.append(n * 3) print hack_new
A.
[6, 9, 6, 15, 21, 9]
B.
[2, 3, 2, 5, 7, 3]
C.
[6, 9, 15, 21]
D.
[2, 3, 5, 7]
答案:A
4.3 推导式
1.下列说法正确的是?
A.
集合中可以有重复值
B.
字典推导式中不可以使用if条件语句
C.
列表推导式不可以创建嵌套列表
D.
推导式是一种高效快捷的创建方式
2.下面哪一项是列表推导式?
A.
a = [ {item: item +1} for item in [0, 2, 3, 4, 5, 6] ]
B.
for item in a : print a
C.
a = [1, 23, 4, 5]
D.
c = (lambda x: x +1)(123)
答案:A
3.已知两个列表x和y
-
请完成以下代码得到列表
x与列表y数值相减的结果answer。 第一个列表x中每一个值减去第二个列表y的值,第二个列表只有一个值。
例子:
x = [1,2,3] y = [1] answer = '''代码''' answer [0,1,2]
x和y为已知变量,不需要重新定义;且x和y的值与例子不同。
answer = [i-y[0] for i in x]
4.请完成vowel函数可以返回输入字符串中元音字母的个数,即a、e、i、o、u的个数。 例如:vowel('abcde') = 2
尽量使用推导式。
def vowel(word):
count = sum([1 for i in word if i in ('aeiou')])
return count
5.请完成函数friend,在你输入的朋友列表中,只有由五个字母组成的字符串是你的朋友,函数要返回内部元素都是朋友的列表。 例如: friend(['Mary','Barry','Chris','Joel']) = ['Barry','Chris']
尽量用推导式。
def friend(x): answer = [name for name in x if len(name) == 5] return answer
6.请完成函数var,使其能够计算输入数据的方差,输入数据储存在一个列表中。 例如:var([1,2,3,4,5])=2.0
尽量使用推导式
def var(data): print(data) mean=float(sum(data))/len(data) var=sum([(mean-i)**2 for i in data])/len(data) return var
7.列表[1,2,3]可由下列哪种方式得到
A.
[1,2]+[3]
B.
[1,2]+3
C.
[i+1 for i in range(3)]
D.
[2*i for i in range(3)]
答案:AC
8.请使用字典推导式将population列表转成字典数据结构。即,国家为键,人口数量为值。
population = [('Austrialia',20264082),('China',1313973713),('Denmark',5450661),('France',60876136),('Indonesia',245452739),('Iceland',299388),('Italy',58133509)]
dict_result ={key:value for key,value in population}
9.现在有两个列表,一个是模型的列表m,另一个是其评价指标的列表s
请使用字典推导式快速创建模型:评价指标一一对应的字典,将结果存为model_evaluate
正误判定变量:model_evaluate
m= ['decision trees', 'svm', 'random forest', 'neural network']
s = [0.92, 0.94, 0.97, 0.96]
model_evaluate ={m:s for m,s in zip(m,s)}
文章介绍了Python中的控制结构,包括条件控制的if-else语句,以及循环控制的for和while循环。同时,文章提供了若干编程题目,涉及函数的编写,如判断奇偶性、字符串处理和数字检查等。此外,还讲解了列表推导式的概念和使用,以及字典推导式的应用。

被折叠的 条评论
为什么被折叠?



