熟能生巧,多撸代码多读书

https://github.com/zhiwehu/Python-programming-exercises/blob/master/100+%20Python%20challenging%20programming%20exercises.txt

21、机器人从原点(0,0)开始在平面内移动。机器人可以按照给定的步骤向上、向下、向左和向右移动。机器人运动轨迹如右所示: 上 5  下 3  左 3  右2  i;方向后面的数字是步骤。请写一个程序来计算从当前位置经过一系列的移动和原始点的距离。如果距离是一个浮点数,那么只需打印最近的整数。

   例如:输入 UP 5   DOWN 3   LEFT 3   RIGHT 2    输出为 2

 import math
pos = [0,0]
while True:
s = 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))))

    注意:考察点为--  int(round(math.sqrt(pos[1]**2+pos[0]**2)))

22、编写一个程序来计算输入单词的频率。输出应该在对关键字进行数字排序后输出。

假设向程序提供以下输入:

是Python新手还是在python2和python3之间选择?阅读python2或python3。

则输出为: (没看明白什么意思,后期在研究)

 freq = {}   # frequency of words in text  文本中单词的频率
line = 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、写一个计算数字平方值的方法 (Using the ** operator)

 def square(num):
return num ** 2 print(square(2))
print(square(3))

24、Python有许多内置函数,如果您不知道如何使用它,您可以在线阅读文档或查找一些书籍。但是Python对于每个内置函数都有一个内置的文档函数,请编写程序打印一些Python内置函数文档,如abs(), int(), raw_input(),并为自己的函数添加文档。

  The built-in document method is __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__)
# print(int.__doc__)
# print(abs.__doc__)

25、定义一个类,该类有一个类参数和一个相同的实例参数。

   Define a instance parameter, need add it in __init__ method You can init a object with construct parameter or set the value later.

   定义一个实例参数,需要在_init__方法中添加它,您可以使用构造参数初始化一个对象,或者稍后设置该值。

 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)) # 输出结果为:
# Person name is Jeffrey
# Person name is Nico

26、定义一个可以计算两个数字和的函数。

 def SumFunction(number1, number2):
return number1+number2 print(SumFunction(1,2))

27、定义一个可以将整数转换为字符串并在控制台中打印它的函数。   --Use str() to convert a number to string.

def printValue(n):
print(str(n)) printValue(3.0)

28、定义一个函数,该函数可以接收两个字符串形式的整数并计算它们的和,然后在控制台中打印它们。  --Use int() to convert a string to integer.

 def printValue(s1,s2):
print(int(s1)+int(s2)) printValue("","") #

29、定义一个函数,该函数可以接受两个字符串作为输入,并连接它们,然后在控制台中打印它们。

 def printValue(s1,s2):
print(s1+s2) printValue("","") #

30、定义一个函数,该函数可以接受两个字符串作为输入,并在控制台中打印最大长度的字符串。如果两个字符串的长度相同,那么该函数应该逐行打印所有l字符串。

 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("fuck", "you")

31、定义一个可以接受整数作为输入的函数,如果数字是偶数,则打印“它是偶数”,否则打印“它是奇数”。

 def checkValue(n):
if n % 2 == 0:
print("It is an even number-偶数")
else:
print("It is an odd number-奇数") checkValue(72)

32、定义一个可以打印字典的函数,其中键是1到3之间的数字(包括),值是键的平方。

 def printDict(n):
d = dict()
d[1] = 1
d[2] = 2 ** 2
d[3] = 3 ** 2
d[n] = n ** 2
print(d) printDict(78) # 输出: {1: 1, 2: 4, 3: 9, 78: 6084}

33、定义一个可以打印字典的函数,其中键是1到20之间的数字(包括),值是键的平方。

使用dict[key]=value模式将条目放入字典。   使用**运算符得到一个数的幂。   对循环使用range()。

---->>>  由于下面几题类似,code直接显示。

def printDict():
d = dict()
for i in range(1, 21):
d[i] = i ** 2
print(d) printDict()
#{1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81, 10: 100, 11: 121, 12: 144, 13: 169, 14: 196, 15: 225, 16: 256, 17: 289, 18: 324, 19: 361, 20: 400}

