《Python程序设计基础》习题答案与分析(2)
i = len(x)-1
while i>=0:
if x[i]%2==1:
del x[i]
习题答案与分析
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 编写程序,实现分段函数计算,如下表所示。
习题答案与分析
答: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 = "i am a teacher,i am man, and i am 38 years old.I am not a businessman."
x = x.replace('i ','I ')
x = x.replace(' i ',' I ')
print(x)
2)使用正则表达式
x = "i am a teacher,i am man, and i am 38 years old.I am not a businessman."
import re
pattern = pile(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 = "I am a teacher,I am man, and I am 38 years old.I am not a busInessman."
print(x)
pattern = pile(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:
习题答案与分析
x = x[:result.start(0)]+'i'+x[result.end(0)-1:]
else:
break
print(x)
4.3 有一段英文文本,其中有单词连续重复了2次,编写程序检查重复的单词并只保留一个。例如文本内容为“This is is a desk.”,程序输出为“This is a desk.”
答:这里给出Python 3.4.2代码,如果使用Python 2.7.8的话只需要修改其中的print()函数为print语句即可。
1)方法一
import re
x = 'This is a a desk.'
pattern = pile(r'\b(\w+)(\s+\1){1,}\b')
matchResult = pattern.search(x)
x = pattern.sub(matchResult.group(1),x)
print(x)
2)方法二
x = 'This is a a desk.'
pattern = pile(r'(?P<f>\b\w+\b)\s(?P=f)')
matchResult = pattern.search(x)
x = x.replace(matchResult.group(0),matchResult.group(1))
4.4 简单解释Python的字符串驻留机制。
答:
Python支持字符串驻留机制,即:对于短字符串,将其赋值给多个不同的对象时,内存中只有一个副本,多个对象共享该副本。这一点不适用于长字符串,即长字符串不遵守驻留机制,下面的代码演示了短字符串和长字符串在这方面的区别。
>>> a = '1234'
>>> b = '1234'
>>> id(a) == id(b)
True
>>> a = '1234'*50
>>> b = '1234'*50
>>> id(a) == id(b)
False
4.5 编写程序,用户输入一段英文,然后输出这段英文中所有长度为3个字母的单词。 答:这里给出Python 3.4.2代码,如果使用Python 2.7.8的话只需要修改其中的print()函数为print语句即可。
习题答案与分析
import re
x = input('Please input a string:')
pattern = pile(r'\b[a-zA-Z]{3}\b')
print(pattern.findall(x))
习题答案与分析
第5章 函数设计与使用
5.1 运行5.3.1小节最后的示例代码,查看结果并分析原因。
答:原因是对于函数的默认值参数只会被处理一次,下次再调用函数并且不为默认值参数赋值时会继续使用上一次的结果,对于列表这样的结构,如果调用函数时为默认值参数的列表插入或删除了元素,将会得到保留,从而影响下一次调用。
5.2 编写函数,判断一个整数是否为素数,并编写主程序调用该函数。
答:这里给出Python 3.4.2代码,如果使用Python 2.7.8的话只需要修改其中的print()函数为print语句即可。
import math
def IsPrime(v):
n = int(math.sqrt(v)+1)
for i in range(2,n):
if v%i==0:
return 'N …… 此处隐藏:3406字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [幼儿教育]【完整版】2019-2025年中国药物发现外
- [幼儿教育]2018-2019年初中信息技术广东初一竞赛
- [幼儿教育]最新外研版(一起)小学英语五年级上册《
- [幼儿教育]农业推广与创新管理专业 -中农大毕业论
- [幼儿教育]2017-2022年中国更年期用药行业市场深
- [幼儿教育]数学1.1.2第1课时棱柱、棱锥和棱台的结
- [幼儿教育]二年级群文阅读课例欣赏
- [幼儿教育]2010-2015年中国保险行业投资分析及深
- [幼儿教育]厄运打不垮的信念第一课时
- [幼儿教育]巧用文本,让表达在言语中绽放论文
- [幼儿教育]中学生百科知识竞赛题及答案
- [幼儿教育]八大菜系英文简介
- [幼儿教育]中国男装牛仔裤市场发展研究及投资前景
- [幼儿教育]远程数字视频监控系统在银行的应用
- [幼儿教育]光纤光缆制造工艺及设备
- [幼儿教育]国家安全法试题及答案
- [幼儿教育]2011高中提前招生及竞赛试题(物理卷1)
- [幼儿教育]宁夏第三产业房地产业、科学研究和技术
- [幼儿教育]中兴通讯 ME3000模块用户硬件设计手册_
- [幼儿教育]紫外线灯管的辐照强度问题
- 苏联东欧剧变的原因和历史教训浅析
- 人工智能导论实验报告(学生)
- 思科ITE章考试原题及答案
- 《学习雷锋好榜样》主题班会教案
- 加油站建设项目安全评价报告
- 剖析社保卡管理系统
- 2017-2018年影视剧新媒体版权运营行业
- 2017-2018学年四川省成都市高一上学期
- 2019最新高中数学 第三章 3.2.1 几类不
- 2011-2015年中国基酸市场调查及行业前
- 人教版新课标选修八Unit 1 课件Warming
- 郭溪燎原小学辅导学生记录表
- 教师资格证统考综合素质写作秘笈
- 国外校园绿色建筑研究方向与建设实践
- 15.1 动物运动的方式 课件(北师大版八
- 民用飞机空调系统
- 长安侠文化传统与唐诗的任侠主题
- 《中国近现代史纲要》名词解释
- 11金本《保险学概论》复习资料
- 民用建筑机电安装工程专业施工图图纸会




