《PYTHON程序设计基础》习题答案与分析

合集下载

《Python程序设计》习题与答案-python教材答案

《Python程序设计》习题与答案-python教材答案

《Python法式设计》习题与参考谜底之老阳三干创作第1章基础知识1.1 简单说明如何选择正确的Python版本.答:在选择Python的时候,一定要先考虑清楚自己学习Python的目的是什么,筹算做哪方面的开发,有哪些扩展库可用,这些扩展库最高支持哪个版本的Python,是Python 2.x还是Python 3.x,最高支持到Python 2.7.6还是Python 2.7.9.这些问题都确定以后,再做出自己的选择,这样才华事半功倍,而不至于把年夜量时间浪费在Python的反复装置和卸载上.同时还应该注意,当更新的Python版本推出之后,不要急于更新,而是应该等确定自己所必需使用的扩展库也推出了较新版本之后再进行更新.尽管如此,Python 3究竟是年夜势所趋,如果您暂时还没想到要做什么行业领域的应用开发,或者仅仅是为了检验考试一种新的、好玩的语言,那么请毫不犹豫地选择Python 3.x系列的最高版本(目前是Python 3.4.3).1.2 为什么说Python采纳的是基于值的内存管理模式?答:Python采纳的是基于值的内存管理方式,如果为分歧变量赋值相同值,则在内存中只有一份该值,多个变量指向同一块内存地址,例如下面的代码.>>> x = 3>>> id(x)10417624>>> y = 3>>> id(y)10417624>>> y = 5>>> id(y)10417600>>> id(x)104176241.3 在Python中导入模块中的对象有哪几种方式?答:经常使用的有三种方式,分别为●import 模块名 [as 别名]●from 模块名 import 对象名[ as 别名]●from math import *1.4 使用pip命令装置numpy、scipy模块.答:在命令提示符环境下执行下面的命令:pip install numpypip install scipy1.5 编写法式,用户输入一个三位以上的整数,输出其百位以上的数字.例如用户输入1234,则法式输出12.(提示:使用整除运算.)答:1)Python 3.4.2代码:x = input('Please input an integer of more than 3 digits:')try:x = int(x)x = x//100if x == 0:print('You must input an integer of more than 3 digits.')else:print(x)except BaseException:print('You must input an integer.')2)Python 2.7.8代码:import typesx = input('Please input an integer of more than 3 digits:')if type(x) != types.IntType:print 'You must input an integer.'elif len(str(x)) != 4:print 'You must input an integer of more than 3 digits.'else:print x//100第2章 Python数据结构2.1 为什么应尽量从列表的尾部进行元素的增加与删除把持?答:当列表增加或删除元素时,列表对象自动进行内存扩展或收缩,从而保证元素之间没有缝隙,但这涉及到列表元素的移动,效率较低,应尽量从列表尾部进行元素的增加与删除把持以提高处置速度.2.2 编写法式,生成包括1000个0到100之间的随机整数,并统计每个元素的呈现次数.(提示:使用集合.)答:import randomx = [random.randint(0,100) for i in range(1000)]d = set(x)for v in d:print(v, ':', x.count(v))import randomx = [random.randint(0,100) for i in range(1000)]d = set(x)for v in d:print v, ':', x.count(v)2.3 编写法式,用户输入一个列表和2个整数作为下标,然后输出列表中介于2个下标之间的元素组成的子列表.例如用户输入[1,2,3,4,5,6]和2,5,法式输出[3,4,5,6].答:x = input('Please input a list:')x = eval(x)start, end = eval(input('Please input the start position and the end position:'))print(x[start:end])x = input('Please input a list:')start, end = input('Please input the start position and the end position:')print x[start:end]2.4 设计一个字典,并编写法式,用户输入内容作为键,然后输出字典中对应的值,如果用户输入的键不存在,则输出“您输入的键不存在!”答:d = {1:'a', 2:'b', 3:'c', 4:'d'}v = input('Please input a key:')v = eval(v)print(d.get(v,'您输入的的键不存在'))d = {1:'a', 2:'b', 3:'c', 4:'d'}v = input('Please input a key:')print(d.get(v,'您输入的的键不存在'))2.5 编写法式,生成包括20个随机数的列表,然后将前10个元素升序排列,后10个元素降序排列,并输出结果.答:import randomx = [random.randint(0,100) for i in range(20)]print(x)y = x[0:10]y.sort()x[0:10] = yy = x[10:20]y.sort(reverse=True)x[10:20] = yprint(x)import randomx = [random.randint(0,100) for i in range(20)]print xy = x[0:10]y.sort()x[0:10] = yy = x[10:20]y.sort(reverse=True)x[10:20] = yprint x2.6 在Python中,字典和集合都是用一对年夜括号作为定界符,字典的每个元素有两部份组成,即键和值 ,其中键不允许重复.2.7 假设有列表 a = ['name','age','sex']和 b = ['Dong',38,'Male'],请使用一个语句将这两个列表的内容转换为字典,而且以列表a中的元素为键,以列表b中的元素为值,这个语句可以写为 c = dict(zip(a,b)).2.8 假设有一个列表a,现要求从列表a中每3个元素取1个,而且将取到的元素组成新的列表b,可以使用语句 b = a[::3].2.9 使用列表推导式生成包括10个数字5的列表,语句可以写为 [5 for i in range(10)].2.10 不成以(可以、不成以)使用del命令来删除元组中的部份元素.第3章选择结构与循环结构3.1 分析逻辑运算符“or”的短路求值特性.答:假设有表达式“表达式1 or 表达式2”,如果表达式1的值等价于True,那么无论表达式2的值是什么,整个表达式的值总是等价于True.因此,不需要再计算表达式2的值.3.2 编写法式,运行后用户输入4位整数作为年份,判断其是否为闰年.如果年份能被400整除,则为闰年;如果年份能被4整除但不能被100整除也为闰年.答:x = input('Please input an integer of 4 digits meaning the year:')x = eval(x)if x%400==0 or (x%4==0 and not x%100==0):print('Yes')else:print('No')x = input('Please input an integer of 4 digits meaning the year:')if x%400==0 or (x%4==0 and not x%100==0):print 'Yes'else:print 'No'3.3 编写法式,生成一个包括50个随机整数的列表,然后删除其中所有奇数.(提示:从后向前删.)答:import randomx = [random.randint(0,100) for i in range(50)]print(x)i = len(x)-1while i>=0:if x[i]%2==1:del x[i]i-=1print(x)把上面的代码中第三行和最后一行改为print x即可.34 编写法式,生成一个包括20个随机整数的列表,然后对其中偶数下标的元素进行降序排列,奇数下标的元素不变.(提示:使用切片.)答:import randomx = [random.randint(0,100) for i in range(20)]print(x)y = x[::2]y.sort(reverse=True)x[::2] = yprint(x)把上面的代码中第三行和最后一行改为print x即可.35 编写法式,用户从键盘输入小于1000的整数,对其进行因式分解.例如,10=2×5,60=2×2×3×5.答:x = input('Please input an integer less than 1000:')x = eval('x')t = xi = 2result = []while True:if t==1:breakif t%i==0:result.append(i)t = t/ielse:i+=1Print x,'=','*'.join(map(str,result))x = input('Please input an integer less than 1000:')t = xi = 2result = []while True:if t==1:breakif t%i==0:result.append(i)t = t/ielse:i+=1print x,'=','*'.join(map(str,result))3.6 编写法式,至少使用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.7 编写法式,实现分段函数计算,如下表所示.答: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.WordStr('i ','I ')x = x.WordStr(' 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 repattern = 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:breakprint(x)4.2 假设有一段英文,其中有单词中间的字母“i”误写为“I”,请编写法式进行纠正.答:这里给出Python 3.4.2代码,如果使用Python 2.7.8的话只需要修改其中的print()函数为print语句即可.import rex = "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:breakprint(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 rex = '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.WordStr(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)False4.5 编写法式,用户输入一段英文,然后输出这段英文中所有长度为3个字母的单词.答:这里给出Python 3.4.2代码,如果使用Python 2.7.8的话只需要修改其中的print()函数为print语句即可.import rex = 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 mathdef IsPrime(v):n = int(math.sqrt(v)+1)for i in range(2,n):if v%i==0:return 'No'else:return 'Yes'print(IsPrime(37))print(IsPrime(60))print(IsPrime(113))5.3 编写函数,接收一个字符串,分别统计年夜写字母、小写字母、数字、其他字符的个数,并以元组的形式返回结果.答:这里给出Python 3.4.2代码,如果使用Python 2.7.8的话只需要修改其中的print()函数为print语句即可.def demo(v):capital = little = digit = other =0for i in v:if 'A'<=i<='Z':capital+=1elif 'a'<=i<='z':little+=1elif '0'<=i<='9':digit+=1else:other+=1return (capital,little,digit,other)x = 'capital = little = digit = other =0'print(demo(x))5.4 在Python法式中,局部变量会隐藏同名的全局变量吗?请编写代码进行验证.谜底:会.>>> def demo():a=3print a>>> a=5>>> demo()3>>> a55.5 编写函数,可以接收任意多个整数并输出其中的最年夜值和所有整数之和.答:这里给出Python 3.4.2代码,如果使用Python 2.7.8的话只需要修改其中的print()函数为print语句即可.def demo(*v):print(v)print(max(v))print(sum(v))demo(1,2,3)demo(1,2,3,4)demo(1,2,3,4,5)5.6 编写函数,模拟内置函数sum().答:这里给出Python 3.4.2代码,如果使用Python 2.7.8的话只需要修改其中的print()函数为print语句即可.def Sum(v):s = 0for i in v:s += ireturn sx = [1,2,3,4,5]print(Sum(x))x = (1,2,3,4,5)print(Sum(x))5.7 编写函数,模拟内置函数sorted().答:这里给出Python 3.4.2代码,如果使用Python 2.7.8的话只需要修改其中的print()函数为print语句即可.def Sorted(v):t = v[::]r = []while t:tt = min(t)r.append(tt)t.remove(tt)return rx = [1,3,5,2,1,0,9,7]print(x)print(Sorted(x))第6章面向对象法式设计6.1 继承6.5节例2中的Person类生成Student类,填写新的函数用来设置学生专业,然后生成该类对象并显示信息.import typesclass Person(object): #基类必需继承于object,否则在派生类中将无法使用super()函数def __init__(self, name = '', age = 20, sex = 'man'): self.setName(name)self.setAge(age)self.setSex(sex)def setName(self, name):if not isinstance(name,str):print('name must be string.')returnself.__name = namedef setAge(self, age):if not isinstance(age,int):print('age must be integer.')returnself.__age = agedef setSex(self, sex):if sex != 'man' and sex != 'woman':print('sex must be "man" or "woman"')returnself.__sex = sexdef show(self):print(self.__name)print(self.__age)print(self.__sex)class Student(Person):def __init__(self, name='', age = 30, sex = 'man', major = 'Computer'):#调用基类构造方法初始化基类的私有数据成员super(Student, self).__init__(name, age, sex)self.setMajor(major) #初始化派生类的数据成员def setMajor(self, major):if not isinstance(major, str):print('major must be a string.')returnself.__major = majordef show(self):super(Student, self).show()print(self.__major)if __name__ =='__main__':zhangsan = Person('Zhang San', 19, 'man')zhangsan.show()lisi = Student('Li Si',32, 'man', 'Math')lisi.show()6.2 设计一个三维向量类,并实现向量的加法、减法以及向量与标量的乘法和除法运算.class Vecter3:def __init__(self, x=0, y=0, z=0):self.X = xself.Y = yself.Z = zdef __add__(self, n):r = Vecter3()return rdef __sub__(self, n):r = Vecter3()return rdef __mul__(self, n):r = Vecter3()r.X = self.X * nr.Y = self.Y * nr.Z = self.Z * nreturn rdef __truediv__(self, n):r = Vecter3()r.X = self.X / nr.Y = self.Y / nr.Z = self.Z / nreturn rdef __floordiv__(self, n):r = Vecter3()r.X = self.X // nr.Y = self.Y // nr.Z = self.Z // nreturn rdef show(self):print((self.X,self.Y,self.Z))v1 = Vecter3(1,2,3)v2 = Vecter3(4,5,6)v3 = v1+v2v3.show()v4 = v1-v2v4.show()v5 = v1*3v5.show()v6 = v1/2v6.show()6.3 面向对象法式设计的三要素分别为封装、继承和多态 .6.4 简单解释Python中以下划线开头的变量名特点.答:在Python中,以下划线开头的变量名有特殊的含义,尤其是在类的界说中.用下划线作为变量前缀和后缀来暗示类的特殊成员:●_xxx:这样的对象叫做呵护变量,不能用'from moduleimport *'导入,只有类对象和子类对象能访问这些变量;●__xxx__:系统界说的特殊成员名字;●__xxx:类中的私有成员,只有类对象自己能访问,子类对象也不能访问到这个成员,但在对象外部可以通过“”这样的特殊方式来访问.Python中没有纯洁的C++意义上的私有成员.6.5 与运算符“**”对应的特殊方法名为__pow__(),与运算符“//”对应的特殊方法名为 __floordiv__() .第7章文件把持7.1 假设有一个英文文本文件,编写法式读取其内容,并将其中的年夜写字母酿成小写字母,小写字母酿成年夜写字母.答:f = open(r'd:\1.txt','r')s = f.readlines()f.close()r = [i.swapcase() for i in s]f = open(r'd:\2.txt','w')f.writelines(r)f.close()7.2 编写法式,将包括学生成果的字典保管为二进制文件,然后再读取内容并显示.import pickled = {'张三':98,'李四':90,'王五':100}print(d)f = open('score.dat','wb')pickle.dump(1,f)pickle.dump(d,f)f = open('score.dat','rb')pickle.load(f)d = pickle.load(f)f.close()print(d)7.3 使用shutil模块中的move()方法进行文件移动.答:>>> import shutil>>> shutil.move(r'd:\1.txt', r'e:\1.txt')'e:\\1.txt'7.4 简单解释文本文件与二进制文件的区别.答:(1)文本文件文本文件存储的是惯例字符串,由若干文本行组成,通常每行以换行符'\n'结尾.惯例字符串是指记事本或其他文本编纂器能正常显示、编纂而且人类能够直接阅读和理解的字符串,如英文字母、汉字、数字字符串.文本文件可以使用字处置软件如gedit、记事本进行编纂.(2)二进制文件二进制文件把对象内容以字节串(bytes)进行存储,无法用记事本或其他普通字处置软件直接进行编纂,通常也无法被人类直接阅读和理解,需要使用专门的软件进行解码后读取、显示、修改或执行.罕见的如图形图像文件、音视频文件、可执行文件、资源文件、各种数据库文件、各类office文档等都属于二进制文件.7.5 编写代码,将以后工作目录修改为“c:\”,并验证,最后将以后工作目录恢复为原来的目录.答:>>> import os>>> os.getcwd()。

