1、try: x = int(x) x = x/100 if x = 0: print(You must input an integer of more than 3 digits. else: print(x)except BaseException:You must input an integer.2)Python 2.7.8代码:import typesif type(x) != types.IntType: print elif len(str(x) != 4:else: print x/100第2章 Python数据结构2.1 为什么应尽量从列表的尾部进行元素的增加与删除操作?当列表
2、增加或删除元素时,列表对象自动进行内存扩展或收缩,从而保证元素之间没有缝隙,但这涉及到列表元素的移动,效率较低,应尽量从列表尾部进行元素的增加与删除操作以提高处理速度。2.2 编写程序,生成包含1000个0到100之间的随机整数,并统计每个元素的出现次数。使用集合。1)Python 3.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)Python 2.7.8代码 print v, , x.count(v)2.3 编写程序,用
3、户输入一个列表和2个整数作为下标,然后输出列表中介于2个下标之间的元素组成的子列表。例如用户输入1,2,3,4,5,6和2,5,程序输出3,4,5,6。Please input a list:x = eval(x)start, end = eval(input(Please input the start position and the end position:)print(xstart:end)start, end = input(print xstart:end2.4 设计一个字典,并编写程序,用户输入内容作为键,然后输出字典中对应的值,如果用户输入的键不存在,则输出“您输入的键不存在
4、!”d = 1:a, 2:b, 3:c, 4:dv = input(Please input a key:v = eval(v)print(d.get(v,您输入的的键不存在2.5 编写程序,生成包含20个随机数的列表,然后将前10个元素升序排列,后10个元素降序排列,并输出结果。x = random.randint(0,100) for i in range(20)print(x)y = x0:10y.sort()x0:10 = yy = x10:20y.sort(reverse=True)x10:20 = yprint x2.6 在Python中,字典和集合都是用一对 大括号 作为定界符,
5、字典的每个元素有两部分组成,即 键 和 值 ,其中 键 不允许重复。2.7 假设有列表a = name,agesex和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命令来删除元组中的部分元素。第
6、3章 选择结构与循环结构3.1 分析逻辑运算符“or”的短路求值特性。假设有表达式“表达式1 or 表达式2”,如果表达式1的值等价于True,那么无论表达式2的值是什么,整个表达式的值总是等价于True。因此,不需要再计算表达式2的值。3.2 编写程序,运行后用户输入4位整数作为年份,判断其是否为闰年。如果年份能被400整除,则为闰年;如果年份能被4整除但不能被100整除也为闰年。Please input an integer of 4 digits meaning the year:if x%400=0 or (x%4=0 and not x%100=0):YesNo3.3 编写程序,生成
7、一个包含50个随机整数的列表,然后删除其中所有奇数。从后向前删。x = random.randint(0,100) for i in range(50)i = len(x)-1while i=0: if xi%2=1: del xi i-=1把上面的代码中第三行和最后一行改为print x即可。34 编写程序,生成一个包含20个随机整数的列表,然后对其中偶数下标的元素进行降序排列,奇数下标的元素不变。使用切片。y = x:2x:2 = y35 编写程序,用户从键盘输入小于1000的整数,对其进行因式分解。例如,10=25,60=2235。Please input an integer less
8、 than 1000:x = eval(xt = xi = 2result = while True: if t=1: break if t%i=0: result.append(i) t = t/i i+=1Print x,=*.join(map(str,result)print x,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=1print(sum(x)print(sum(ran
9、ge(1,100):2)3.7 编写程序,实现分段函数计算,如下表所示。xyx0=x55103x-510200.5x-220=xPlease input x:if x=20: print(0)elif 05:elif 510: print(3*x-5)elif 1020: 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
10、am man, and i am 38 years old.I am not a businessman.x = x.replace(i I i I 2)使用正则表达式import repattern = pile(r(?w|b)i(?w) result = pattern.search(x) if result: if result.start(0) != 0: x = x:result.start(0)+1+I+xresult.end(0)-1:result.start(0)+4.2 假设有一段英文,其中有单词中间的字母“i”误写为“I”,请编写程序进行纠正。I am a teacher,
11、I am man, and I am 38 years old.I am not a busInessman.w)I(?w)i4.3 有一段英文文本,其中有单词连续重复了2次,编写程序检查重复的单词并只保留一个。例如文本内容为“This is is a desk.”,程序输出为“This is a desk.”1)方法一x = This is a a desk.b(w+)(s+1)1,bmatchResult = pattern.search(x)x = pattern.sub(matchResult.group(1),x)2)方法二Pbw+b)s(?P=f)x = x.replace(mat
12、chResult.group(0),matchResult.group(1)4.4 简单解释Python的字符串驻留机制。Python支持字符串驻留机制,即:对于短字符串,将其赋值给多个不同的对象时,内存中只有一个副本,多个对象共享该副本。这一点不适用于长字符串,即长字符串不遵守驻留机制,下面的代码演示了短字符串和长字符串在这方面的区别。 a = 1234 b = id(a) = id(b)True*50False4.5 编写程序,用户输入一段英文,然后输出这段英文中所有长度为3个字母的单词。Please input a string:ba-zA-Z3bprint(pattern.findal
13、l(x)第5章 函数设计与使用5.1 运行5.3.1小节最后的示例代码,查看结果并分析原因。原因是对于函数的默认值参数只会被处理一次,下次再调用函数并且不为默认值参数赋值时会继续使用上一次的结果,对于列表这样的结构,如果调用函数时为默认值参数的列表插入或删除了元素,将会得到保留,从而影响下一次调用。5.2 编写函数,判断一个整数是否为素数,并编写主程序调用该函数。import mathdef IsPrime(v): n = int(math.sqrt(v)+1) for i in range(2,n): if v%i=0: return print(IsPrime(37)print(IsPri
14、me(60)print(IsPrime(113)5.3 编写函数,接收一个字符串,分别统计大写字母、小写字母、数字、其他字符的个数,并以元组的形式返回结果。def demo(v): capital = little = digit = other =0 for i in v: if A=iZ capital+=1 elif z little+=109 digit+=1 other+=1 return (capital,little,digit,other)capital = little = digit = other =0print(demo(x)5.4 在Python程序中,局部变量会隐藏
15、同名的全局变量吗?请编写代码进行验证。答案:会。 def demo(): a=3 print a a=5 demo()3 a5.5 编写函数,可以接收任意多个整数并输出其中的最大值和所有整数之和。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()。def Sum(v): s = 0 s += i return sx = 1,2,3,4,5print(Sum(x)x = (1,2,3,4,5)5.7 编写函数,模拟内置函数sorted
16、()。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,7print(Sorted(x)第6章 面向对象程序设计6.1 继承6.5节例2中的Person类生成Student类,填写新的函数用来设置学生专业,然后生成该类对象并显示信息。Python 3.4.2代码为class Person(object): #基类必须继承于object,否则在派生类中将无法使用super()函数 def _init_(self, name = , age = 20,
17、 sex = man): self.setName(name) self.setAge(age) self.setSex(sex) def setName(self, name): if not isinstance(name,str):name must be string. return self._name = name def setAge(self, age): if not isinstance(age,int):age must be integer. self._age = age def setSex(self, sex): if sex != and sex !womansex must be man or woman self._sex =
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1