Python 练习100题---No.(21-40)---附其他题目解答链接
原标题:Python 练习100题---No.(21-40)---附其他题目解答链接
原文来自:CSDN 原文链接:https://blog.csdn.net/weixin_41744624/article/details/103511139
github展示python100题
链接如下:
https://github.com/zhiwehu/Python-programming-exercises/blob/master/100%2B%20Python%20challenging%20programming%20exercises.txt
以下为博主翻译后题目及解答,答案代码分为两个,第一条为博主个人解答(Python3),第二条为题目所提供答案(Python2)
………………………………………………………………………………
题目1-20链接:https://blog.csdn.net/weixin_41744624/article/details/103426225
本部分为题目21-40,等级难度1-3不定顺序(建议倒序食用);
题目41-60链接:https://blog.csdn.net/weixin_41744624/article/details/103575741;
题目61-80链接:
https://blog.csdn.net/weixin_41744624/article/details/103607992
题目81-98链接:https://blog.csdn.net/weixin_41744624/article/details/103646520
经检测题库去除重复只有98题啦(欢迎评论添加好题目)~
………………………………………………………………………………
21、问题:
机器人从原点(0,0)开始在平面内移动。机器人可以向上、下、左、右移动,只要给定步数。机器人运动轨迹如下:
UP 5
DOWN 3
LEFT 3
RIGHT 2
¡­
方向后面的数字是步数。请写一个程序,计算出一系列运动和原点后距离当前位置的距离。如果距离是浮点数,则只打印最接近的整数。
例子:
如果将下列元组作为程序的输入:
UP 5
DOWN 3
LEFT 3
RIGHT 2
¡­
那么,程序的输出应该是:
2
ls = [] while True: n=input("please input:") if not n: break ls.append(tuple(n.split(' '))) x=0 y=0 for j in ls: i = list(j) if i[0] == "UP": y +=int(i[1]) elif i[0] == "DOWN": y +=-int(i[1]) elif i[0] == "LEFT": x +=-int(i[1]) elif i[0] == "RIGHT": x +=int(i[1]) else: print ("wrong input!") z=round((x**2+y**2)**1/2,0) print (z)
import math pos = [0,0] while True: s = raw_input() if not s: break movement = s.split(" ") direction = movement[0] steps = int(movement[1]) if direction=="UP": pos[0]+=steps elif direction=="DOWN": pos[0]-=steps elif direction=="LEFT": pos[1]-=steps elif direction=="RIGHT": pos[1]+=steps else: pass print int(round(math.sqrt(pos[1]**2+pos[0]**2)))
22、问题:
写一个程序从输入中计算单词的频率。输出应该在按字母数字顺序对键排序后输出。
假设向程序提供了以下输入:
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
ls = input ("please input:").split() digit = [] digitchar = [] upper = [] lower = [] for i in ls: if i.isalpha(): if i.islower(): lower.append(i) else: upper.append(i) elif i.isdigit(): digit.append(i) else: digitchar.append(i) tol = [] for i in sorted(set(digit)): tol.append(i) for i in sorted(set(digitchar)): tol.append(i) for i in sorted(set(upper)): tol.append(i) for i in sorted(set(lower)): tol.append(i) for z in tol: print (str(z)+":"+str(tol.count(z)))
freq = {} # frequency of words in text line = raw_input() for word in line.split(): freq[word] = freq.get(word,0)+1 words = freq.keys() words.sort() for w in words: print "%s:%d" % (w,freq[w])
23、问题:
写出一种计算数的平方值的方法
ls = input ("please input :") for i in ls: j= int(i)**2 print (j)
def square(num): return num ** 2 print square(2) print square(3)
24、问题:
Python有许多内置函数,如果您不知道如何使用它,可以在线阅读文档或查找一些书籍。但是Python对于每个内置函数都有一个内置的文档函数。
请编写一个程序来打印一些Python内置函数文档,例如abs()、int()、raw_input()
并为自己的功能添加文档
【抱歉偷个懒,博主觉得这个没什么写的必要就复制答案了…】
print abs.__doc__ print int.__doc__ print raw_input.__doc__ def square(num): '''Return the square value of the input number. The input number must be integer. ''' return num ** 2 print square(2) print square.__doc__
25、问题:
定义一个类,该类具有一个类参数和一个相同的实例参数。
class mytest(): def test(self): self.x = input ("please input:") print (self.x) aaa=mytest() aaa.test()
class Person: # Define the class parameter "name" name = "Person" def __init__(self, name = None): # self.name is the instance parameter self.name = name jeffrey = Person("Jeffrey") print "%s name is %s" % (Person.name, jeffrey.name) nico = Person() nico.name = "Nico" print "%s name is %s" % (Person.name, nico.name)
26、问题:
定义一个可以计算两个数之和的函数。
def function(x,y): return int(x)+int(y) x=input ("input x:") y=input ("input y:") print (function(x,y))
def SumFunction(number1, number2): return number1+number2 print SumFunction(1,2)
27、问题:
定义一个可以将整数转换为字符串并在控制台中打印的函数。
def function(x): y=str(x) return y x=input ("input x:") print (function(x))
def printValue(n): print str(n) printValue(3)
28、问题:
定义一个函数,它可以接收两个字符串形式的整数,计算它们的和,然后在控制台中打印出来。
def function(x,y): return int(x)+int(y) return y x=input ("input x:") # int输入的数字默认转化为str字符串 y=input ("input y:") print (function(x,y))
Solutiondef printValue(s1,s2): print int(s1)+int(s2) printValue("3","4") #7
29、问题:
定义一个函数,它可以接受两个字符串作为输入,并将它们连接起来,然后在控制台中打印出来。
def function(x,y): return x+y x=input ("input x:") y=input ("input y:") print (function(x,y))
def printValue(s1,s2): print s1+s2 printValue("3","4") #34
30、问题:
定义一个函数,它可以接受两个字符串作为输入,并在控制台中打印具有最大长度的字符串。如果两个字符串的长度相同,则函数应逐行打印所有字符串。
def function(x,y): if len(x)>len(y): print (x) elif len(x)<len(y): print (y) else: print (x) print (y) x = input("input x:") y = input("input y:") function(x,y)
def printValue(s1,s2): len1 = len(s1) len2 = len(s2) if len1>len2: print s1 elif len2>len1: print s2 else: print s1 print s2 printValue("one","three")
31、问题:
定义一个可以接受整数作为输入的函数,如果整数是偶数,则打印“它是偶数”,否则打印“它是奇数”。
def function(x): if (int(x) == 0): print ("0") elif (int(x)%2== 0): print ("它是偶数") else: print ("它是奇数") x = input("input x:") function(x)
def checkValue(n): if n%2 == 0: print "It is an even number" else: print "It is an odd number" checkValue(7)
32、问题:
定义一个函数,该函数可以打印一个字典,其中键是1到3之间的数字(包括1和3),值是键的平方。
a= {} i=int(input("input the number")) while i != 0: a[i]=i*i i=i-1 print (a)
def printDict(): d=dict() d[1]=1 d[2]=2**2 d[3]=3**2 print d
33、问题:
定义一个函数,它可以打印一个字典,其中键是1到20之间的数字(都包括在内),值是键的平方。
```python a= {} i=int(input("input the number")) while i != 0: a[i]=i*i i=i-1 print (a)
``
def printDict(): d=dict() for i in range(1,21): d[i]=i**2 print d printDict()
34、问题:
定义一个函数,它可以生成一个字典,其中键是1到20之间的数字(都包括在内),值是键的平方。函数应该只打印值。
a= {} i=int(input("input the number")) while i != 0: a[i]=i*i i=i-1 for (i,j) in a.items(): print (j)
def printDict(): d=dict() for i in range(1,21): d[i]=i**2for (k,v) in d.items(): print v printDict()
35、问题:
定义一个函数,它可以生成一个字典,其中键是1到20之间的数字(都包括在内),值是键的平方。函数应该只打印键。
a= {} i=int(input("input the number")) while i != 0: a[i]=i*i i=i-1for (i,j) in a.items(): print (i)
Solutiondef printDict(): d=dict() for i in range(1,21): d[i]=i**2 for k in d.keys(): print k printDict()
36、问题:
定义一个函数,它可以生成和打印一个列表,其中的值是介于1和20之间(两者都包括在内)的数字的平方。
a= [] for i in range(1,21): a.append(int(i)**2) print (a)
def printList(): li=list() for i in range(1,21): li.append(i**2) print li printList()
37、问题:
定义一个函数,它可以生成一个列表,其中的值是介于1和20之间(两者都包括在内)的数字的平方。然后函数需要打印列表中的前5个元素。
a= [] for i in range(1,21): a.append(int(i)**2) for i in range(0,5): print (a[i])
def printList(): li=list() for i in range(1,21): li.append(i**2) print li[:5] printList()
38、问题:
定义一个函数,它可以生成一个列表,其中的值是介于1和20之间(两者都包括在内)的数字的平方。然后函数需要打印列表中的最后5个元素。
a= [] for i in range(1,21): a.append(int(i)**2) for i in range(len(a)-5,len(a)): print (a[i])
def printList(): li=list() for i in range(1,21): li.append(i**2) print li[-5:] printList()
39、问题:
定义一个函数,它可以生成一个列表,其中的值是介于1和20之间(两者都包括在内)的数字的平方。然后,函数需要打印除列表中前5个元素之外的所有值。
a= [] for i in range(1,21): a.append(int(i)**2) for i in range(5,len(a)): print (a[i])
def printList(): li=list() for i in range(1,21): li.append(i**2) print li[5:] printList()
40、问题:
定义一个函数,该函数可以生成和打印一个元组,其中的值是介于1和20之间(两者都包括在内)的数字的平方。
a= [] for i in range(1,21): a.append(int(i)**2) b=tuple(a) print (b)
def printTuple(): li=list()for i in range(1,21): li.append(i**2) print tuple(li) printTuple()
免责声明:本文来自互联网新闻客户端自媒体,不代表本网的观点和立场。
合作及投稿邮箱:E-mail:editor@tusaishared.com
热门资源
Python 爬虫(二)...
所谓爬虫就是模拟客户端发送网络请求,获取网络响...
TensorFlow从1到2...
原文第四篇中,我们介绍了官方的入门案例MNIST,功...
TensorFlow从1到2...
“回归”这个词,既是Regression算法的名称,也代表...
TensorFlow2.0(10...
前面的博客中我们说过,在加载数据和预处理数据时...
机器学习中的熵、...
熵 (entropy) 这一词最初来源于热力学。1948年,克...
智能在线
400-630-6780
聆听.建议反馈
E-mail: support@tusaishared.com