2020年《python程序设计》基础知识及程序设计598题NA[含参考答案]

2020年《python程序设计》基础知识及程序设计598题NA[含参考答案]

2020年《python程序设计》基础知识及程序设计598题[含参考答案]一、填空题1.表达式re.split('\.+', 'alpha.beta...gamma..delta') 的值为_______________________。

(['alpha', 'beta', 'gamma', 'delta'])2.表达式 '%s'%[1,2,3] 的值为_____________。

('[1, 2, 3]')3.代码 print(re.match('^[a-zA-Z]+$','abcDEFG000')) 的输出结果为_________。

(None)4.表达式 len('abc'.ljust(20)) 的值为______________。

(20)5.表达式 'test.py'.endswith(('.py', '.pyw')) 的值为__________。

(True)6.表达式 'Hello world!'[-4:] 的值为________________。

('rld!')7.表达式 'Hello world!'[-4] 的值为________________。

('r')8.语句 print(re.match('abc', 'defg')) 输出结果为_____________。

(None)9.假设正则表达式模块re已导入,那么表达式re.sub('\d+', '1', 'a12345bbbb67c890d0e') 的值为_____________________。

2020年《python程序设计》基础知识及程序设计598题AAH[含参考答案]

2020年《python程序设计》基础知识及程序设计598题AAH[含参考答案]

