跳至主要内容

python 之 练习

  1. '''
  2. funtion:获取任意自然数的各位数字之和
  3. map(func, *iterables) --> map object
  4. '''
  5. num = input('请输入一个自然数:')
  6. print(sum(map(int,num)))
  7.  
  8. '''
  9. function: 输入两个集合{}并计算其交集、并集和差集
  10. input() 从输入中获取并返回一个字符串
  11. eval() 函数用来执行一个字符串表达式,并返回表达式的值
  12. '''
  13. setA = eval(input('请输入一个集合:'))
  14. setB = eval(input('请输入一个集合:'))
  15. print('交集:',setA & setB)
  16. print('并集:',setA | setB)
  17. print('setA-setB:',setA - setB)
  18.  
  19.  
  20. '''
  21. function: 输入一个整数列表,返回偶数列表
  22. eval() 函数用来执行一个字符串表达式,并返回表达式的值
  23. filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回一个迭代器对象,如果要转换为列表,可以使用 list() 来转换。
  24. 其接收两个参数,第一个为判断函数,第二个为可迭代对象,序列的每个元素作为参数传递给函数进行判断,然后返回 True 或 False,最后将返回 True 的元素放到新迭代器对象中
  25. '''
  26. lst =input('请输入一个包含若干整数的列表:')
  27. lst =eval(lst)
  28. print(list(filter(lambda x:x%2==0, lst)))
  29.  
  30.  
  31. '''
  32. function: 输入两个整数列表lstA和lstB,返回一个字典,要求lstA中的元素为键,lstB中的元素为值,字典长度取决于最小的列表
  33. zip() 函数用于将一个或多个可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象,这样做的好处是节约了不少的内存。
  34. 我们可以使用 list() 转换来输出列表。
  35. 如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表
  36.  dict(iterable) -> new dictionary initialized as if via:
  37.      d = {}
  38.      for k, v in iterable:
  39.          d[k] = v
  40. '''
  41. lstA =eval(input('请输入包含若干整数的列表 lstA:'))
  42. lstB =eval(input('请输入包含若干整数的列表 lstB:'))
  43. result =dict(zip(lstA, lstB))
  44. print(result)
  45. # print(len(result))
  46. # x,y=zip(*zip(lstA,lstB))
  47. # print(y)
  48. # print(y)
  49.  
  50.  
  51. '''
  52. function: 输入一个整数列表,输出新列表并要求降序排列
  53. sort 与 sorted 区别:
  54. sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。
  55. list 的 sort 方法返回的是对已经存在的列表进行操作,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。
  56.  
  57. sorted(iterable, key=None, reverse=False)
  58. iterable -- 可迭代对象。
  59. key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
  60. reverse -- 排序规则,reverse = True 降序 , reverse = False 升序(默认)
  61. 先按照成绩降序排序,相同成绩的按照名字升序排序
  62. d1 = [{'name':'alice', 'score':38}, {'name':'bob', 'score':18}, {'name':'darl', 'score':28}, {'name':'christ', 'score':28}]
  63. l = sorted(d1, key=lambda x:(-x['score'], x['name']))
  64. print(l)
  65.  
  66. '''
  67. lst =eval(input('请输入包含若干整数的列表 lst:'))
  68. print(sorted(lst,reverse=True))
  69.  
  70.  
  71.  
  72. '''
  73. function: 输入一个整数列表,输出列表中所有整数连乘的结果
  74. reduce() 函数会对参数序列中元素进行累积。
  75. 函数将一个数据集合(列表,元组等)中的所有数据进行下列操作:
  76. 用传给 reduce 中的函数 function(有两个参数)先对集合中的第 1、2 个元素进行操作,
  77. 得到的结果再与第3个数据用 function 函数运算,最后得到一个结果。
  78.  
  79. reduce(function, iterable[, initializer])
  80. function -- 函数,有两个参数
  81. iterable -- 可迭代对象
  82. initializer -- 可选,初始参数
  83. '''
  84. from functools import reduce
  85. lst =eval(input('请输入包含若干整数的列表 lst:'))
  86. print(reduce(lambda x,y:x*y,lst))
  87.  
  88.  
  89. '''
  90. function: 输入两个包含2个整数的列表,代表城市中两个地点的坐标,输出两点之间的曼哈顿距离
  91. map() 会根据提供的函数对指定序列做映射。 返回迭代器
  92. '''
  93. lstA =eval(input('请输入包含2个整数的列表 lstA:'))
  94. lstB =eval(input('请输入包含2个整数的列表 lstB:'))
  95. print(sum(map(lambda i,j:abs(i-j),lstA,lstB)))
  96.  
  97.  
  98.  
  99. '''
  100. funtion: 输入包含若干集合的列表,输出这些集合中的并集
  101. reduce() 函数会对参数序列中元素进行累积,返回一个结果
  102. '''
  103. from functools import reduce
  104. lstSets =eval(input('请输入包含若干集合的列表 lst:'))
  105. print(reduce(lambda x,y:x|y,lstSets))
  106.  
  107.  
  108.  
  109. '''
  110. funtion:已知等比数列首项a1,公比q和一个自然数n,输出等比数列前n项的和
  111. 等比数列是指从第二项起,每一项与它的前一项的比值等于同一个常数的一种数列
  112.  
  113. ∑ = Sn = a1 + a2 + ... + an = a1 * (qn -1) / (q-1)
  114. (特殊情况: 当 q = 1 时, Sn = n * a1)
  115. int([x]) -> integer
  116. int(x, base=10) -> integer     base must be >= 2 and <= 36, or 0
  117. >>> int('0b100', base=0)--->4
  118. '''
  119. a1 =int(input('请输入等比数列首项:'))
  120. =int(input('请输入等比数列公比(不等于1且小于36的正整数:'))
  121. =int(input('请输入一个自然数:'))
  122. result=a1*int('1'*n,q)
  123. print(result)
  124.  
  125.  
  126.  
  127. '''
  128. funtion:输入一个字符串,输出其中出现次数最多的字符集出现的次数,并计数,使用字典
  129. '''
  130. data =input('请输入一个字符串:')
  131. count={}
  132. d=dict()
  133. for ch in data:
  134.     # d.get(ch,0)返回ch出现的值,默认为None,0是来取代None
  135.     d[ch]=d.get(ch,0) +1
  136. mostCommon =max(d.items(),key=lambda item:item[1])
  137. print(mostCommon)
  138.    
  139. for ch in data:
  140.     if ch in count:
  141.         count[ch] +=1
  142.     else:
  143.         count[ch]=1
  144. print(count)
  145.  
  146.  
  147.  
  148. '''
  149. funtion:用蒙特卡罗方法计算圆周率π
  150. 正方形内部有一个相切的圆,圆和正方形的面积之比是π/4
  151. 现在,在这个正方形内部,随机产生10000个点(即10000个坐标对 (x, y)),计算它们与中心点的距离,从而判断是否落在圆的内部。
  152. 如果这些点均匀分布,那么圆内的点应该占到所有点的 π/4,因此将这个比值乘以4,就是π的值
  153. '''
  154. from random import random
  155. times =int(input('请输入掷飞镖次数:'))
  156. hits =0
  157. for i in range(times):
  158.     x = random()
  159.     y = random()
  160.     if x*x + y*y <=1:
  161.         hits +=1
  162.  
  163. print(4.0 * hits/times)
  164.  
  165.  
  166.  
  167. '''
  168. funtion:轮盘抽奖游戏
  169. '''
  170. from random import randrange
  171. def playGame():
  172.     # 查找并返回本次获奖情况
  173.     value = randrange(360)
  174.     for k,in areas.items():
  175.         if v[0]<=value<v[1]:
  176.             return k
  177.  
  178.  
  179. areas = {'一等奖':[0,30],
  180.          '二等奖':[30,108],
  181.          '三等奖':[108,360]}
  182.  
  183. results = dict()
  184.  
  185. for i in range(10000):
  186.     r = playGame()
  187.     results[r]=results.get(r,0)+1
  188.  
  189.  
  190. for item in results.items():
  191.     print('{0[0]}:{0[1]}次'.format(item))

