教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 幼儿教育 >

《Python程序设计基础》习题答案与分析(2)

来源:网络收集 时间:2026-05-15
导读: i = len(x)-1 while i=0: if x[i]%2==1: del x[i] 习题答案与分析 i-=1 print(x) 3.5 编写程序,生成一个包含20个随机整数的列表,然后对其中偶数下标的元素进行降序排列,奇数下标的元素不变。(提示:使用切片。

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字,全部文档内容请下载后查看。喜欢就下载吧 ……

《Python程序设计基础》习题答案与分析(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/38821.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)