2020年《python程序设计》基础知识及程序设计598题[含参考答案]一、填空题1.表达式 ''.join('asdssfff'.split('sd')) 的值为____________。

('assfff')2.假设正则表达式模块re已导入,那么表达式re.sub('\d+', '1', 'a12345bbbb67c890d0e') 的值为_____________________。

('a1bbbb1c1d1e')3.在设计正则表达式时,字符_______紧随任何其他限定符(*.+.?.{n}.{n,}.{n,m})之后时,匹配模式是“非贪心的”,匹配搜索到的.尽可能短的字符串。

(?)4.表达式 len('abc'.ljust(20)) 的值为______________。

(20)5.表达式 'Hello world!'[-4:] 的值为________________。

('rld!')6.表达式 'Hello world!'[-4] 的值为________________。

('r')7.语句 print(re.match('abc', 'defg')) 输出结果为_____________。

(None)8.已知字符串编码格式utf8使用3个字节表示一个汉字.1个字节表示英语字母,那么表达式len('abc你好'.encode())的值为_______________。

(9)9.表达式 ''.join(re.split('[sd]','asdssfff')) 的值为_______________。

Python程序设计课后习题答案

Python程序设计课后习题答案

Python程序设计课后习题答案通过Python程序设计课后习题的答案,我将为您提供一份详细的文章。

如下所示:Python程序设计课后习题答案Python程序设计是一门广泛应用于计算机科学领域的编程语言。

在学习这门课程时,我们需要通过解答习题来加深对于Python编程的理解。

本文将对一些Python程序设计课后习题进行答案解析,并通过实例代码来帮助读者更好地理解。

一、基础概念和语法1. 编写一个程序,实现计算两个数之和的功能。

```pythonnum1 = float(input("请输入第一个数:"))num2 = float(input("请输入第二个数:"))# 计算和sum_result = num1 + num2print("两个数的和为:", sum_result)```2. 编写一个程序,实现计算一个数的阶乘。

```pythonnum = int(input("请输入一个正整数:"))factorial = 1# 计算阶乘if num < 0:print("输入的数字必须为正整数!")elif num == 0:print("0的阶乘为1")else:for i in range(1, num + 1):factorial *= iprint(num, "的阶乘为:", factorial)```二、数据结构与算法1. 编写一个程序,实现对列表中元素求和的功能。

```pythonnumbers = [1, 2, 3, 4, 5]sum_result = sum(numbers)print("列表元素的和为:", sum_result)```2. 编写一个程序,实现冒泡排序算法对列表进行排序。

```pythondef bubble_sort(arr):n = len(arr)for i in range(n - 1):for j in range(n - i - 1):if arr[j] > arr[j + 1]:arr[j], arr[j + 1] = arr[j + 1], arr[j]return arrnumbers = [4, 2, 1, 5, 3]sorted_numbers = bubble_sort(numbers)print("排序后的列表:", sorted_numbers)```三、文件操作1. 编写一个程序,实现读取文本文件内容并计算文件中单词的个数。

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

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

《Python程序设计基础》习题答案与分析一、输入和输出1. 输入和输出函数Python提供了多个用于输入和输出的函数,常用的有:- input():用于从用户获取输入的函数。

- print():用于将数据输出到控制台的函数。

2. 输入函数input()input()函数用于从用户获取输入,可以提示用户输入特定信息,并将用户输入的内容作为字符串返回。

例子:```pythonname = input("请输入您的姓名:")print("您好,", name)```在以上例子中,程序会提示用户输入姓名,并将用户输入的内容保存到name变量中。

接着,程序通过print()函数将一个包含用户姓名的问候语输出到控制台。

3. 输出函数print()print()函数用于将数据输出到控制台。

可以输出字符串、数字、变量等内容。

例子:```pythonname = "Tom"age = 25print("姓名:", name)print("年龄:", age)```在以上例子中,程序通过print()函数输出了两行信息,第一行输出了字符串"姓名:"和变量name的值,第二行输出了字符串"年龄:"和变量age的值。

4. 格式化输出除了简单输出,print()函数还支持格式化输出。

常用的格式化输出方式有两种:- 使用占位符{}来表示需要插入的内容。

- 使用格式化字符串中的%f、%d、%s等占位符来格式化输出。

例子:```pythonname = "Tom"age = 25print("姓名:{}".format(name))print("年龄:%d" % age)```在以上例子中,程序通过format()和%操作符实现了格式化输出。

程序设计基础(Python语言)-习题参考答案(周翔 版)

程序设计基础(Python语言)-习题参考答案(周翔 版)

