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个字母的单词。 import re
x = input('Please input a string:')
pattern = re.compile(r'\\b[a-zA-Z]{3}\\b') print(pattern.findall(x))
第5章 函数设计与使用
答:原因是对于函数的默认值参数只会被处理一次,下次再调用函数并且不为默认值参数赋值时会继续使用上一次的结果,对于列表这样的结构,如果调用函数时为默认值参数的列表插入或删除了元素,将会得到保留,从而影响下一次调用。
5.2 编写函数,判断一个整数是否为素数,并编写主程序调用该函数。 import math def 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 编写函数,接收一个字符串,分别统计大写字母、小写字母、数字、其他字符的
个数,并以元组的形式返回结果。 def demo(v):
capital = little = digit = other =0 for i in v: if 'A'<=i<='Z': capital+=1 elif 'a'<=i<='z': little+=1 elif '0'<=i<='9': digit+=1 else: other+=1
return (capital,little,digit,other) x = 'capital = little = digit = other =0' print(demo(x))
5.4 在Python程序中,局部变量会隐藏同名的全局变量吗?请编写代码进行验证。