34、定义一个函数,它可以生成一个字典,其中键是1到20之间的数字(包括),值是键的平方。函数应该只打印值。

 def printDict():
d = dict()
for i in range(1, 21):
d[i] = i ** 2
for (k, v) in d.items():
print(v) printDict()

35、定义一个函数,它可以生成一个字典,其中键是1到20之间的数字(包括),值是键的平方。该函数应该只打印键。

 def printDict():
d = dict()
for i in range(1, 21):
d[i] = i ** 2
for k in d.keys():
print(k) printDict()

36、定义一个函数,它可以生成和打印一个列表,其中的值是1到20之间的数字的平方(都包括在内)。(什么鬼,没完没了吗o(╥﹏╥)o)

 def printList():
li = list()
for i in range(1, 21):
li.append(i ** 2)
print(li) printList()
# # [1, 4, 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, 256, 289, 324, 361, 400]

37、定义一个函数,它可以生成一个列表,其中的值是1到20之间的数字的平方(都包括在内)。然后该函数需要打印列表中的前5个元素。

 def printList():
li = list()
for i in range(1, 21):
li.append(i ** 2)
print(li[:5]) printList()
# [1, 4, 9, 16, 25] 我怀疑这老哥是在凑题目总数

38、定义一个函数,它可以生成一个列表,其中的值是1到20之间的数字的平方(都包括在内)。然后该函数需要打印列表中的最后5个元素。

 def printList():
li = list()
for i in range(1, 21):
li.append(i ** 2)
print(li[-5:]) printList()
# [256, 289, 324, 361, 400]

39、定义一个函数,它可以生成一个列表,其中的值是1到20之间的数字的平方(都包括在内)。然后,该函数需要打印列表中除前5个元素之外的所有值。

40、定义一个函数,它可以生成和打印一个元组,其中的值是1到20之间的数字的平方(都包括在内)。

 def printTuple():
li = list()
for i in range(1, 21):
li.append(i ** 2)
print(tuple(li)) printTuple()
# (1, 4, 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, 256, 289, 324, 361, 400)

=============================分割线================缓一缓=======================================

41、对于给定的元组(1、2、3、4、5、6、7、8、9、10),编写一个程序将前半值打印在一行中,后半值打印在一行中。

 tp=(1,2,3,4,5,6,7,8,9,10)
tp1=tp[:5]
tp2=tp[5:]
print(tp1)
print(tp2)

42、编写一个程序来生成和打印另一个元组,它的值是给定元组中的偶数(1、2、3、4、5、6、7、8、9、10)。

 tp=(1,2,3,4,5,6,7,8,9,10)
li=list()
for i in tp:
# print(i)
if i%2==0:
li.append(i) tp2=tuple(li)
print(tp2)
#(2, 4, 6, 8, 10)

43、Write a program which accepts a string as input to print "Yes" if the string is "yes" or "YES" or "Yes", otherwise print "No".

 s= input()
if s=="yes" or s=="YES" or s=="Yes":
print("Yes")
else:
print("No")

44、编写一个程序,可以过滤列表中的偶数使用过滤功能。列表是:[1、2、3、4、5、6、7、8、9、10]。

li = [1,2,3,4,5,6,7,8,9,10]
evenNumbers = filter(lambda x: x%2==0, li)
print(evenNumbers)
#<filter object at 0x000001891A2162B0>
# 它生成的是一个对象, 这是想表达什么意思?求解

45、编写一个可以映射()的程序,生成一个元素是[1,2,3,4,5,6,7,8,9,10]中元素的平方的列表。

li = [1,2,3,4,5,6,7,8,9,10]
squaredNumbers = map(lambda x: x**2, li)
print(squaredNumbers)
# <map object at 0x000002CCD4976208>

46、编写一个程序,可以映射()和过滤器(),使一个列表的元素是偶数的平方在[1,2,3,4,5,6,7,8,9,10]。

li = [1,2,3,4,5,6,7,8,9,10]
evenNumbers = map(lambda x: x**2, filter(lambda x: x%2==0, li))
print(evenNumbers)
# <map object at 0x000001F9391D6BA8>