程序设计基础(Python语言)习题参考答案习题11. Python语言是吉多·范·罗苏姆开发的,具有特点如下:(1)解释执行(2)面向对象(3)开源性(4)易用性(5)可读性强(6)可扩展性(7)丰富的基础代码库(8)成熟的扩展库2. Python的主要应用领域(1)Web 开发(2)网络编程(3)科学计算与数据可视化(4)数据库应用(5)多媒体开发(6)电子游戏应用三、程序设计题1. 略2.>>> print('hello,world')3.(1)在IDLE中,“File”-“New File”(2)输入代码print('请输入您的姓名:')name=input()print(name,’欢迎您开启Python之旅!’)(3)“File”-“保存”,输入文件名、选择保存路径,保存文件。

(4)“Run”-“Run Module”,运行程序。

1. -7.700000e+012. 0.00433. 1.0三、程序设计题1.x=2.3e+3-1.34e-3ja=x.realb=x.imagprint('实部为:',a,'虚部为:',b)print('实部为:{:.2f},虚部为:{}'.format(a,b)) 2.a=eval(input("请输入秒数:"))h=a//3600m=(a%3600)//60s=a%60print('{:0>2}:{:0>2}:{:0>2}'.format(h,m,s)) 3.x=eval(input("请输入一个三位数:"))b=x//100s=(x%100)//10g=x%10print('百位数是',b,'十位数是',s,'各位数是',g)二、填空题1. 22. 【填空1】x+y+z>=240 and( x>=90 or y>=90 or z>=90)3. 【填空1】if,【填空2】:,【填空3】d=0.8,【填空4】else4. 【填空1】s=1,【填空2】i=2,【填空3】i<=10,【填空4】s*=i,【填空5】i+=15. 【填空1】range,【填空2】1000,【填空3】//,【填空4】%,【填空5】==三、程序设计题1. 参考代码如下:x=int(input("请输入你的成绩:"))if x>=90 :msg="你是学霸的!"else:msg="请继续努力!"print(msg)2. 参考代码如下:import mathTempStr=input('Please enter an angle or radian with units:')x = eval(TempStr[0:-1])if TempStr[-1] in ['A','a']:y=x*math.pi/180print('After convert, the radian is {:.2f}R'.format(y))elif TempStr[-1] in ['R','r']:y=180*x/math.piprint('After convert, the angle is {:.2f}A'.format(y))else:print('The input data\'s format is incorrect.')3. 参考代码如下:import randomnumber=random.randint(1,3)usernum=int(input("请输入剪刀(1)、石头(2)、布(3)后面的数字:"))print("电脑出的是",number)x=usernum-numberif x==0:msg='平局'elif x in [-2,1]:msg='玩家赢'msg='玩家输'print(msg)4. 参考代码如下:s=0t=1i=1while t>10**(-6):t=1/(i**2)s+=ti+=2pi=(s*8)**0.5print('π的近似值为:',pi)5. 参考代码如下:for m in range(2,101):i=2for i in range(2,m):if m%i==0:breakif not (i<m-1):print('{}是素数'.format(m))6. 参考代码如下:d=1s=1020while s>0:s=s-(s/2+2)d=d+1print('需要{}天卖完。

Python程序设计基础练习题及答案

Python程序设计基础练习题及答案

思考与练习答案练习一1.(略)2. 答:只有在第一行为‘空’、进入到第二行时,Sublime菜单项‘文件(F)’下拉菜单中的‘保存(S)’命令才成为可用。

3. 答:程序执行和交互执行两种方式。

4. 答:C练习二1. 答:不行,因为3不是一个有效的变量名,变量名只能以英文字母或下划线打头。

2. 答:可以。

3. 答:空字符串是单引号(或双引号)里不包含任何字符的字符串。

若单引号(或双引号)里包含了一个空格字符,那就表明该字符串里有字符,因此它不是空字符串。

所以,空字符串与单引号(或双引号)里面只包含一个空格字符的字符串,它们是两个不同的字符串概念。

4. 答:第一个print语句输出Please Wait Beyond TheLine.;第二个print语句输出please wait beyond the line.;第三个print语句输出Please Wait Beyond TheLine.5. 答:第一句输出的结果是20;第二句输出的是-1。

6. 答:输出:中华人民共和国,中华人民共和国7. 答:程序中出现n时,代表的是英文中的一个小写字母n;程序中出现\n时,反斜杠后跟随的n就不再是英文中的小写字母n,这个整体被视为是换行符。

8. 答:用str1[-10:-1]截取出的切片是a student。

为了将此切片反转过来,应该做如下的两个操作,第一是先将该切片存放到另一个变量str2里:str2=str1[-10:-1];然后将str2进行反转,即:str2[::-1]。

9. 答:7、32、1。

10. 答:有两种办法,一是当字符串中出现撇号(’)时,用双引号定义该字符串;二是用转义字符\’代替直接使用撇号。

11.答:0b、0o、0x。

12. 答:(1)表示要确定变量ch里的内容是否是介于0与9之间;(2)表示要确定变量ch里的内容是否是介于小写字母a与z之间; (3)表示要确定变量ch里的内容是否是介于大写字母A与Z之间。

2020年《python程序设计》基础知识及程序设计598题DB[含参考答案]

2020年《python程序设计》基础知识及程序设计598题DB[含参考答案]

2020年《python程序设计》基础知识及程序设计598题[含参考答案]一、填空题1.表达式 len('中国'.encode('utf-8')) 的值为___________。

(6)2.已知x = 'hello world.',那么表达式x.find('x')和x.rfind('x')的值都为_____________。

(-1)3.已知 x = 'a b c d',那么表达式 ','.join(x.split()) 的值为___________。

('a,b,c,d')4.正则表达式元字符________用来表示该符号前面的字符或子模式1次或多次出现。

(+)5.已知字符串x = 'hello world',那么执行语句x.replace('hello', 'hi') 之后,x的值为____________。

('hello world')6.已知 table = ''.maketrans('abcw', 'xyzc'),那么表达式 'Hellow world'.translate(table) 的值为______________________。

('Helloc corld')7.表达式 'abcab'.replace('a','yy') 的值为___________。

('yybcyyb')8.表达式 'abc.txt'.endswith(('.txt', '.doc', '.jpg')) 的值为___________。

《PYTHON程序设计基础》习题答案与分析

《PYTHON程序设计基础》习题答案与分析

Python程序设计基础习题答案与分析程昱第1章基础知识1.1简单说明如何选择正确的Python版本。

答:在选择Python的时候,一定要先考虑清楚自己学习Python的目的是什么,打算做哪方面的开发,有哪些扩展库可用,这些扩展库最高支持哪个版本的Python,是Python2.x还是Python3.x,最高支持到Python2.7.6还是Python2.7.9。

这些问题都确定以后,再做出自己的选择,这样才能事半功倍,而不至于把大量时间浪费在Python的反复安装和卸载上。

同时还应该注意,当更新的Python版本推出之后,不要急于更新,而是应该等确定自己所必须使用的扩展库也推出了较新版本之后再进行更新。

尽管如此,Python3毕竟是大势所趋,如果您暂时还没想到要做什么行业领域的应用开发,或者仅仅是为了尝试一种新的、好玩的语言,那么请毫不犹豫地选择Python3.x系列的最高版本(目前是Python3.4.3)。

1.2为什么说Python采用的是基于值的内存管理模式?Python采用的是基于值的内存管理方式,如果为不同变量赋值相同值,则在内存中只有一份该值,多个变量指向同一块内存地址,例如下面的代码。

