当前位置: 首页 > news >正文

网站建设百度推广说词网络设计培训班

网站建设百度推广说词,网络设计培训班,建设网站怎么搞,win10搭建服务器做网站目录 前言1.进制转换2.字符串加密的实现3.猜拳游戏4.多种方法计算π尾语 #x1f49d; 前言 嗨喽~大家好呀#xff0c;这里是魔王呐 ❤ ~! 1.进制转换 功能#xff1a; 获取十进制整数的二进制串#xff0c;相当于内置函数bin。 算法分析#xff1a; 对2辗转相除… 目录 前言1.进制转换2.字符串加密的实现3.猜拳游戏4.多种方法计算π尾语 前言 嗨喽~大家好呀这里是魔王呐 ❤ ~! 1.进制转换 功能 获取十进制整数的二进制串相当于内置函数bin。 算法分析 对2辗转相除直到商为0 每次所得余数逆序即可 流程图绘制 测试驱动书写测试用例 convert(13) 1101convert(1) 1convert(0) 0convert(67) 1000011convert(15) 1111代码实现 def convert(n):添加上述测试用例s while n ! 0:r n % 2s str(r) sn // 2return sif __name__ __main__:import doctestdoctest.testmod(verboseTrue)运行上述测试可以看到0的二进制串没通过测试 原因是s默认为空串因而传入0时得到的将是空串。 我们可以在返回值时使用三元运算符处理即可return s if s ! “” else “0”。 扩展十进制转任意进制 进制变化的是数码和基数 基数我们可以通过参数传入来解决 数码我们可以通过定义码元串来完成然后通过索引访问即可 代码实现 def convert(num, base): convert(13, 2)1101 convert(23, 16)17 convert(23, 8)27 convert(30, 16)1Ecodes 0123456789ABCDEFs while num ! 0:r num % bases codes[r] snum // basereturn s if s ! else 0if __name__ __main__:import doctestdoctest.testmod(verboseTrue)2.字符串加密的实现 功能 对英文串进行加密规则英文字母循环右移n位不失一般性此处n设为3 算法分析 chr根据ASCII码获取字符 ord获取字母的ASCII码 循环右移即越界翻转z完后再到a即(ord(ch) 3 - 0x61) % 26 0x61。 流程图绘制 测试先行 encrypt(abc) defencrypt(xyz) abcencrypt(Abc) Defencrypt(a1b2c3) d1e2f3encrypt(abc ABC) def DEF代码实现 def encrypt(p):添加上述测试用例s for ch in p:code (ord(ch) - 0x61 3) % 26 0x61s chr(code)return sif __name__ __main__:import doctestdoctest.testmod(verboseTrue)运行上述测试前2个通过后面3个失败。 原因分析 大写字母处理不对代码默认基础字母是‘a’。 只需要增加base变量根据字母是大写还是小写来初始化即base 0x41 if ch.isupper() else 0x61将该行插入到第7行前然后把后面行中出现的0x61修改为base即可。 再运行测试前3个通过。 根据题意对英文字母进行加密非英文字母我们保持不变即可。 利用字符串对象提供的isalpha方法进行分支处理 加密方法的完整代码如下 def encrypt(p):添加上述测试用例s for ch in p:if not ch.isalpha():s chcontinuebase 0x41 if ch.isupper() else 0x61code (ord(ch) - 0x61 3) % 26 0x61s chr(code)return s注意Python字符串的isalpha方法支持unicode字符因而中文也是字符 这将导致上述代码无法正确处理中文。 我们可以通过自己定义is_letter函数来实现英文字母的判断。 3.猜拳游戏 功能 玩家与计算机“剪刀石头布”三局两胜(平局不算)最后输出获胜方。 计算机出拳使用random库随机产生玩家由键盘输入。 random库 randrange函数和range函数的参数一样在该范围产生一个随机数 choice函数抽取一个 choices函数有放回抽样 sample函数无放回抽样 seed函数默认系统时间作为种子。种子相同则产生相同随机数列。 逻辑判断优化 建立映射0表示scissor1表示stone2表示cloth 观察可得(x1)%3 y表示y胜否则x!y表示x胜 代码实现 import randomdef compare(computer, player):choices [scissor, stone, paper]infos [it is a draw., computer win!, player win!] wid 0if computer (player 1) % 3:wid 1elif computer ! player:wid 2return wid, infos[wid] f{choices[computer]} VS {choices[player]}def run(): result [0, 0, 0]while True:computer random.choice([0, 1, 2])player int(input(please input your choice:))wid, info compare(computer, player)print(info) result[wid] 1 if max(result[1], result[2]) 2: breakprint(fgame over!{result[1]}:{result[2]})if __name__ __main__:run()程序运行情况如下 please input your choice:0 computer win!stone VS scissor please input your choice:0 computer win!stone VS scissor game over!2:0please input your choice:0 player win!paper VS scissor please input your choice:1 player win!scissor VS stone game over!0:2please input your choice:0 it is a draw.scissor VS scissor please input your choice:0 computer win!stone VS scissor please input your choice:0 player win!paper VS scissor please input your choice:0 player win!paper VS scissor game over!1:24.多种方法计算π 功能 数列方式求ππ/4 1 - 1/3 1/5 - 1/7 1/9...... 通项分析 分子为1分母为奇数2n-1正负交替 计算项数越多精度越高 代码实现 def calc(n):s, sign 0, 1for i in range(1, n1):item sign / (2*i - 1)s item sign * -1 #正负交替return 4 * sif __name__ __main__:s calc(1000000)print(f{s})运行该程序可以得到π值为3.1415916535897743。 增加循环次数可以提升精度但运行时间会增加请大家自行测试。 扩展练习 已知数列π2/611/41/91/16……编程实现π的计算。 刘徽割圆术求π 割之弥细所失弥少计算正多边形的面积就是圆的面积单位圆的话就是π的值 正多边形就是n个相同大小的三角形只需计算1个三角形的面积即可 三角形三边长容易获得再利用海伦-秦九韶公式可以计算面积 p ( p − a ) ( p − b ) ∗ ( p − c ) \sqrt{p(p-a)(p-b)*(p-c)} p(p−a)(p−b)∗(p−c) ​其中p为周长的一半。 代码实现 import mathdef calc_area(n):angle 2*math.pi / nx1, y1 1, 0x2, y2 math.cos(angle), math.sin(angle)a math.sqrt((x1-x2)**2 (y1-y2)**2) #求两点距离p (a11) / 2 #周长的一半s math.sqrt(p * (p-a) * (p-1) * (p-1)) #海伦-秦九韶公式return s#学习中没有资料可以加我VXqian97378免费领 def run():n 20000s calc_area(n)print(n * s)if __name__ __main__:run()运行该程序可得π \piπ的值3.141592601914085。 扩展练习 利用已知两边长及其夹角求面积公式完成π \piπ的计算。 蒙特卡罗投针实验求π 概率可以用面积之比来表示 模拟投针实验 单位圆和其外接正方形 随机投针 圆内针数与总针数的比例等于圆和方形的面积之比 代码实现 import random, mathdef calc_area(n):count 0for i in range(n):x random.random()y random.random()d math.sqrt(x*x y*y) #到圆心的距离if d 1: #落入圆内则计数加1count 1return count * 4 / ndef run():n 1000000s calc_area(n)print(s)if __name__ __main__:run()运行程序1百万次投针得到的π \piπ值为3.140648精度不算太高。 尾语 要成功先发疯下定决心往前冲 学习是需要长期坚持的一步一个脚印地走向未来 未来的你一定会感谢今天学习的你。 —— 心灵鸡汤 本文章到这里就结束啦~感兴趣的小伙伴可以复制代码去试试哦 问题解答 · 源码获取 · 技术交流 · 抱团学习请联系
http://www.dnsts.com.cn/news/29530.html

