admin 管理员组

文章数量: 1184232


2024年3月14日发(作者:微信开发者工具module)

的股票, 购买价格及当前价位 - 你可以随意添加其他数据项, 比如收益率, 52 周最

高指数,最低指数,等等. 用户每次输入各列的数据构成一个输出行.每行数据构成一个

列表.还有一个总列表,包括了 所有行的数据.数据输入完毕后,提示用户选择一列数据

项进行排序.把该数据项抽取出来作为字 典的键,字典的值就是该键对应行的值的列表

.提醒读者:被选择用来排序的数据项必须是非重复 的键,否则就会丢失数据,因为字典

不允许一个键有多个值. 你还可以选择其他计算输出,比如,盈亏比率,目前证券资产价

值等. 7-7. 值做键. 颠倒字典中的键和值.用一个字典做输入,输出另一个字典,用前

者的键做值,前者的

7-8. 人力资源.创建一个简单的雇员姓名和编号的程序.让用户输入一组雇员姓名和

编号. 你的程序可以提供按照姓名排序输出的功能,雇员姓名显示在前面,后面是对应

的雇员编号.附加 题:添加一项功能,按照雇员编号的顺序输出数据. 7-9. 翻译 (a) 

编写一个字符翻译程序(功能类似于 Unix 中的 tr 命令).我们将这个函数叫做 tr()

,它有 三个字符串做参数: 源字符串,目的字符串,基本字符串,语法定义如下:

def tr(srcstr, dststr, string)

srcstr 的内容是你打算"翻译"的字符集合,dsrstr 是翻译后得到的字符集合,而 st

ring 是 你打算进行翻译操作的字符串.举例来说,如果 srcstr == 'abc', dststr =

= 'mno', string == 'abcdef', 那么 tr()的输出将是'mnodef'. 注意这里 len(src

str) == len(dststr). 在这个练习里,你可以使用内建函数 chr() 和 ord(), 但它们

并不一定是解决这个问题所必不 可少的函数. (b) 在这个函数里增加一个标志符参数

,来处理不区分大小写的翻译问题.

EditByVheavens

EditByVheavens

(c)修改你的程序, 使它能够处理删除字符的操作. 字符串 srcstr 中不能够映射到

字符串 dststr 中字符的多余字符都将被过滤掉.换句话说,这些字符没有映射到 dst

str 字符串中的任何字符,因 此就从函数返回的字符里被过滤掉了.举例来说:如果 s

rcstr == 'abcdef', dststr == 'mno', string == 'abcdefghi', 那么 tr()将输出

'mnoghi'. 注意这里 len(srcstr) >= len(dststr). 7–10. 加密. (a) 用上一个练

习的思路编写一个"rot13"翻译器."rot13"是一个古老而又简单的加密方法, 它把字母

表中的每个字母用其后的第 13 个字母来代替. 字母表中前半部分字母将被映射到后

半部分, 而后半部分字母将被映射到前半部分,大小写保持不变.举例来说,'a'将被替

换为'n','X'将被替 换为'K'; 数字和符号不进行翻译. (b)在你的解决方案的基础上

加一个应用程序,让它提示用户输入准备加密的字符串(这个算法 同时也可以对加密后

的字符串进行解密),如下所示:

% rot13.py Enter string to rot13: This is a short sentence. Your string t

o en/decrypt was: [This is a short sentence.]. The rot13 string is: [Guvf 

vf n fubeg fragrapr.]. % % rot13.py Enter string to rot13: Guvf vf n fubeg

 fragrapr. Your string to en/decrypt was: [Guvf vf n fubeg fragrapr.]. The

 rot13 string is: [This is a short sentence.].

7–11. 定义.什么组成字典中合法的键? 举例说明字典中合法的键和非法的键.

7-12. 定义. (a)在数学上,什么是集合? (b)在 Python 中,关于集合类型的定义是什

么? 7–13. 随机数.修改练习 5-17 的代码:使用 random 模块中的 randint()或 ra

ndrange()方 法生成一个随机数集合:从 0 到 9(包括 9)中随机选择,生成 1 到 10 

