Python学习必备100道练习题-day2(21-40)

Python学习必备100道练习题-day2(21-40),第1张

概述花了一周的时间,整理了100道Python的练习题,如果你是一位初学者,那么这一份练习题将会给你带来极大的帮助,如果你能够完全独立的完成这份练习题,你已经入门的Python了,练习题涵盖Python基础的大部分内容,将分为五篇文章发出来,pdf版本可以在下方链接领取到。第二天21-40题https://gi

花了一周的时间,整理了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)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1187325.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存