>>>x=3>>>id(x)10417624>>>y=3>>>id(y)10417624>>>y=5>>>id(y)10417600>>>id(x)10417624>>>x=[1,2,3,1,1,2]>>>id(x[0])==id(x[3])==id(x[4])True1.3解释Python中的运算符“/”和“//”的区别。

答:在Python2.x中,“/”为普通除法,当两个数值对象进行除法运算时,最终结果的精度与操作数中精度最高的一致;在Python3.x中,“/”为真除法,与除法的数学含义一致。

[转载]Python语言程序设计基础(第二版)嵩天等课后习题答案

[转载]Python语言程序设计基础(第二版)嵩天等课后习题答案

[转载]Python语⾔程序设计基础(第⼆版)嵩天等课后习题答案第⼀次博⽂ Time:2018年04⽉28⽇ 星期六 11:37 ⼆次补充 2018年05⽉02⽇ 第⼀章 程序设计基本⽅法 P29# 1.1字符串的拼接str1 = input("请输⼊⼀个⼈的名字:")str2 = input("请输⼊⼀个地点:")print("世界这么⼤,{}想去{}看看。

".format(str1,str2))# 1.2整数序列求和n = input("请输⼊⼀个整数N:")sum = 0for i in range(int(n)):#或者调和函数eval(n)print(i,end = ' ')sum = sum + i+1print("1到N求和结果为:",sum)# 1.3 9*9乘法表# 版本⼀for i in range(1,10):for m in range(1,i+1):sum = i*mif m < i:if sum < 10:print(m,'*',i,"= {}".format(sum),end = ' ')else:print(m,'*',i,'=',sum,end = ' ')else:print(m,'*',i,'=',sum)# 版本⼆for i in range(1,10):for j in range(1,i+1):print("{} * {} = {:2}".format(j,i,i*j),end = ' ')print('')for i in range(1,11):tmp *= isum += tmpprint("1+2!+3!+4!+...+10!=",sum)# ---------1.5 猴⼦吃桃问题 ----------------------# # list(range(5,0,-1)) ----- [5, 4, 3, 2, 1]n = 1for i in range(5,0,-1):n = (n+1)*2 #n = (n+1)<<1 左移⼀位乘以2 print(n)# --------1.6 健康⾷谱输出 ------------------------# diet = ['西红柿','⼟⾖','鸡蛋','黄⽠','青菜']for i in range(5):for j in range(5):if (i != j):print(diet[i],diet[j],sep = '炒')# --------1.7 绘制五⾓星 --------------------------# from turtle import *##fillcolor("red")color('red','yellow') #color('线条颜⾊','填充颜⾊') begin_fill()while True:forward(200)right(144)if abs(pos()) < 1:breakend_fill()# ------1.8 太阳花的绘制 --------------------------# from turtle import *color('red','yellow')begin_fill()while True:if abs(pos()) <1:breakend_fill()done()第⼆章 Python程序实例解析# ---------------温度转换程序1.1 P35-------------------------#TempStr = input("请输⼊带有符号的温度值:")if TempStr[-1] in ['F','f']:C = (eval(TempStr[0:-1]) - 32) / 1.8print("华⽒温度{}转换为摄⽒度温度是:{:.2f}C".format(TempStr,C)) elif TempStr[-1] in ['C','c']:F = eval(TempStr[0:-1])*1.8 + 32print("摄⽒温度{}转换为华⽒温度是:{:.2f}F".format(TempStr,F)) else:print("输⼊格式错误")# -----------------循环输⼊----------------------------------#TempStr = input("请输⼊带有符号的温度值:")while TempStr[-1] not in ['N','n']:if TempStr[-1] in ['F','f']:C = (eval(TempStr[0:-1]) - 32) / 1.8print("华⽒温度{}转换为摄⽒度温度是:{:.2f}C".format(TempStr,C)) elif TempStr[-1] in ['C','c']:F = eval(TempStr[0:-1])*1.8 + 32print("摄⽒温度{}转换为华⽒温度是:{:.2f}F".format(TempStr,F))else:print("输⼊格式错误")TempStr = input("请输⼊带有符号的温度值:")# --------------------------正⽅形的绘制---------------------------------#im import turtle as tt.pensize(3)for i in range(1,5):t.fd(100)# --------------------------六边形的绘制---------------------------------#im import turtle as tt.pensize(3)for i in range(6):t.fd(100)t.seth(60+60*i)t.done()# --------------------------叠边形的绘制---------------------------------#im import turtle as tt.pensize(3)for i in range(9):t.fd(150)t.seth(80+80*i)t.done()# --------------------------同切圆的绘制---------------------------------#im import turtle as tt.pensize(3)for i in range(4):t.circle(50+i*10)t.done()# ----------------------------长度转换------------------## 1⽶ = 39.37英⼨le = input()if le[-1] in ['M','m']:temp = eval(le[0:-1]) * 39.37print("{:.3f}in".format(temp))elif le[-2:] in ['in','IN']:temp = eval(le[0:-2]) / 39.37print("{:.3f}m".format(temp))else:print("输⼊格式错误")# ------------------------多彩蟒蛇的绘制---------------------------------#def drawSnake(r,angle,length):t.seth(-40)for i in range(length):t.pencolor(week[i%8])t.circle(r,angle)t.pencolor(week[(i+1)%8])t.circle(-r,angle)t.circle(r,angle/2)t.fd(40)t.circle(16,180)t.fd(40*2/3)t.setup(650,350)t.penup()t.fd(-250)t.pendown()t.pensize(25)drawSnake(40,80,9)t.done()第三章 基本数据类型 天天向上的⼒量 在⼀年中,如果每天进步》》,那么⼀年下来会进步到多少呢? 在⼀年中,如果每天退步》》,那么⼀年下来会倒退到多少呢?⼀年中每天提升0.001:1.44,⼀年中每天能⼒下降0.001:0.69⼀年中每天提升0.005:6.17,⼀年中每天能⼒下降0.005:0.16⼀年中每天提升0.01:37.78,⼀年中每天能⼒下降0.01:0.03向上5天向下2天的⼒量:4.63。

程序设计基础课后习题答案

程序设计基础课后习题答案

程序设计基础课后习题答案程序设计基础课后习题答案在学习程序设计基础课程时,习题是帮助我们巩固所学知识的重要方式。

通过解答习题,我们可以更好地理解并应用所学的编程概念和技巧。

下面是一些常见的程序设计基础习题及其答案,供大家参考。

1. 习题:编写一个程序,计算并输出1到100之间所有奇数的和。

答案:```pythonsum = 0for i in range(1, 101, 2):sum += iprint(sum)```2. 习题:编写一个程序,判断一个给定的整数是否为素数。

答案:```pythondef is_prime(n):if n <= 1:return Falsefor i in range(2, int(n ** 0.5) + 1):if n % i == 0:return Falsereturn Truenum = int(input("请输入一个整数:"))if is_prime(num):print("是素数")else:print("不是素数")```3. 习题:编写一个程序,找出一个给定字符串中最长的单词。

