×
超值优惠券
¥50
100可用 有效期2天

全场图书通用(淘书团除外)

关闭
暂无评论
图文详情
  • ISBN:9787302617341
  • 装帧:一般胶版纸
  • 册数:暂无
  • 重量:暂无
  • 开本:其他
  • 页数:384
  • 出版时间:2022-11-01
  • 条形码:9787302617341 ; 978-7-302-61734-1

本书特色

谁说学习编程一定很枯燥?本书用21个谜题和游戏的方式讲解Python的基础知识,使读者做每个练习时一边获得娱乐,一边学会文本处理、基本算法,以及列表和字典的用法。本书是Python菜鸟获得自信和经验的理想教科书。 项目虽小,收获却大。本书每章帮助读者完成一个新的Python程序挑战,包括密码生成器、押韵器、扰码器等。完成这些有趣的练习后,读者将从一个Python初学者成长为一个自信的程序员,并在此过程中度过一段美好的时光。

内容简介

主要内容 ● 编写Python命令行程序 ● 处理Python数据结构 ● 使用和控制随机性 ● 为程序和函数编写并运行测试 ● 下载每个项目的全套测试集

目录

第1章如何编写和测试Python程序 1

1.1创建你的**个程序 1

1.2注释行 2

1.3测试程序 2

1.4添加#!(释伴)行 4

1.5可执行的程序 5

1.6理解$PATH 6

1.7添加参数和帮助 7

1.8可选实参 9

1.9运行测试 11

1.10添加main()函数 11

1.11添加get_args()函数 12

1.12测试hello.py 14

1.13用new.py开始新程序 15

1.14使用template.py替代new.py 17

1.15小结 18

第2章瞭望哨:使用字符串 19

2.1启程 20

2.1.1如何使用测试 20

2.1.2用new.py创建程序 21

2.1.3编写、测试、重复 21

2.1.4定义实参 22

2.1.5串连字符串 24

2.1.6变量类型 25

2.1.7获取字符串的正确部分 25

2.1.8在REPL中找到帮助 26

2.1.9字符串方法 27

2.1.10字符串比较 28

2.1.11条件分支 29

2.1.12字符串格式化 30

2.1.13编写程序 31

2.2解决方案 31

2.3讨论 32

2.3.1用get_args()定义实参 32

2.3.2关于main() 32

2.3.3给单词的**个字符分类 33

2.3.4打印结果 34

2.3.5运行测试集 34

2.4更进一步 34

2.5小结 35

第3章去野餐:使用列表 37

3.1开始编写程序 38

3.2编写picnic.py程序 39

3.3介绍列表 41

3.3.1向列表添加一个元素 41

3.3.2向列表添加多个元素 42

3.3.3对列表进行索引 44

3.3.4对列表进行切片化 44

3.3.5在列表中查找元素 45

3.3.6从列表中删除元素 46

3.3.7对列表进行排序和反转 47

3.3.8变更列表 49

3.3.9连接列表 50

3.4用if/elif/else进行条件分支 50

3.5解决方案 51

3.6讨论 52

3.6.1定义实参 52

3.6.2对条目进行赋值和排序 53

3.6.3对条目进行格式化 53

3.6.4打印条目 54

3.7更进一步 54

3.8小结 54

第4章跳过5:使用字典 57

4.1字典 58

4.1.1创建字典 58

4.1.2访问字典值 60

4.1.3其他字典方法 61

4.2编写jump.py 62

4.3解决方案 64

4.4讨论 64

4.4.1定义参数 65

4.4.2使用dict进行编码 65

4.4.3处理序列中条目的多种方法 65

4.4.4不使用str.replace() 70

4.5更进一步 70

4.6小结 70

第5章吼叫信:使用文件和STDOUT 73

5.1读取文件 74

5.2写入文件 77

5.3编写howler.py 79

5.4解决方案 80

5.5讨论 81

5.5.1定义实参 82

5.5.2从文件或命令行读取输入 82

5.5.3选择输出文件句柄 83

5.5.4打印输出 84

5.5.5低内存版本 84

5.6更进一步 86

5.7小结 86

第6章数单词:读取文件和STDIN,迭代列表,格式化字符串 87

6.1编写wc.py 88

6.1.1定义文件输入 89

6.1.2迭代列表 90

6.1.3你在数什么 90

