Python练习题13/14/15/16/17

  • Post author:
  • Post category:python



》》点赞,收藏+关注,理财&技术不迷路《《


课后习题十三(字符串的格式化):

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.以下是‘闭包’的一个例子,请你目测下会打印什么内容?



版权声明:本文为weixin_48619768原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。