当前位置:首页 > 《Python程序设计基础》习题答案与分析
i-=1 print(x)
3.5 编写程序,生成一个包含20个随机整数的列表,然后对其中偶数下标的元素进行降序排列,奇数下标的元素不变。(提示:使用切片。)
答:Python 3.4.2代码如下,
import random
x = [random.randint(0,100) for i in range(20)] print(x) y = x[::2]
y.sort(reverse=True) x[::2] = y
print(x)
3.6 编写程序,用户从键盘输入小于1000的整数,对其进行因式分解。例如,10=2×5,60=2×2×3×5。
答:
1)Python 3.4.2代码
x = input('Please input an integer less than 1000:') x = eval(x) t = x i = 2
result = [] while True: if t==1: break if t%i==0:
result.append(i) t = t/i else:
i+=1
print(x,'=','*'.join(map(str,result)))
2)Python 2.7.8代码
x = input('Please input an integer less than 1000:') t = x i = 2
result = [] while True: if t==1:
break if t%i==0:
result.append(i) t = t/i else:
i+=1
print x,'=','*'.join(map(str,result))
3.7 编写程序,至少使用2种不同的方法计算100以内所有奇数的和。
答:Python 3.4.2代码如下,如果使用Python 2.7.8只需要把其中的print()函数改为print语句即可。
x = [i for i in range(1,100) if i%2==1] print(sum(x))
print(sum(range(1,100)[::2]))
3.8 编写程序,输出所有由1、2、3、4这四个数字组成的素数,并且在每个素数中每个数字只使用一次。
答:Python 3.4.2代码如下,
答:Python 3.4.2代码如下,如果使用Python 2.7.8只需要把其中的print()函数改为print语句即可。
x = input('Please input x:') x = eval(x)
if x<0 or x>=20: print(0) elif 0<=x<5: print(x) elif 5<=x<10: print(3*x-5) elif 10<=x<20: print(0.5*x-2)
3.9 编写程序,实现分段函数计算,如下表所示。
x x<0 0<=x<5 0 x y 5<=x<10 10<=x<20 20<=x 3x-5 0.5x-2 0 答:Python 3.4.2代码如下,如果使用Python 2.7.8只需要把其中的print()函数改为print语句即可。
x = input('Please input x:') x = eval(x)
if x<0 or x>=20: print(0) elif 0<=x<5: print(x) elif 5<=x<10: print(3*x-5) elif 10<=x<20:
print(0.5*x-2)
第4章 字符串与正则表达式
4.1 假设有一段英文,其中有单独的字母“I”误写为“i”,请编写程序进行纠正。 答:这里给出Python 3.4.2代码,如果使用Python 2.7.8的话只需要修改其中的print()函数为print语句即可。
1)不使用正则表达式
x = \x = x.replace('i ','I ') x = x.replace(' i ',' I ') print(x)
2)使用正则表达式
x = \import re
pattern = re.compile(r'(?:[^\\w]|\\b)i(?:[^\\w])') while True:
result = pattern.search(x) if result:
if result.start(0) != 0:
x = x[:result.start(0)+1]+'I'+x[result.end(0)-1:] else:
x = x[:result.start(0)]+'I'+x[result.end(0)-1:] else:
break print(x)
4.2 假设有一段英文,其中有单词中间的字母“i”误写为“I”,请编写程序进行纠正。 答:这里给出Python 3.4.2代码,如果使用Python 2.7.8的话只需要修改其中的print()函数为print语句即可。
import re
x = \print(x)
pattern = re.compile(r'(?:[\\w])I(?:[\\w])') while True:
result = pattern.search(x) if result:
if result.start(0) != 0:
x = x[:result.start(0)+1]+'i'+x[result.end(0)-1:] else:
共分享92篇相关文档