6.1.4格式化结果 92

6.2解决方案 93

6.3讨论 94

6.3.1定义实参 94

6.3.2使用for循环读入一个文件 94

6.4更进一步 96

6.5小结 96

第7章Gashlycrumb:在字典中查找条目 97

7.1编写 gashlycrumb.py 98

7.2解决方案 101

7.3讨论 102

7.3.1处理实参 102

7.3.2读取输入文件 102

7.3.3使用字典推导式 103

7.3.4lookup字典 104

7.4更进一步 104

7.5小结 105

第8章苹果和香蕉:找到并替换 107

8.1更改字符串 109

8.1.1使用str.replace()方法 109

8.1.2使用str.translate() 110

8.1.3变更字符串的其他方法 110

8.2解决方案 111

8.3讨论 112

8.3.1定义参数 112

8.3.2替换元音的8种方法 113

8.4用测试进行重构 125

8.5更进一步 126

8.6小结 126

第9章拨号诅咒:用单词列表生成随机嘲讽话 127

9.1编写abuse.py 128

9.1.1验证实参 129

9.1.2导入随机模块并生成种子 131

9.1.3定义形容词和名词 131

9.1.4采集随机样本并选择 132

9.1.5对输出进行格式化 133

9.2解决方案 134

9.3讨论 135

9.3.1定义实参 135

9.3.2使用parser.error() 136

9.3.3程序退出值和STDERR 136

9.3.4用random.seed()控制随机性 137

9.3.5用range()进行迭代并使用抛弃变量 137

9.3.6构建嘲讽语句 138

9.4更进一步 139

9.5小结 139

第10章电话:随机变更字符串 141

10.1编写telephone.py 142

10.1.1计算变更的数量 144

10.1.2变更空间 144

10.1.3选择要变更的字符 145

10.1.4变更字符串 147

10.1.5编写程序 148

10.2解决方案 148

10.3讨论 149

10.3.1变更字符串 150

10.3.2使用list代替str 151

10.4更进一步 152

10.5小结 152

第11章瓶装啤酒之歌:

编写和测试函数 153

11.1编写bottles.py 154

11.1.1反向计数 154

11.1.2编写函数 155

11.1.3为verse()编写测试 156

11.1.4使用verse()函数 160

11.2解决方案 160

11.3讨论 162

11.3.1反向计数 162

11.3.2测试驱动开发 162

11.3.3verse()函数 163

11.3.4遍历歌曲小节 164

11.3.51500个其他解决方案 166

11.4更进一步 166

11.5小结 167

第12章赎金条:随机大写文本 169

12.1编写ransom.py 170

12.1.1修改文本 171

12.1.2掷硬币 171

12.1.3创建新字符串 172

12.2解决方案 172

12.3讨论 174

12.3.1遍历序列中的元素 174

12.3.2编写函数来选择字母 175

12.3.3编写list.append()的另一种方法 175

12.3.4使用str代替list 176

12.3.5使用列表解析式 176

12.3.6使用map()函数 176

12.4方法比较 177

12.5更进一步 178

12.6小结 178

第13章圣诞节的十二天:算法设计 179

13.1编写twelve_days.py 180

13.1.1计数 181

13.1.2创建序数值 182

13.1.3制作小节 183

13.1.4使用verse()函数 185

13.1.5打印 186

13.1.6开始编程 186

13.2解决方案 186

13.3讨论 188

13.3.1制作一个小节 188

13.3.2生成小节 191

13.3.3打印小节 192

13.4更进一步 193

13.5小结 193

第14章押韵机:使用正则表达式创建押韵单词 195

14.1编写rhymer.py 197

14.1.1分解单词 198

14.1.2使用正则表达式 198

14.1.3使用捕获组 201

14.1.4真实性 205

14.1.5创建输出 206

14.2解决方案 206

14.3讨论 208

14.3.1取单词词干 208

14.3.2对正则表达式进行格式化和注释 210

14.3.3在程序之外使用 stemmer()函数 211

14.3.4创建押韵字符串 212

14.3.5不带正则表达式的stemmer() 213

14.4更进一步 214

14.5小结 214

第15章肯德基修士:关于正则表达式的更多故事 215

15.1编写friar.py 217

15.1.1使用正则表达式拆解文本 218

15.1.2简写类 218

15.1.3否定简写类 220