相关文章:

  • 河南省建设教育中心的网站域名网站大全
  • 有域名没有服务器怎么做网站wordpress前端用什么
  • 泰州做网站的公司做搜狗pc网站快速
  • 快速做网站公司网页设计与制作微课教程第4版答案
  • 如何用凡科做自己的网站frontpage网站模板
  • 万网网站备案授权书网站改域名如何做百度优化
  • 网站建站步骤房产o2o网站建设
  • 网站营销建设公司html教程书
  • 网站免费源码大全百度投诉中心24人工
  • 商城版网站建设微信开发小程序开发网站建设
  • 做网站时怎样图片上传怎么才能让图片不变形有什么插件吗网站seo设置是什么
  • 建立网站目录结构时应注意哪几个方面?北京建筑大学
  • 网站免费模板制作adsence wordpress
  • 张店专业网站优化哪家好怎样提高网站流量
  • 网站手机客户端开发教程wordpress 评论 框
  • 响应式网站什么意思win7本机做网站
  • 做网站后端需要学什么软件开发工具属于哪种类型的软件
  • 网络推广做哪个网站比较好安阳县地图
  • 网站建设费走什么费用上海地图
  • 简约网站建设公司wordpress 米表
  • 电商网站开发岗位职责国外的技术社区
  • 武夷山网站建设wzjseowordpress 优化方案
  • 网站后台管理系统多少钱昆山广告设计公司
  • 网站建设培训厦门给大家分享个永久免费的云服务器
  • 织梦如何做几种语言的网站找国外客户的网站
  • 建设教育网站的目的深圳福田地址随便来一个
  • 网站的维护与更新微商代理平台
  • 网站的结构设计火车头wordpress采集后定时发布
  • dedeai网站最新优化是什么工作
  • 免费 网站 手机怎么做公司网站seo