答案:```pythondef find_longest_word(string):words = string.split()longest_word = ""for word in words:if len(word) > len(longest_word):longest_word = wordreturn longest_wordsentence = input("请输入一个字符串:")print("最长的单词是:", find_longest_word(sentence))```4. 习题:编写一个程序,将一个给定的整数列表进行排序。

2020年《python程序设计》基础知识及程序设计598题UO[含参考答案]

2020年《python程序设计》基础知识及程序设计598题UO[含参考答案]

2020年《python程序设计》基础知识及程序设计598题[含参考答案]一、填空题1.在设计正则表达式时,字符_______紧随任何其他限定符(*.+.?.{n}.{n,}.{n,m})之后时,匹配模式是“非贪心的”,匹配搜索到的.尽可能短的字符串。

(?)2.已知函数定义def demo(x, y, op):return eval(str(x)+op+str(y)),那么表达式demo(3, 5, '+')的值为______________________。

(8)3.已知 x = 'a b c d',那么表达式 ','.join(x.split()) 的值为___________。

('a,b,c,d')4.正则表达式元字符________用来表示该符号前面的字符或子模式1次或多次出现。

(+)5.已知 table = ''.maketrans('abcw', 'xyzc'),那么表达式 'Hellow world'.translate(table) 的值为______________________。

('Helloc corld')6.表达式 'abcab'.replace('a','yy') 的值为___________。

('yybcyyb')7.表达式 len('中国'.encode('gbk')) 的值为____________。

(4)8.表达式 'abc.txt'.endswith(('.txt', '.doc', '.jpg')) 的值为___________。

(True)9.假设正则表达式模块re已导入,那么表达式re.sub('\d+', '1', 'a12345bbbb67c890d0e') 的值为_____________________。

2020年《python程序设计》基础知识及程序设计598题IY[含参考答案]

2020年《python程序设计》基础知识及程序设计598题IY[含参考答案]

2020年《python程序设计》基础知识及程序设计598题IY[含参考答案]2020年《python程序设计》基础知识及程序设计598题[含参考答案]⼀、填空题1.表达式 r'c:\windows\notepad.exe'.endswith('.exe') 的值为_____________。

(True)2.已知函数定义def demo(x, y, op):return eval(str(x)+op+str(y)),那么表达式demo(3, 5, '+')的值为______________________。

(8)3.表达式 len('abc'.ljust(20)) 的值为______________。

(20)4.表达式 'test.py'.endswith(('.py', '.pyw')) 的值为__________。

(True)5.表达式 'Hello world!'[-4:] 的值为________________。

('rld!')6.假设re模块已导⼊,那么表达式re.findall('(\d)\\1+', '33abcd112') 的值为___________________。

(['3', '1'])7.已知x = 'a234b123c',并且re模块已导⼊,则表达式re.split('\d+', x) 的值为_________________。

(['a', 'b', 'c'])8.在设计正则表达式时,字符_______紧随任何其他限定符(*.+.?.{n}.{n,}.{n,m})之后时,匹配模式是“⾮贪⼼的”,匹配搜索到的.尽可能短的字符串。

Python程序设计习题与答案

Python程序设计习题与答案
(i)
t = t/i
else:
i+=1
print x,'=','*'.join(map(str,result))
编写程序,至少利用2种不同的方式计算100之内所有奇数的和。
答:Python 代码如下,假设是利用Python 只需要把其中的print()函数改成print语句即可。
x = [i for i in range(1,100) if i%2==1]
while True:
result = (x)
if result:
if (0) != 0:
x = x[:(0)+1]+'I'+x[(0)-1:]
else:
x = x[:(0)]+'I'+x[(0)-1:]
else:
break
print(x)
假设有一段英文,其中有单词中间的字母“i”误写为“I”,请编写程序进行纠正。
答:那个地址给出Python 代码,假设是利用Python 的话只需要修改其中的print()函数为print语句即可。
def Sum(v):
s = 0
for i in v:
s += i
return s
x = [1,2,3,4,5]
print(Sum(x))
x = (1,2,3,4,5)
print(Sum(x))
《Python程序设计》习题与参考答案
第1章 基础知识
简单说明如何选择正确的Python版本。
答:
在选择Python的时候,必然要先考虑清楚自己学习Python的目的是什么,打算做哪方面的开发,有哪些扩展库可用,这些扩展库最高支持哪个版本的Python,是Python 仍是Python ,最高支持到Python 仍是Python 。这些问题都确信以后,再做出自己的选择,如此才能事半功倍,而不至于把大量时刻浪费在Python的反复安装和卸载上。同时还应该注意,当更新的Python版本推出以后,不要急于更新,而是应该等确信自己所必需利用的扩展库也推出了较新版本以后再进行更新。

2020年《python程序设计》基础知识及程序设计598题HZ[含参考答案]

2020年《python程序设计》基础知识及程序设计598题HZ[含参考答案]

2020年《python程序设计》基础知识及程序设计598题[含参考答案]一、填空题1.假设正则表达式模块re已导入,那么表达式re.sub('\d+', '1', 'a12345bbbb67c890d0e') 的值为_____________________。

('a1bbbb1c1d1e')2.代码 print(1,2,3,sep=':') 的执行结果为__________________。

(1:2:3)3.表达式 'abcab'.strip('ab') 的值为__________。

('c')4.已知 x = 'a b c d',那么表达式 ','.join(x.split()) 的值为___________。

('a,b,c,d')5.正则表达式元字符________用来表示该符号前面的字符或子模式1次或多次出现。

(+)6.表达式'hello world, hellow every one'.replace('hello', 'hi') 的值为________________________。

('hi world, hiw every one')7.已知 table = ''.maketrans('abcw', 'xyzc'),那么表达式 'Hellow world'.translate(table) 的值为______________________。

('Helloc corld')8.表达式':'.join('hello world.'.split())的值为___________________。

2020年《python程序设计》基础知识及程序设计598题DU含参考答案

2020年《python程序设计》基础知识及程序设计598题DU含参考答案

2020年《python程序设计》基础知识及程序设计598题DU含参考答案2020年《Python程序设计》基础知识及程序设计598题目含参考答案本文旨在介绍2020年《Python程序设计》课程中的基础知识,并提供包含598道编程题目的参考答案。

Python程序设计是一门重要的计算机科学课程,是学习和掌握Python编程语言的关键。

通过学习本课程,学生将能够了解Python的基础知识,掌握编程技巧,并能够根据需要自主设计并实现各种有用的程序。

请按照以下内容继续阅读,了解本文的详细内容。

第一章:Python语言基础知识本章将介绍Python编程语言的基础知识,包括变量、数据类型、运算符、条件语句、循环语句等。

1.1 变量和数据类型Python中的变量用于存储数据,可以是数字、字符串、列表等。

变量的命名需要遵循一定的规则,如不能以数字开头,不能使用特殊字符等。

1.2 运算符Python中常用的运算符包括算术运算符、比较运算符、逻辑运算符等。

运算符可以用于对变量进行不同的操作。

1.3 条件语句条件语句用于根据条件的真假执行不同的代码块。

