》》点赞,收藏+关注,理财&技术不迷路《《
课后习题十三(字符串的格式化):
0. 根据说明填写相应的字符串格式化符号
符 号 说 明
%c 格式化字符及其ASCII码
%s 格式化字符串
%d 格式化整数
%o 格式化无符号八进制数
%x 格式化无符号十六进制数
%X 格式化无符号十六进制数(大写)
%f 格式化定点数,可指定小数点后的精度
%e 用科学计数法格式化定点数
%E 作用同%e,用科学计数法格式化定点数
%g 根据值的大小决定使用%f或者%e
%G 作用同%g,根据值的大小决定使用%F或者%E
1. 请问以下这行代码会打印什么内容?
>>> “{
{1}}”.format(“不打印”, “打印”)
‘{1}’
2. 以下代码中,a, b, c是什么参数?
>>> “{a} love {b}.{c}”.format(a=”I”, b=”FishC”, c=”com”)
‘I love FishC.com’
3. 以下代码中,{0}, {1}, {2}是什么参数?
>>> “{0} love {1}.{2}”.format(“I”, “FishC”, “com”)
‘I love FishC.com’
位置参数 4. 如果想要显示Pi = 3.14,format前边的字符串应该怎么填写呢?
>>> ‘{0}{1:.2f}’.format(‘Pi = ‘, 3.1415)
‘Pi = 3.14’
复制代码
动动手答案:
0. 编写一个进制转换程序
q = True
while q:
num = input(‘请输入一个整数(输入Q结束程序):’)
if num != ‘Q’:
num = int(num)
print(‘十进制 -> 十六进制 : %d -> 0x%x’ % (num, num))
print(‘十进制 -> 八进制 : %d -> 0o%o’ % (num, num))
print(‘十进制 -> 二进制 : %d -> ‘ % num, bin(num))
else:
q = False
课后习题十四(序列):
0.我们根据列表,元组和字符串的共同特点,把它们三统称为什么? 序列,因为他们有以下共同点: 1)都可以通过索引得到每一个元素2)默认索引值总是从0开始(当然灵活的Python还支持负数索引)3)可以通过分片的方法得到一个范围内的元素的集合4)有很多共同的操作符(重复操作符、拼接操作符、成员关系操作符)
1.请问分别使用什么BIF,可以把一个可迭代对象转换为列表,元组和字符串? list([iterable]) 把可迭代对象转换为列表 tuple([iterable]) 把可迭代对象转换为元祖 str(obj) 把对象转换为字符串 例如:
>>> temp = ‘I love FishC.com!’
>>> list(temp)
[‘I’, ‘ ‘, ‘l’, ‘o’, ‘v’, ‘e’, ‘ ‘, ‘F’, ‘i’, ‘s’, ‘h’, ‘C’, ‘.’, ‘c’, ‘o’, ‘m’, ‘!’]
复制代码
2.你还能附属出‘迭代’的概念吗?
所谓迭代,是重复反馈过程的活动,其目的通常是为了接近并到达所需的目标或结果。每一次对过程的重复被称为一次“迭代”,而每一次迭代得到的结果会被用来作为下一次迭代的初始值。
3. 你认为调用 max(‘I love FishC.com’) 会返回什么值?为什么?
会返回:’v’,因为字符串在计算机中是以ASCII码的形式存储(ASCII对照表:
http://bbs.fishc.com/thread-41199-1-1.html
),参数中ASCII码值最大的是’v’对应的118。
4. 哎呀呀,现在的小屁孩太调皮了,邻居家的孩子淘气,把小甲鱼刚写好的代码画了个图案,麻烦各位鱼油恢复下啊,另外这家伙画的是神马吗?怎么那么眼熟啊!?
name = input(‘请输入待查找的用户名:’)
score = [[‘迷途’, 85], [‘黑夜’, 80], [‘小布丁’, 65], [‘福禄娃娃’, 95], [‘怡静’, 90]]
IsFind = False
for each in score:
if name in each:
print(name + ‘的得分是:’, each[1])
IsFind = True
break
if IsFind == False:
print(‘查找的数据不存在!’)
复制代码
动动手答案:
0. 猜想一下 min() 这个BIF的实现过程
def min(x):
least = x[0]
for each in x:
if each < least:
least = each
return least
print(min(‘123456789’))
复制代码
注:关于函数的定义和使用在下一讲的课程中讲解,目前只需要理解该BIF实现的原理即可。
1.视频中我们说 sum() 这个BIF有个缺陷,就是如果参数里有字符串类型的话就会报错,请写出一个新的实现过程,自动“无视”参数里的字符串并返回正确的计算结果
def sum(x):
result = 0
for each in x:
if (type(each) == int) or (type(each) == float):
result += each
else:
continue
return result
print(sum([1, 2.1, 2.3, ‘a’, ‘1’, True]))
课后习题十五(函数):
0.你有听说过DRY吗? DRY是程序员们公认的指导原则:Don’t Repeat Yourself. 快快武装你的思维吧,拿起函数,不要再去重复拷贝一段代码了!
1. 都是重复一段代码,为什么我要使用函数(而不使用简单的拷贝黏贴)呢?使用函数:
0) 可以降低代码量(调用函数只需要一行,而拷贝黏贴需要N倍代码)1) 可以降低维护成本(函数只需修改def部分内容,而拷贝黏贴则需要每一处出现的地方都作修改)2) 使序更容易阅读(没有人会希望看到一个程序重复一万行“I love FishC.com”)
2.函数以可有多少个参数吗?可以的,理论上你想要有多少个就可以有多少个,只不过如果函数的参数过多,在调用的时候出错的机率就会大大提高,因而写这个函数的程序员也会被相应的问候祖宗,所以,尽量精简吧,在Python的世界里,精简才是王道!
3. 创建函数使用什么关键字,要注意什么?使用“def”关键字,要注意函数名后边要加上小括号“()”,然后小括号后边是冒号“:”,然后缩进部分均属于函数体的内容,例如:
def MyFun():
# 我是函数体
# 我也是函数体
# 我们都属于函数MyFun()
# 噢,我不属于MyFun()函数的了
复制代码
4. 请问这个函数有多少个参数?
def MyFun((x, y), (a, b)):
return x * y – a * b
复制代码
如果你回答两个,那么恭喜你错啦,答案是0,因为类似于这样的写法是错误的!我们分析下,函数的参数需要的是变量,而这里你试图用“元祖”的形式来传递是不可行的。 我想你如果这么写,你应该是要表达这么个意思:
>>> def MyFun(x, y):
return x[0] * x[1] – y[0] * y[1]
>>> MyFun((3, 4), (1, 2))
10
复制代码
5. 请问调用以下这个函数会打印什么内容?
>>> def hello():
print(‘Hello World!’)
return
print(‘Welcome To FishC.com!’)
复制代码
会打印:
>>> hello()
Hello World!
复制代码
因为当Python执行到return语句的时候,Python认为函数到此结束,需要返回了(尽管没有任何返回值)。
动动手答案:
0. 编写一个函数power()模拟内建函数pow(),即power(x, y)为计算并返回x的y次幂的值。
def power(x, y):
result = 1
for i in range(y):
result *= x
return result
print(power(2, 3))
复制代码
1. 编写一个函数,利用欧几里得算法(
脑补链接
)求最大公约数,例如gcd(x, y)返回值为参数x和参数y的最大公约数。
def gcd(x, y):
while y:
t = x % y
x = y
y = t
return x
print(gcd(4, 6))
复制代码
2. 编写一个将十进制转换为二进制的函数,要求采用“除2取余”(
脑补链接
)的方式,结果与调用bin()一样返回字符串形式。
def Dec2Bin(dec):
temp = []
result = ”
while dec:
quo = dec % 2
dec = dec // 2
temp.append(quo)
while temp:
result += str(temp.pop())
return result
print(Dec2Bin(62))
课后习题十六(默认参数和收集参数,实参形参等等)
请问以下哪个是形参哪个是实参?
函数文档和直接用‘#为函数注释有什么不同?’
使用关键字参数,可以有效避免什么问题出现呢?
使用help(print)查看print()这个BIF有哪默认参数?分别起到什么作用?
4.默认阐述和关键字参数表面最大的区别是什么?
课后习题十七(局部变量和全局变量,内嵌函数和闭包):
如果希望在函数中修改全局变量的值,应该使用什么关键字?
在嵌套的函数中,如果希望在内部函数修改外部函数的全局变量,应该是用什么关键字?
2.Python的函数可以嵌套,但要注意访问的作用域问题哦,请问以下代码存在什么问题呢?
3.请问为什么代码A没有报错,但是代码B报错了,应该如何修改?
4.请问如何访问funIn()呢?
5.请问如何方funIn()呢?
6.以下是‘闭包’的一个例子,请你目测下会打印什么内容?
。