47、编写一个可以filter()的程序,生成一个元素在1到20之间的偶数列表(都包含在内)。

evenNumbers = filter(lambda x: x%2==0, range(1,21))
print (evenNumbers)
# <filter object at 0x00000254AE8F6630>

48、编写一个可以映射()的程序,生成一个元素为1到20之间的数字的平方的列表(都包含在内)。

squaredNumbers = map(lambda x: x**2, range(1,21))
print(squaredNumbers)
# <map object at 0x000001F2ABA369E8>
#上面几个在研究一下

49、定义一个名为American的类,该类有一个名为printNationality的静态方法。

 class American(object):
@staticmethod
def printNationality():
print("America") anAmerican = American()
anAmerican.printNationality()
American.printNationality() # America
# America

50、定义一个名为American的类及其子类NewYorker。

 class American(object):
pass class NewYorker(American):
pass anAmerican = American()
aNewYorker = NewYorker()
print(anAmerican)
print(aNewYorker) # <__main__.American object at 0x000001A7D04B62B0>
# <__main__.NewYorker object at 0x000001A7D04B6A20>

51、定义一个名为Circle的类,它可以由一个半径来构造。Circle类有一个计算面积的方法。

 class Circle(object):
def __init__(self, r):
self.radius = r def area(self):
return self.radius**2*3.14 aCircle = Circle(521)
print(aCircle.area())

52、定义一个名为Rectangle的类,它可以由长度和宽度来构造。矩形类有一个可以计算面积的方法。

 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())

53、定义一个名为Shape的类及其子类Square。Square类有一个init函数,它以长度作为参数。这两个类都有一个area函数,可以打印形状的面积,其中形状的面积默认为0。

 class Shape(object):
def __init__(self):
pass def area(self):
return 0 class Square(Shape):
def __init__(self, l):
Shape.__init__(self)
self.length = l def area(self):
return self.length*self.length aSquare= Square(3)
print(aSquare.area())

54、请抛出一个RuntimeError异常。

raise RuntimeError('something wrong')

55、编写一个函数来计算5/0并使用try/except来捕获异常。

 def throws():
return 5/0 try:
throws()
except ZeroDivisionError:
print("division by zero!")
except Exception as err :
print('Caught an exception')
finally:
print('In finally block for cleanup') # division by zero!
# In finally block for cleanup

注意:Python 语法错误 except Exception python2 和Python3 区别,github上的是2,需要改回来

希望不再熬夜,不要一个人,晚安,加油。

最新文章

  1. DrawerLayout的openDrawer()和closeDrawer()方法
  2. css外边距margin
  3. Topology Shapes of OpenCascade BRep
  4. Diccuz!NT的dll版本号控制技巧
  5. 228. Summary Ranges
  6. Codeforces Gym 100338I TV Show 傻逼DFS,傻逼题
  7. OpenResty
  8. paramiko SSH 模块简单应用。
  9. IOS中KVO模式的解析与应用
  10. 1077. [NOIP2010冲刺六] 数列游戏
  11. JVM垃圾收集算法(标记-清除、复制、标记-整理)
  12. Java中基本数据类型和包装类
  13. kernel笔记——内核同步与锁
  14. Golang 笔记 1 基础、基本数据类型
  15. python 中的三元表达式及lambda
  16. Entity Framework Core导航属性加载问题
  17. Apache 子项目 概述
  18. 通过html导出PDF如何分页
  19. codeforces:Michael and Charging Stations分析和实现
  20. Xshell启动时显示丢失MSVCP110.dll

热门文章

  1. python之同步IO和异步IO
  2. void 运算符和 逗号运算符
  3. MySQL 运维管理平台
  4. java+web+大文件上传下载
  5. 【学习小记】Berlekamp-Massey算法
  6. codevs2833 奇怪的梦境 x
  7. Sublime Text 3 程序运行后中文显示乱码的解决方案
  8. 【Python】学习笔记十二:模块
  9. HTTPS协议详解(一):HTTPS基础知识
  10. pycharm2019连接mysql错误08801 ------Connection to django1@localhost failed. [08001] Could not create connection to database server. Attempted reconnect 3 times. Giving up.