其中,常用的条件语句包括if语句、else语句和elif语句。

1.4 循环语句循环语句用于重复执行一段代码。

Python中的循环语句包括for循环和while循环。

第二章:Python程序设计本章将介绍Python程序设计的相关知识,包括函数、列表、字典、字符串处理等。

2.1 函数函数是一段可重用的代码块,可以接受输入参数并返回结果。

函数可以提高代码的可读性和可维护性,同时也能提高代码的效率。

2.2 列表列表是Python中常用的数据结构,可以存储多个元素,并且可以根据索引对列表进行访问和修改。

2.3 字典字典是一种键值对存储的数据结构,通过键来访问对应的值。

字典可以用于存储具有关联关系的数据。

2.4 字符串处理字符串处理在Python程序设计中非常重要,包括字符串的拼接、分割、替换等操作。

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

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

Pytho‎n程序设计‎基础习题答案与‎分析程昱第1章基础知识1.1 简单说明如‎何选择正确‎的P yth‎o n版本。

答:在选择Py‎t hon的‎时候,一定要先考‎虑清楚自己‎学习Pyt‎h on的目‎的是什么,打算做哪方‎面的开发,有哪些扩展‎库可用,这些扩展库‎最高支持哪‎个版本的P‎y thon‎,是Pyth‎o n 2.x还是Py‎t hon 3.x,最高支持到‎P y tho‎n 2.7.6还是Py‎t hon 2.7.9。

这些问题都‎确定以后,再做出自己‎的选择,这样才能事‎半功倍,而不至于把‎大量时间浪‎费在Pyt‎h on的反‎复安装和卸‎载上。

同时还应该‎注意,当更新的P‎y thon‎版本推出之‎后,不要急于更‎新,而是应该等‎确定自己所‎必须使用的‎扩展库也推‎出了较新版‎本之后再进‎行更新。

尽管如此,Pytho‎n 3毕竟是大‎势所趋,如果您暂时‎还没想到要‎做什么行业‎领域的应用‎开发,或者仅仅是‎为了尝试一‎种新的、好玩的语言‎,那么请毫不‎犹豫地选择‎P y tho‎n 3.x系列的最‎高版本(目前是Py‎t hon 3.4.3)。

1.2 为什么说P‎y thon‎采用的是基‎于值的内存‎管理模式?Pytho‎n采用的是‎基于值的内‎存管理方式‎,如果为不同‎变量赋值相‎同值,则在内存中‎只有一份该‎值,多个变量指‎向同一块内‎存地址,例如下面的‎代码。

>>> x = 3>>> id(x)10417‎624>>> y = 3>>> id(y)10417‎624>>> y = 5>>> id(y)10417‎600>>> id(x)10417‎624>>> x = [1, 2, 3, 1, 1, 2]>>> id(x[0])==id(x[3])==id(x[4])True1.3 解释Pyt‎h o n中的‎运算符“/”和“//”的区别。

2020年《python程序设计》基础知识及程序设计598题IE[含参考答案]

2020年《python程序设计》基础知识及程序设计598题IE[含参考答案]

2020年《python程序设计》基础知识及程序设计598题[含参考答案]一、填空题1.表达式 len('中国'.encode('gbk')) 的值为____________。

(4)2.已知x为非空列表,那么表达式 random.choice(x) in x 的值为___________。

(True)3.表达式 eval('''__import__('math').sqrt(3**2+4**2)''') 的值为_________。

(5.0)4.代码 for i in range(3):print(i, end=',') 的执行结果为_________________。

(0,1,2,)5.代码 print(1,2,3,sep=':') 的执行结果为__________________。

(1:2:3)6.表达式 'abc.txt'.endswith(('.txt', '.doc', '.jpg')) 的值为___________。

(True)7.表达式 [str(i) for i in range(3)] 的值为____________。

(['0', '1', '2'])8.语句 print(re.match('abc', 'defg')) 输出结果为_____________。

(None)9.已知字符串x = 'hello world',那么执行语句x.replace('hello', 'hi') 之后,x的值为____________。

('hello world')10.表达式 'C:\\windows\\notepad.exe'.endswith('.exe') 的值为________。

2020年《python程序设计》基础知识及程序设计598题OM[含参考答案]

2020年《python程序设计》基础知识及程序设计598题OM[含参考答案]

2020年《python程序设计》基础知识及程序设计598题[含参考答案]一、填空题1.代码 print(re.match('^[a-zA-Z]+$','abcDEFG000')) 的输出结果为_________。

(None)2.表达式 3 and 5 的值为____________。

(5)3.正则表达式元字符________用来表示该符号前面的字符或子模式0次或多次出现。

(*)4.已知 x = 'a b c d',那么表达式 ','.join(x.split()) 的值为___________。

('a,b,c,d')5.已知 table = ''.maketrans('abcw', 'xyzc'),那么表达式 'Hellow world'.translate(table) 的值为______________________。

('Helloc corld')6.表达式 chr(ord('A')+2) 的值为__________。

('C')7.表达式 len('中国'.encode('gbk')) 的值为____________。

(4)8.表达式 len('中国'.encode('utf-8')) 的值为___________。

(6)9.表达式 [str(i) for i in range(3)] 的值为____________。

(['0', '1', '2'])10.在设计正则表达式时,字符_______紧随任何其他限定符(*.+.?.{n}.{n,}.{n,m})之后时,匹配模式是“非贪心的”,匹配搜索到的.尽可能短的字符串。

2020年《python程序设计》基础知识及程序设计598题EF[含参考答案]

2020年《python程序设计》基础知识及程序设计598题EF[含参考答案]

2020年《python程序设计》基础知识及程序设计598题[含参考答案]一、填空题1.表达式 len('abcdefg'.ljust(3)) 的值为_________。

(7)2.表达式 '%s'%[1,2,3] 的值为_____________。

('[1, 2, 3]')3.表达式 'test.py'.endswith(('.py', '.pyw')) 的值为__________。

(True)4.表达式 'Hello world!'[-4] 的值为________________。

('r')5.表达式 ''.join(re.split('[sd]','asdssfff')) 的值为_______________。

('afff')6.表达式 ''.join('asdssfff'.split('sd')) 的值为____________。

('assfff')7.表达式re.split('\.+', 'alpha.beta...gamma..delta') 的值为_______________________。

(['alpha', 'beta', 'gamma', 'delta'])8.代码 print(re.match('^[a-zA-Z]+$','abcDEFG000')) 的输出结果为_________。

(None)9.表达式 'a' + 'b' 的值为_____________。

('ab')10.在设计正则表达式时,字符_______紧随任何其他限定符(*.+.?.{n}.{n,}.{n,m})之后时,匹配模式是“非贪心的”,匹配搜索到的.尽可能短的字符串。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Python程序设计基础习题答案与分析程昱第1章基础知识1.1简单说明如何选择正确的Python版本。

答:在选择Python的时候,一定要先考虑清楚自己学习Python的目的是什么,打算做哪方面的开发,有哪些扩展库可用,这些扩展库最高支持哪个版本的Python,是Python2.x还是Python3.x,最高支持到Python2.7.6还是Python2.7.9。