个随机数.这些数字组成集合 A(A 可以是可变集合,也可以不是).同理,按此方法生成

集合 B.每次新生成集合 A 和 B 后,显示 结果 A | B 和 A & B 7–14. 用户验证.修

改前面的练习,要求用户输入 A | B 和 A & B 的结果,并告诉用户他(或 她)的答案是

否正确,而不是将 A | B 和 A & B 的结果直接显示出来.如果用户回答错误,允许他(

或 她)修改解决方案,然后重新验证用户输入的答案.如果用户三次提交的答案均不正

确,程序将显示 正确结果. 附加题:运用你关于集合的知识,创建某个集合的潜在子集

,并询问用户此潜在子集是否真是 该集合的子集,要求和主程序一样有显示更正和答案

的功能.

EditByVheavens

EditByVheavens

page 1

7–15. 编写计算器. 这个练习取材于 http://math.hws.edu/ 在线免费 Java 教材

中的练习 12.2.编写一个程序允许用户选择两个集合:A 和 B, 及运算操作符.例如,i

n, not in, &, |, ^, <, <=, >, >=, ==, !=, 等. (你自己定义集合的输入语法,它

们并不一定要像 Java 示例中那样用方括 号括住.)解析输入的字符串,按照用户选择

的运算进行操作.你写的程序代码应该比 Java 版本的 该程序更简洁.

EditByVheavens

EditByVheavens

条件和循环

本章主题 if 语句 else 语句 elif 语句 条件表达式 while 语句 for 语句 break

 语句 continue 语句 pass 语句 else 语句 (再看) Iterators 迭代器 列表解析(L

ist Comprehensions) 生成器表达式(Generator Expressions )

EditByVheavens

EditByVheavens

本章的主要内容是 Python 的条件和循环语句以及与它们相关的部分. 我们会深入探

讨 if , while , for 以及与他们相搭配的 else , elif , break , continue 和 p

ass 语句.

8.1 if 语句

Python 中的 if 子句看起来十分熟悉. 它由三部分组成: 关键字本身, 用于判断结

果真假的 条件表达式, 以及当表达式为真或者非零时执行的代码块. if 语句的语法

如下:

if expression: expr_true_suite

if 语句的 expr_true_suite 代码块只有在条件表达式的结果的布尔值为真时才执行

, 否则将 继续执行紧跟在该代码块后面的语句.

8.1.1 多重条件表达式

单个 if 语句可以通过使用布尔操作符 and , or 和 not 实现多重判断条件或是否

定判断条件.

if not warn and (system_load >= 10): print "WARNING: losing resources"

EditByVheavens

EditByVheavens

warn += 1

8.1.2 单一语句的代码块

如果一个复合语句(例如 if 子句, while 或 for 循环)的代码块仅仅包含一行代码

, 那么它可 以和前面的语句写在同一行上:

if make_hard_copy: send_data_to_printer()

上边这样的单行语句是合法的, 尽管它可能方便, 但这样会使得代码更难阅读, 所以

我们推 荐将这行代码移到下一行并合理地缩进. 另外一个原因就是如果你需要添加新

的代码, 你还是得把 它移到下一行.

8.2 else 语句

和其他语言一样, Python 提供了与 if 语句搭配使用的 else 语句. 如果 if 语句

的条件表达式的结果布尔值为假, 那么程序将执行 else 语句后的代码. 它的语 法你

甚至可以猜到:

if expression: expr_true_suite else: expr_false_suite

这里是样例代码:

if passwd == user.passwd: ret_str = "password accepted" id = user.id vali

d = True else: ret_str = "invalid password entered... try again!" valid = 

False

8.2.1

避免"悬挂 else"

Python 使用缩进而不是用大括号标记代码块边界的设计, 不仅帮助强化了代码的正

确性, 而 且还暗中帮助程序员避免了语法上正确的代码中存在潜在的问题. 其中一个

问题就是(臭名)昭著的 "悬挂 else (dangling else)"问题, 一种语义错觉.

EditByVheavens

page 2


本文标签: 用户 代码 集合 字符串 输入