公众号后台回复“图书“,了解更多号主新书内容
作者:Yang
来源:Python数据科学修炼之路
Python
Question 21
Level 3级
1
问题:编写一个程序实现猜数小游戏,心里默想一个数,然后键盘输入,如果小于或者大于你心里的数,给予提示,如果是你心里的数,游戏结束。
Solution
import random
secret=random.randint(1,10)
temp=input("请输入心里想的数:")
guess=int(temp)
while guess!=secret:
temp=input("猜错了,请重新输入吧:")
guess=int(temp)
if guess==secret:
print("恭喜你,你猜对了!")
print("游戏结束")
else:
if guess>secret:
print("猜大了!!")
else:
print("猜小了!!")
======测试======
请输入心里想的数:8
猜错了,请重新输入吧:8
猜大了!!
猜错了,请重新输入吧:2
猜小了!!
猜错了,请重新输入吧:5
猜小了!!
猜错了,请重新输入吧:7
猜大了!!
猜错了,请重新输入吧:6
恭喜你,你猜对了!
游戏结束
Python
Question 22
Level 3级
1
问题:机器人从原点(0,0)开始在平面上移动。机器人可以按照给定的步骤向上,下,左和右移动。
机器人移动的轨迹如下所示:上5下3左3右2¡方向后的数字为步长。
请编写一个程序,以计算一系列移动和原始点之后与当前位置的距离。
如果距离是浮点数,则只需打印最接近的整数。
示例:如果将以下作为程序的输入给出:UP 5 DOWN 3 LEFT 3 RIGHT 2
然后,程序的输出应为:2
提示:如果将输入数据提供给问题,则应假定它是控制台输入。
Solution
import re
import math
while True:
h=0
z=0
o=(0,0)
t=input("请输入上x下x左x右x :")
arf=re.findall("[a-zA-Z]+",t)
num=re.findall("\d+",t)
for i in range(len(arf)):
if arf[i]=="UP":
z+=int(num[i])
elif arf[i]=="DOWN":
z-=int(num[i])
elif arf[i]=="LEFT":
h-=int(num[i])
else:
h+=int(num[i])
dec=math.floor(math.sqrt((0-h)**2 +(0-z)**2))
print("移动的点距离远点的距离是:%d"%(dec))
ww=input("如果需要退出,请按Q,按其他键继续 。")
if ww=="Q":
break
else:
continue
======测试======
请输入上x下x左x右x :UP 5 DOWN 3 LEFT 3 RIGHT 2
移动的点距离远点的距离是:2
如果需要退出,请按Q,按其他键继续 。1
请输入上x下x左x右x :UP 15 DOWN 3 LEFT 3 RIGHT 22
移动的点距离远点的距离是:22
如果需要退出,请按Q,按其他键继续 。Q
Python
Question 23
Level 2级
1
问题:使用生成器定义一个函数,该生成器可以在给定范围0和n之间迭代被7整除的数字。
提示:考虑使用yield
Solution
def fn23(n):
for i in range(n):
if i%7==0:
y=i
yield y
======测试======
for i in fn23(20):
print(i)
0
7
14
Python
Question 24
Level 3级
1
问题:编写一个程序来计算输入中单词的频率。
在按字母数字顺序对键进行排序后,应输出输出。
假设向程序提供了以下输入:New to Python or choosing between Python 2 and Python 3? Read Python 2 or Python 3。
然后,
输出应为:
2:2
3:2
New:1
Python:5
Read:1
and:1
between:1
choosing:1
or:2
to:1
提示如果将输入数据提供给问题,则应假定它是控制台输入。
Solution
s=input("请输入一段话:")
dict1={}
for i in s.split(" "):
dict1[i]=dict1.get(i,0)+1
words=sorted(dict1.keys(),key=lambda x:x[0])
print("您输入的这段话中,每个字个数统计如下:")
for i in words:
print("{0}:{1}".format(i,dict1[i]))
======测试======
请输入一段话:New to Python or choosing between Python 2 and Python 3? Read Python 2 or Python 3。
您输入的这段话中,每个字个数统计如下:
2:2
3?:1
3。:1
New:1
Python:5
Read:1
and:1
between:1
choosing:1
or:2
to:1
Python
Question 25
Level 1级
1
定义一个可以接受两个字符串作为输入的函数,
并在控制台中打印最大长度的字符串。
如果两个字符串的长度相同,则该函数应逐行打印所有字符串。
提示:
使用len()函数获取字符串的长度
Solution
def func25(a,b):
if len(a)>len(b):
print(a)
elif len(a)<len(b):
print(b)
else:
print(a)
print(b)
======测试======
>>>func25("yang","wenqiang")
wenqiang
>>>func24("yang","wang")
yang
wang
Python
Question 26
Level 1级
1
定义一个可以打印字典的函数,其中键是1到20之间的数字(都包括在内),值是键的平方。
提示:
使用dict [key] = value模式将条目放入字典中。
使用**运算符可获取数字的幂。使用range()进行循环。
Solution
def func26():
dict1={}
for i in range(1,21):
dict1[i]=i**2
return dict1
======测试======
>>>func26()
{1: 1,
2: 4,
3: 9,
···
19: 361,
20: 400}
Python
Question 27
Level 1级
1
定义一个可以生成字典的函数,其中键是1到20之间的数字(都包括在内),值是键的平方。该功能应仅打印值。
提示:
使用dict [key] = value模式将条目放入字典中。
使用**运算符可获取数字的幂。
使用range()进行循环。
使用keys()迭代字典中的键。
我们也可以使用item()来获取键/值对。
Solution
def func27():
dict1={}
for i in range(1,21):
dict1[i]=i**2
for k,v in dict1.items():
print(v)
======测试======
>>>func27()
1
4
9
···
361
400
Python
Question 28
Level 2级
1
定义一个名为Rectangle的类,该类可以通过长度和宽度来构造。Rectangle类具有可以计算面积的方法。
提示:
使用def methodName(self)定义方法。
Solution
class Rectangle(object):
def __init__(self, l, w):
self.length = l
self.width = w
def area(self):
return self.length*self.width
aRectangle = Rectangle(2,10)
print(aRectangle.area())
20
Python
Question29
Level 2级
1
编写一个函数以计算5/0并使用try / except捕获异常。
Solution
def throws():
return 5/0
try:
throws()
except ZeroDivisionError:
print("division by zero!")
finally:
print('In finally block for cleanup')
===out===
division by zero!
In finally block for cleanup
Python
Question 30
Level 1级
1
1、编写一个程序,可以使用过滤器功能过滤列表中的偶数。列表为:[1,2,3,4,5,6,7,8,9,10]。
2、编写一个程序,该程序可以map()生成一个列表,该列表的元素是[1,2,3,4,5,6,7,8,9,10]中的元素的平方。
3、编写程序以生成并打印另一个在给定元组(1,2,3,4,5,6,7,8,9,10)中其值为偶数的元组。
Solution
【1】
lst=[1,2,3,4,5,6,7,8,9,10]
[i for i in filter(lambda x:x%2==0,lst)]
===out===
[2, 4, 6, 8, 10]
【2】
lst=[1,2,3,4,5,6,7,8,9,10]
[i for i in map(lambda x:x**2,lst)]
===out===
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
【3】
def func27_4():
tp=tuple((1,2,3,4,5,6,7,8,9,10))
tp2=[]
for i in tp:
if i%2==0:
tp2.append(i)
return tuple(tp2)
===test===
>>>func27_4()
(2, 4, 6, 8, 10)
以上内容,大佬可以路过,对于小白或者入门要提高的同学应该有所帮助,觉得有用,记得转发收藏哦!
参考链接:https://github.com/zhiwehu/Python-programming-exercises
◆ ◆ ◆ ◆ ◆
麟哥新书已经在当当上架了,我写了本书:《拿下Offer-数据分析师求职面试指南》,目前当当正在举行活动,大家可以用相当于原价5折的预购价格购买,还是非常划算的:
数据森麟公众号的交流群已经建立,许多小伙伴已经加入其中,感谢大家的支持。大家可以在群里交流关于数据分析&数据挖掘的相关内容,还没有加入的小伙伴可以扫描下方管理员二维码,进群前一定要关注公众号奥,关注后让管理员帮忙拉进群,期待大家的加入。
管理员二维码:
猜你喜欢
● 卧槽!原来爬取B站弹幕这么简单● 厉害了!麟哥新书登顶京东销量排行榜!● 笑死人不偿命的知乎沙雕问题排行榜
● 用Python扒出B站那些“惊为天人”的阿婆主!● 你相信逛B站也能学编程吗