评论

此博客中的热门博文

自动发送消息

  # https://pyperclip.readthedocs.io/en/latest/ import pyperclip while True :     # pyperclip.copy('Hello, world!')     # pyperclip.paste()     # pyperclip.waitForPaste()     print ( pyperclip. waitForNewPaste ( ) )     # 获取要输入新的坐标,也可以通过autohotkey import time import pyautogui  as pag import os   try :     while True :         print ( "Press Ctrl-C to end" )         x , y = pag. position ( )   # 返回鼠标的坐标         posStr = "Position:" + str ( x ) . rjust ( 4 ) + ',' + str ( y ) . rjust ( 4 )         print ( posStr )   # 打印坐标         time . sleep ( 0.2 )         os . system ( 'cls' )   # 清楚屏幕 except KeyboardInterrupt :     print ( 'end....' )     # 打印消息 import pyautogui import time import pyperclip   content = """   呼叫龙叔! 第二遍! 第三遍! 第四遍...

学习地址

清华大学计算机系课程攻略 https://github.com/PKUanonym/REKCARC-TSC-UHT 浙江大学课程攻略共享计划 https://github.com/QSCTech/zju-icicles https://home.unicode.org/ 世界上的每个人都应该能够在手机和电脑上使用自己的语言。 http://codecanyon.net   初次看到这个网站,小伙伴们表示都惊呆了。原来代码也可以放在网上卖的?!! 很多coder上传了各种代码,每个代码都明码标价。看了下销售排行,有的19刀的卖了3万多份,额di神啊。可以看到代码的演示效果,真的很漂亮。代码以php、wordpress主题、Javascript、css为主,偏前台。 https://www.lintcode.com/ 算法学习网站,上去每天刷两道算法题,走遍天下都不怕。 https://www.codecademy.com/ 包含在线编程练习和课程视频 https://www.reddit.com/ 包含有趣的编程挑战题,即使不会写,也可以查看他人的解决方法。 https://ideone.com/ 在线编译器,可运行,可查看代码示例。 http://it-ebooks.info/ 大型电子图书馆,可即时免费下载书籍。 刷题 https://github.com/jackfrued/Python-100-Days https://github.com/kenwoodjw/python_interview_question 面试问题 https://github.com/kenwoodjw/python_interview_question https://www.journaldev.com/15490/python-interview-questions#python-interpreter HTTP 身份验证 https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Authentication RESTful 架构详解 https://www.runoob.com/w3cnote/restful-architecture.html https://www.rosettacode.org/wiki/Rosetta_C...

