首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python核心编程习题(六)

6–1. 字符串.

string 模块中是否有一种字符串方法或者函数可以帮我鉴定一下一个字符串 是否是另一个大字符串的一部分?

string.find()

6–2. 字符串标识符.

修改例 6-1 的 idcheck.py 脚本,使之可以检测长度为一的标识符,并且 可以识别 Python 关键字,对后一个要求,你可以使用 keyword 模块(特别是 keyword.kelist)来帮你.

6–3. 排序

(a) 输入一串数字,从大到小排列之.

(b) 跟 a 一样,不过要用字典序从大到小排列之.

6–4. 算术.

更新上一章里面你的得分测试练习方案,把测试得分放到一个列表中去.你的代 码应该可以计算出一个平均分,见练习 2-9 和练习 5-3.

6–5. 字符串

(a)更新你在练习 2-7 里面的方案,使之可以每次向前向后都显示一个字符串的一个字符.

(b)通过扫描来判断两个字符串是否匹配(不能使用比较操作符或者 cmp()内建函数)。附加题:在你的方案里加入大小写区分.

(c)判断一个字符串是否重现(后面跟前面的一致).附加题:在处理除了严格的回文之外,加入对 例如控制符号和空格的支持。

(d)接受一个字符,在其后面加一个反向的拷贝,构成一个回文字符串.

6–6. 字符串.创建一个 string.strip()的替代函数:接受一个字符串,去掉它前面和后面的 空格(如果使用 string.*strip()函数那本练习就没有意义了)

6–7. 调试.看一下在例 6.5 中给出的代码(buggy.py) (a)研究这段代码并描述这段代码想做什么.在所有的(#)处都要填写你的注释. (b)这个程序有一个很大的问题,比如输入 6,12,20,30,等它会死掉,实际上它不能处理任何的偶 数,找出原因. (c)修正(b)中提出的问题.

6–8. 列表.给出一个整数值,返回代表该值的英文,比如输入 89 返回"eight-nine"。附加题: 能够返回符合英文语法规则的形式,比如输入“89”返回“eighty-nine”。本练习中的值限定在家 0 到 1,000.

6–9. 转换.为练习 5-13 写一个姊妹函数, 接受分钟数, 返回小时数和分钟数. 总时间不 变,并且要求小时数尽可能大.

6–10.字符串.写一个函数,返回一个跟输入字符串相似的字符串,要求字符串的大小写反转. 比如,输入"Mr.Ed",应该返回"mR.eD"作为输出.

6–11.转换 (a)创建一个从整数到 IP 地址的转换程序,如下格式: WWW.XXX.YYY.ZZZ. (b)更新你的程序,使之可以逆转换

6–12.字符串

(a)创建一个名字为 findchr()的函数,函数声明如下: def findchr(string, char) findchr()要在字符串 string 中查找字符 char,找到就返回该值的索引,否则返回-1.不能用 string.*find()或者 string.*index()函数和方法

(b)创建另一个叫 rfindchr()的函数,查找字符 char 后一次出现的位置.它跟 findchr()工作 类似,不过它是从字符串的后开始向前查找的.

(c)创建第三个函数,名字叫 subchr(),声明如下: def subchr(string, origchar, newchar) subchr()跟 findchr()类似,不同的是,如果找到匹配的字符就用新的字符替换原先字符.返回 修改后的字符串.

6–13.字符串.string 模块包含三个函数,atoi(),atol(),和 atof(),它们分别负责把字符串转 换成整数,长整型,和浮点型数字.从 Python1.5 起,Python 的内建函数 int(),long(),float()也可以 做相同的事了, complex()函数可以把字符串转换成复数.(然而 1,5 之前,这些转换函数只能工作于 数字之上) string 模块中并没有实现一个 atoc()函数,那么你来实现一个,atoc(),接受单个字符串做参 数输入,一个表示复数的字符串,例如,'-1.23e+4-5.67j',返回相应的复数对象.你不能用 eval()函 数,但可以使用 complex()函数,而且你只能在如下的限制之下使用 complex():complex(real,imag)的 real 和 imag 都必须是浮点值.

6–14.随机数.设计一个"石头,剪子,布"游戏,有时又叫"Rochambeau",你小时候可能玩过,下面 是规则.你和你的对手,在同一时间做出特定的手势,必须是下面一种手势:石头,剪子,布.胜利者从 下面的规则中产生,这个规则本身是个悖论. (a) the paper covers the rock, 布包石头. (b)石头砸剪子, (c)剪子剪破布.在你的计算机版本中,用户输入她/他的选项,计算机找一个随机选项,然后由你 的程序来决定一个胜利者或者平手.注意:好的算法是尽量少的使用 if 语句.

6–15.转换

(a)给出两个可识别格式的日期,比如 MM/DD/YY 或者 DD/MM/YY 格式,计算出两个日期间的天

数.

(b)给出一个人的生日,计算从此人出生到现在的天数,包括所有的闰月. (c)还是上面的例子,计算出到此人下次过生日还有多少天.

6–16.矩阵.处理矩阵M和N的加和乘操作.

6–17.方法.实现一个叫 myPop()的函数,功能类似于列表的 pop()方法,用一个列表作为输入, 移除列表的新一个元素,并返回它.

6–18. zip() 内建函数 在 6.13.2 节里面关于 zip()函数的例子中,zip(fn,ln)返回的是什么?

返回ZIP对象

6–19.多列输出.有任意项的序列或者其他容器,把它们等距离分列显示.由调用者提供数据和 输出格式.例如,如果你传入 100 个项并定义 3 列输出,按照需要的模式显示这些数据.这种情况下,应 该是两列显示 33 个项,后一列显示 34 个.你可以让用户来选择水平排序或者垂直排序.

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180218G01FTL00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券