花了一周的时间,整理了100道Python的练习题,如果你是一位初学者,那么这一份练习题将会给你带来极大的帮助,如果你能够完全独立的完成这份练习题,你已经入门的Python了,练习题涵盖Python基础的大部分内容,将分为五篇文章发出来,pdf版本可以在下方链接领取到。第二天21-40题
https://github.com/hellgoddess/PythonGuIDe/blob/main/python100%E9%A2%98/%E8%8E%B7%E5%8F%96python100%E9%A2%98pdf.md
就不多bb了,直接上干货!
问题21问题:机器人从原始点(0,0)开始在平面上移动。机器人可以按照给定的步骤向上,下,左和右移动。机器人运动的轨迹如下图所示:
UP 5DOWN 3left 3RIGHT 2
方向后的数字为步长。请编写一个程序,以计算一系列移动和原始点之后与当前位置的距离。如果距离是浮点数,则只需打印最接近的整数即可。 *示例:* 如果给出以下元组作为程序的输入:
UP 5DOWN 3left 3RIGHT 2
然后,程序的输出应为:
2
提示:
如果将输入数据提供给问题,则应假定它是控制台输入。这里的距离表示欧几里得距离。导入数学模块以使用sqrt函数。
我的解决方案:Python 3
import mathx,y = 0,0while True: s = input().split() if not s: break if s[0]=='UP': x-=int(s[1]) if s[0]=='DOWN': x+=int(s[1]) if s[0]=='left': y-=int(s[1]) if s[0]=='RIGHT': y+=int(s[1]) dist = round(math.sqrt(x**2 + y**2)) print(dist)
from math import sqrtlst = []position = [0,0]while True: a = input() if not a: break lst.append(a)for i in lst: if 'UP' in i: position[0] -= int(i.strip('UP ')) if 'DOWN' in i: position[0] += int(i.strip('DOWN ')) if 'left' in i: position[1] -= int(i.strip('left ')) if 'RIGHT' in i: position[1] += int(i.strip('RIGHT '))print(round(sqrt(position[1] ** 2 + position[0] ** 2)))
问题22问题:编写一个程序来计算输入中单词的频率。在按字母数字顺序对键进行排序后,应输出输出。
假设将以下输入提供给程序:
New to Python or choosing between Python 2 and Python 3? Read Python 2 or Python 3.
然后,输出应为:
2:23.:13?:1New:1Python:5Read:1and:1between:1choosing:1or:2to:1
提示
如果将输入数据提供给问题,则应假定它是控制台输入。
我的解决方案:Python 3
ss = input().split()word = sorted(set(ss)) # split words are stored and sorted as a setfor i in word: print("{0}:{1}".format(i,ss.count(i)))
或者
ss = input().split()dict = {}for i in ss: i = dict.setdefault(i,ss.count(i)) # setdefault() function takes key & value to set it as dictionary.dict = sorted(dict.items()) # items() function返回两个字典的键和值作为列表 # 然后进行排序。默认情况下,在dict中以 i 的第一键->第二键的顺序进行排序:for i in dict: print("%s:%d"%(i[0],i[1]))
或者
from collections import Counterss = input().split()ss = Counter(ss) # returns key & frequency as a dictionaryss = sorted(ss.items()) # returns as a tuple Listfor i in ss: print("%s:%d"%(i[0],i[1]))
问题23问题:
编写一种可以计算数字平方值的方法
n=int(input())print(n**2)
问题24问题:
Python具有许多内置函数,如果您不知道如何使用它,则可以在线阅读文档或查找一些书籍。但是Python对于每个内置函数都有一个内置文档函数。
请编写程序以打印一些Python内置函数文档,例如abs(),int(),raw_input()
提示:并添加您自己的功能的文档
The built-in document method is __doc__
我的解决方案:Python 3
print(str.__doc__)print(sorted.__doc__)def pow(n,p): ''' param n: This is any integer number param p: This is power over n return: n to the power p = n^p ''' return n**pprint(pow(3,4))print(pow.__doc__)
问题25问题:
定义一个类,该类具有一个类参数并且具有相同的实例参数。
提示:
define an instance parameter, need add it in __init__ method.You can init an object with construct parameter or set the value later
我的解决方案:Python 3
class Car: name = "Car" def __init__(self,name = None): self.name = namehonda=Car("Honda")print("%s name is %s"%(Car.name,honda.name))toyota=Car()toyota.name="Toyota"print("%s name is %s"%(Car.name,toyota.name))
问题26问题:定义一个可以计算两个数字之和的函数。
提示:
定义一个以两个数字作为参数的函数。您可以在函数中计算总和并返回值。
我的解决方案:Python 3
sum = lambda n1,n2 : n1 + n2 # here lambda is use to define little function as sumprint(sum(1,2))
问题27问题:
定义一个可以将整数转换为字符串并在控制台中打印的函数。
提示:
使用str()将数字转换为字符串。
conv = lambda x : str(x)n = conv(10)print(n)print(type(n)) # checks the type of the variable
问题28问题:
定义一个函数,该函数可以接收两个字符串形式的整数并计算它们的总和,然后在控制台中打印它。
提示:
使用int()将字符串转换为整数。
def printValue(s1,s2): print int(s1) + int(s2)printValue("3","4") #7
问题29问题:
定义一个函数,该函数可以接受两个字符串作为输入并将其连接起来,然后在控制台中将其打印出来。
提示:
使用+号连接字符串。
我的解决方案:Python 3
sum = lambda s1,s2 : s1 + s2print(sum("10","45")) # 1045
问题30问题:
定义一个函数,该函数可以接受两个字符串作为输入,并在控制台中打印最大长度的字符串。如果两个字符串的长度相同,则该函数应逐行打印所有字符串。
提示:
***使用len()函数获取字符串的长度
我的解决方案:Python 3
def printVal(s1,s2): len1 = len(s1) len2 = len(s2) if len1 > len2: print(s1) elif len1 < len2: print(s2) else: print(s1) print(s2)s1,s2=input().split()printVal(s1,s2)
func = lambda a,b: print(max((a,b),key=len)) if len(a)!=len(b) else print(a+'\n'+b)
第31题问题:定义一个可以打印字典的函数,其中键是1到20之间的数字(都包括在内),值是键的平方。
我的解决方案:Python 3
def printDict(): dict={i:i**2 for i in range(1,21)} # Using comprehension method and print(dict)printDict()
第32题问题:
定义一个可以生成字典的函数,其中键是1到20之间的数字(都包括在内),值是键的平方。该功能应仅打印键。
def printDict(): d=dict() for i in range(1,21): d[i]=i**2 for k in d.keys(): print kprintDict()
第33题问题:
定义一个函数,该函数可以生成和打印一个列表,其中值是介于1到20之间的数字的平方(均包括在内)。
def printList(): lst = [i ** 2 for i in range(1, 21)] print(lst)printList()
第34题问题:
定义一个函数,该函数可以生成一个列表,其中值是介于1到20之间的数字的平方(均包括在内)。然后,该功能需要打印列表中的前5个元素。
def printList(): lst = [i ** 2 for i in range(1, 21)] for i in range(5): print(lst[i])printList()
def squares(n): squares_List = [i**2 for i in range(1,n+1)] print(squares_List[0:5])squares(20)
func = lambda :print([i**2 for i in range(1,21)][:5])
第35题问题:
定义一个函数,该函数可以生成一个列表,其中值是介于1到20之间的数字的平方(均包括在内)。然后,该功能需要打印列表中的最后5个元素。
def printList(): lst = [i ** 2 for i in range(1, 21)] for i in range(19,14,-1): print(lst[i])printList()
def squares(n): squares_List = [i**2 for i in range(1,n+1)] print(squares_List[-5:])squares(20)
第36题问题:
定义一个函数,该函数可以生成一个列表,其中值是介于1到20之间的数字的平方(均包括在内)。然后,该函数需要打印列表中前5个元素以外的所有值。
def printList(): lst = [i ** 2 for i in range(1, 21)] for i in range(5,20): print(lst[i])printList()
第37题问题:
定义一个函数,该函数可以生成和打印一个元组,其中值是介于1到20之间的数字的平方(均包括在内)。
def printTupple(): lst = [i ** 2 for i in range(1, 21)] print(tuple(lst))printTupple()
def square_of_numbers(): return tuple(i ** 2 for i in range(1, 21))print(square_of_numbers())
评论
本节中的问题非常容易,所有这些都是对同类型问题的修改,主要集中在使用一些常用的函数与List,dictionary,tupple结合使用。在我的整个解决方案中,我都没有尝试解决问题相反,我试图以一种可以解决的方式解决问题。这将有助于初学者了解如何以不同的方式解决最简单的问题。
第38题问题:对于给定的元组(1,2,3,4,5,6,7,8,9,10),编写一个程序以一行打印前半值,然后以一行打印后半值。
提示:
使用[n1:n2]表示法从元组中获取一个切片。
tpl = (1,2,3,4,5,6,7,8,9,10)for i in range(0,5): print(tpl[i],end = ' ')print()for i in range(5,10): print(tpl[i],end = ' ')
或者
tpl = (1,2,3,4,5,6,7,8,9,10)lst1,lst2 = [],[]for i in range(0,5): lst1.append(tpl[i])for i in range(5,10): lst2.append(tpl[i])print(lst1)print(lst2)
第39题问题:编写程序以生成并打印另一个在给定元组(1,2,3,4,5,6,7,8,9,10)中其值为偶数的元组。
提示:
使用“ for”来迭代元组。使用tuple()从列表中生成一个元组。
tpl = (1,2,3,4,5,6,7,8,9,10)tpl1 = tuple(i for i in tpl if i%2 == 0)print(tpl1)
或者
tpl = (1,2,3,4,5,6,7,8,9,10)tpl1 = tuple(filter(lambda x : x%2==0,tpl)) # Lambda function returns True if found even element. print(tpl1)
第40题问题:
编写一个接受字符串作为输入的程序,如果该字符串是“ yes”或“ YES”或“ Yes”,则打印“ Yes”,否则打印“ No”。
提示:
使用if语句判断条件。
text = input("Please type something. --> ")if text == "yes" or text == "YES" or text == "Yes": print("Yes")else: print("No")
input = input('Enter string:')output = ''.join(['Yes' if input == 'yes' or input =='YES' or input =='Yes' else 'No' ])print(str(output))
x = str(input().lower())if x == 'yes': print('Yes')else: print('No')
总结
以上是内存溢出为你收集整理的Python学习必备100道练习题-day2(21-40)全部内容,希望文章能够帮你解决Python学习必备100道练习题-day2(21-40)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)