这些问题都确定以后,再做出自己的选择,这样才能事半功倍,而不至于把大量时间浪费在Python的反复安装和卸载上。

同时还应该注意,当更新的Python版本推出之后,不要急于更新,而是应该等确定自己所必须使用的扩展库也推出了较新版本之后再进行更新。

尽管如此,Python3毕竟是大势所趋,如果您暂时还没想到要做什么行业领域的应用开发,或者仅仅是为了尝试一种新的、好玩的语言,那么请毫不犹豫地选择Python3.x系列的最高版本(目前是Python3.4.3)。

1.2为什么说Python采用的是基于值的内存管理模式?Python采用的是基于值的内存管理方式,如果为不同变量赋值相同值,则在内存中只有一份该值,多个变量指向同一块内存地址,例如下面的代码。

>>>x=3>>>id(x)10417624>>>y=3>>>id(y)10417624>>>y=5>>>id(y)10417600>>>id(x)10417624>>>x=[1,2,3,1,1,2]>>>id(x[0])==id(x[3])==id(x[4])True1.3解释Python中的运算符“/”和“//”的区别。

答:在Python2.x中,“/”为普通除法,当两个数值对象进行除法运算时,最终结果的精度与操作数中精度最高的一致;在Python3.x中,“/”为真除法,与除法的数学含义一致。

在Python2.x和Python3.x中,“//”表示整除,对整数或浮点数进行该运算时,结果为数学除法的整数部分。

1.4在Python中导入模块中的对象有哪几种方式?答:常用的有三种方式,分别为●import模块名[as别名]●from模块名import对象名[as别名]●from math import*1.5pip是目前比较常用的Python扩展库管理工具。

1.6解释Python脚本程序的“__name__”变量及其作用。

答:每个Python脚本在运行时都有一个“__name__”属性。

如果脚本作为模块被导入,则其“__name__”属性的值被自动设置为模块名;如果脚本独立运行,则其“__name__”属性值被自动设置为“__main__”。

利用“__name__”属性即可控制Python程序的运行方式。

1.7运算符“%”可以(可以、不可以)对浮点数进行求余数操作。

1.8一个数字“5”是(是、不是)合法的Python表达式。

1.9在Python2.x中,input()函数接收到的数据类型由界定符确定,而在Python3.x中该函数则认为接收到的用户输入数据一律为字符串。

1.10编写程序,用户输入一个三位以上的整数,输出其百位以上的数字。

例如用户输入1234,则程序输出12。

(提示:使用整除运算。

)答:1)Python3.4.2代码:x=input('Please input an integer of more than3digits:')try:x=int(x)x=x//100if x==0:print('You must input an integer of more than3digits.')else:print(x)except BaseException:print('You must input an integer.')2)Python2.7.8代码:import typesx=input('Please input an integer of more than3digits:') if type(x)!=types.IntType:print'You must input an integer.'elif len(str(x))!=4:print'You must input an integer of more than3digits.' else:print x//100第2章Python序列2.1为什么应尽量从列表的尾部进行元素的增加与删除操作?答:当列表增加或删除元素时,列表对象自动进行内存扩展或收缩,从而保证元素之间没有缝隙,但这涉及到列表元素的移动,效率较低,应尽量从列表尾部进行元素的增加与删除操作以提高处理速度。

2.2range()函数在Python2.x中返回一个包含整数的列表,而Python3.x的range()函数返回一个可迭代的range对象。

2.3编写程序,生成包含1000个0到100之间的随机整数,并统计每个元素的出现次数。

答:可以使用集合来实现该功能。

1)Python3.4.2代码import randomx=[random.randint(0,100)for i in range(1000)]d=set(x)for v in d:print(v,':',x.count(v))2)Python2.7.8代码import randomx=[random.randint(0,100)for i in range(1000)]d=set(x)for v in d:print v,':',x.count(v)也可以直接使用字典来实现该功能,并且获得更高的执行效率,例如下面的Python3.4.2代码:listRandom=[random.randint(1,100)for i in range(1000000)]d=dict()start=time.time()for i in listRandom:#对随机数列表扫描一次,即可得到结果d[i]=d.get(i,0)+1print(time.time()-start)2.4表达式“[3]in[1,2,3,4]”的值为False。

2.5编写程序,用户输入一个列表和2个整数作为下标,然后输出列表中介于2个下标之间的元素组成的子列表。

例如用户输入[1,2,3,4,5,6]和2,5,程序输出[3,4,5,6]。

答:1)Python3.4.2代码x=input('Please input a list:')x=eval(x)start,end=eval(input('Please input the start position and the end position:'))print(x[start:end])2)Python2.7.8代码x=input('Please input a list:')start,end=input('Please input the start position and the end position:')print x[start:end]2.6列表对象的sort()方法用来对列表元素进行原地排序,该函数返回值为None。

2.7列表对象的remove()方法删除首次出现的指定元素,如果列表中不存在要删除的元素,则抛出异常。

2.8假设列表对象aList的值为[3,4,5,6,7,9,11,13,15,17],那么切片aList[3:7]得到的值是[6,7,9,11]。

2.9设计一个字典,并编写程序,用户输入内容作为“键”,然后输出字典中对应的“值”,如果用户输入的“键”不存在,则输出“您输入的键不存在!”答:1)Python3.4.2代码d={1:'a',2:'b',3:'c',4:'d'}v=input('Please input a key:')v=eval(v)print(d.get(v,'您输入的的键不存在'))2)Python2.7.8代码d={1:'a',2:'b',3:'c',4:'d'}v=input('Please input a key:')print(d.get(v,'您输入的的键不存在'))2.10编写程序,生成包含20个随机数的列表,然后将前10个元素升序排列,后10个元素降序排列,并输出结果。

答:1)Python3.4.2代码import randomx=[random.randint(0,100)for i in range(20)]print(x)y=x[0:10]y.sort()x[0:10]=yy=x[10:20]y.sort(reverse=True)x[10:20]=yprint(x)2)Python2.7.8代码import randomx=[random.randint(0,100)for i in range(20)]print xy=x[0:10]y.sort()x[0:10]=yy=x[10:20]y.sort(reverse=True)x[10:20]=yprint x2.11在Python中,字典和集合都是用一对大括号作为界定符,字典的每个元素有两部分组成,即“键”和“值”,其中“键”不允许重复。

2.12使用字典对象的items()方法可以返回字典的“键-值对”列表,使用字典对象的keys()方法可以返回字典的“键”列表,使用字典对象的values()方法可以返回字典的“值”列表。

2.13假设有列表a=['name','age','sex']和b=['Dong',38,'Male'],请使用一个语句将这两个列表的内容转换为字典,并且以列表a中的元素为“键”,以列表b中的元素为“值”,这个语句可以写为c=dict(zip(a,b))。

2.14假设有一个列表a,现要求从列表a中每3个元素取1个,并且将取到的元素组成新的列表b,可以使用语句b=a[::3]。

2.15使用列表推导式生成包含10个数字5的列表,语句可以写为[5for i in range(10)]。

相关文档
最新文档