15.1.4使用带有已捕获的正则表达式的re.split() 221

15.1.5编写fry()函数 223

15.1.6使用fry()函数 227

15.2解决方案 228

15.3讨论 229

15.3.1手动编写fry()函数 230

15.3.2编写带有正则表达式的fry()函数 231

15.4更进一步 232

15.5小结 232

第16章扰码器:随机重排单词中部 233

16.1编写scrambler.py 234

16.1.1把文本分解成行和单词 235

16.1.2捕获组、非捕获组和可选组 236

16.1.3编译正则表达式 236

16.1.4对一个单词进行扰码 237

16.1.5对所有单词进行扰码 239

16.2解决方案 239

16.3讨论 241

16.3.1处理文本 241

16.3.2对单词进行扰码 243

16.4更进一步 243

16.5小结 244

第17章疯狂填词:使用正则表达式 245

17.1编写mad.py 246

17.1.1使用正则表达式找到尖括号 247

17.1.2停止并打印错误 250

17.1.3获取值 251

17.1.4替换文本 252

17.2解决方案 252

17.3讨论 253

17.3.1用正则表达式进行替换 253

17.3.2不用正则表达式找到占位符 254

17.4更进一步 256

17.5小结 256

第18章希伯来数:使用ASCII值对文本进行数字编码 257

18.1编写gematria.py 258

18.1.1清洁单词 259

18.1.2序数字符值和范围 260

18.1.3求和与归约 262

18.1.4使用functools.reduce 263

18.1.5对单词进行编码 264

18.1.6拆解文本 265

18.2解决方案 265

18.3讨论 266

18.3.1编写word2num() 267

18.3.2排序 268

18.3.3测试 270

18.4更进一步 270

18.5小结 270

第19章每日健身:解析CSV文件,创建文本表输出 271

19.1编写wod.py 272

19.1.1读取带分隔符的文本文件 272

19.1.2手动读取CSV文件 274

19.1.3用csv模块进行解析 277

19.1.4创建读取CSV文件的函数 278

19.1.5选择健身项目 279

19.1.6格式化输出 281

19.1.7处理无效数据 281

19.1.8编程时间 282

19.2解决方案 282

19.3讨论 284

19.3.1读取CSV文件 284

19.3.2潜在的运行错误 285

19.3.3使用pandas.read_csv()解析文件 286

19.3.4对表进行格式化 287

19.4更进一步 289

19.5小结 289

第20章密码强度:生成安全且容易记忆的密码 291

20.1编写password.py 293

20.1.1创建唯一的单词列表 295

20.1.2清洁文本 296

20.1.3使用集合 298

20.1.4对单词进行过滤 298

20.1.5将单词首字母大写 300

20.1.6采样和制作密码 300

20.1.7l33t-ify 300

20.1.8整体运行 301

20.2解决方案 302

20.3讨论 304

20.3.1清洁文本 304

20.3.2ransom()函数 305

20.3.3l33t()函数 305

20.3.4处理文件 306

20.3.5采样和创建密码 307

20.4更进一步 308

20.5小结 308

第21章井字棋:探索状态 309

21.1编写tictactoe.py 310

21.1.1验证用户输入 312

21.1.2更改棋盘 313

21.1.3打印棋盘 313

21.1.4确定赢家 314

21.2解决方案 315

21.2.1验证实参和变更棋盘 317

21.2.2对棋盘进行格式化 320

21.2.3找到赢家 321

21.3更进一步 322

21.4小结 322

第22章井字棋归来:带有类型提示的交互式版本 323

22.1编写itictactoe.py 323

22.1.1元组对话 325

22.1.2具名元组 326

22.1.3添加类型提示 328

22.1.4用Mypy进行类型验证 329

22.1.5更新不可变的结构 330

22.1.6向函数定义添加类型提示 331

22.2解决方案 332

22.2.1使用TypedDict的版本 334

22.2.2思考状态 336

22.3更进一步 336

22.4小结 336

后记 337

附录使用argparse 339




展开全部

作者简介

Ken Youens-Clark是亚利桑那大学的高级科学程序员。他拥有生物系统工程硕士学位,从事编程工作二十多年。

预估到手价 ×

预估到手价是按参与促销活动、以最优惠的购买方案计算出的价格(不含优惠券部分),仅供参考,未必等同于实际到手价。

确定
快速
导航