mysql 入门

资料 https://dinfratechsource.com/2018/11/10/how-to-install-latest-mysql-5-7-21-on-rhel-centos-7/ https://dev.mysql.com/doc/refman/5.7/en/linux-installation-yum-repo.html https://www.runoob.com/mysql/mysql-create-database.html https://www.liquidweb.com/kb/install-java-8-on-centos-7/ 工具 https://www.heidisql.com/ HeidiSQL是免费软件,其目标是易于学习。 “ Heidi”使您可以从运行数据库系统MariaDB,MySQL,Microsoft SQL或PostgreSQL的计算机上查看和编辑数据和结构 MySQL 连接时尽量使用 127.0.0.1 而不是 localhost localhost 使用的 Linux socket,127.0.0.1 使用的是 tcp/ip 为什么我使用 localhost 一直没出问题 因为你的本机中只有一个 mysql 进程, 如果你有一个 node1 运行在 3306, 有一个 node2 运行在 3307 mysql -u root -h localhost -P 3306 mysql -u root -h localhost -P 3307 都会连接到同一个 mysql 进程, 因为 localhost 使用 Linux socket, 所以 -P 字段直接被忽略了, 等价于 mysql -u root -h localhost mysql -u root -h localhost 而 -h 默认是 localhost, 又等价于 mysql -u root mysql -u root 为了避免这种情况(比如你在本地开发只有一个 mysql 进程,线上或者 qa 环境有多个 mysql 进程)最好的方式就是使用 IP mysql -u root -h 127 .0 .0 .1 -P 3307 strac...