Python自学笔记,便于个人回顾。
原程序(Python3.7+Pycharm2019.3.1)

"""名称:  Lesson41-translation.py作者:  Morven_Xie版本:  1.1编制:  2020/02/23 16:19更新:  2021/02/23 22:38功能:  输入一个类的名字,程序会自己解释简介:  笨方法学Python3课程41练习题Email:  morven_xie@163.com
"""import random  # 随机产生浮点数/整数/字符串等
from urllib.request import urlopen  # urlopen 打开网址
import sysWORD_URL = "http://learnpythonthehardway.org/words.txt"
Words = []
# 他们想要翻译短语吗?
if len(sys.argv) == 2 and sys.argv[1] == "english":       # '''判断argv参数是否是2个且第二个参数是english,如果是则为真,不是则为假'''Phrase_first = True
else:Phrase_first = False# 加载网站的文字
for word in urlopen(WORD_URL).readlines():                #'''打开网址,读取网址的所有行,每一行为一个元素,以列表的形式保存,读取列表中的所有元素(也就是单词)'''Words.append(str(word.strip(), encoding="utf-8"))     # '''去除单词的首尾空格或换行符,以utf-8编码,以字符串的类型添加到列表追加给Words里面'''Phrases = {                                               #Phrase →字典类型"class %%%(%%%):":                                     #"""创建一个叫%%%的类,并继承%%%。""""Make a class named %%% that is-a %%%.","class %%%(object):\n\tdef __init__(slef,***)":        #"""类%%%有一个__init__方法,该方法有self和***两个参数。""""class %%% has-a __init__that takes self and *** params.","class %%%(object):\n\tdef ***(self,@@@)":"class %%% hass-a function  *** that takes self and @@@ params.",  #"""类%%%有一个叫***的函数,该函数有self和@@@两个参数。""""***==%%%%()":"Set *** to an instance of class %%%。","***.***(@@@)":"From *** get the *** function,call it with params self,@@@.","***.***='***'":"From *** get the *** attribute and set it to '***."
}def convert(section, phrase):class_names = [w.capitalize() for w in                      #capitalize()将字符串的第一个字母变成大写,其他字母变小写random.sample(Words, section.count("%%%"))]  # '''先统计snippet中‘%%%’出现的次数n,再随机返回WORDS中n个元素'''other_names = random.sample(Words, section.count("***"))print("1#-----------------------\n class_names and others names")print(class_names)print(other_names)results = []param_names = []for i in range(0, section.count("@@@")):param_count = random.randint(1, 3)               #random.randint()随机生一个整数int类型,可以指定这个整数的范围,同样有上限和下限值param_names.append('-'.join(random.sample(Words, param_count)))    #.join()将序列中的元素以指定的字符连接生成一个新的字符串。print("2#-----------------------\n param_names and param_count")print(param_count)print(param_names)# 用下划线连接随机的WORDS单词追加给param_namesfor sentence in section, phrase:result = sentence[:]print("2.0#-----------------------\n")print(result)#python中复制列表的方法for word in class_names:result = result.replace("%%%", word, 1)   # replace() 方法把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次。print("2.1#-----------------------\n")print(word)print(result)for word in other_names:result = result.replace("***", word, 1)print("2.2#-----------------------\n")print(word)print(result)# 假冒参数列表for word in param_names:result = result.replace("@@@", word, 1)print("2.3#-----------------------\n")print(word)print(result)results.append(result)return resultsprint(result)# 执行到ctrl-Dtry:while True:sections = list(Phrases.keys())    #`Python 字典(D`ictionary) keys() 函数以列表返回一个字典所有的键random.shuffle(sections)            #random.shuffle()如果你想将一个序列中的元素,随机打乱的话可以用这个函数方法for section in sections:phrase = Phrases[section]question, answer = convert(section, phrase)if Phrase_first:question, answer = answer, questionprint("3#-----------------------\n section,phrase,question")print(section)print(phrase)print(question)input(">")print(f'Answer:{answer}\n\n')
except EOFError:   """#eof 是end of file的缩写,“eof” 表示到文件末尾了,所以eoferror表示它发现了一个不期望的文件尾。"""
print("\nBye")

>> 更多相关内容,点击Morven_Xie博客概览

Python:笨方法学 Python3-课程 41 笔记相关推荐

  1. 笨方法学python3习题21_【图片】笨方法学python3习题41,这是什么问题?【pyhton吧】_百度贴吧...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 代码如下: import random from urllib.request import urlopen import sys WORD_URL = ...

  2. 笨方法学 python3进阶篇_笨办法学Python 3 进阶篇

    部分准备知识1 如果不喜欢作者的个人流程怎么办2 如果发现自己太糟糕怎么办2 习题0准备工作3 程序员用的编辑器3 Python3.63 工作终端4 pip和virtualenv的配置4 实验笔记4 ...

  3. 笨方法学python3 mobi_[下载]Learn Python 3 the Hard Way(已更新完整版PDF\AZW3\EPUB\MOBI)...

    Learn Python 3 The Hard Way 出版日期:2017.07 内容简介: You Will Learn Python 3! Zed Shaw has perfected the w ...

  4. 笨方法学python3怎么样_在python3中如何实现《笨方法学Python》ex11中的效果

    书中python2.X的代码: print "How old are you?", age = raw_input() #输入38 实现的效果 How old are you? 3 ...

  5. 笨办法学习python应该看第几版_求问:完全小白学习Python看《笨方法学Python3》还是看《Python编程从入门到实践》?...

    完全小白,建议看 <Python编程从入门到实践> 或 <像计算机科学家一样思考Python 第2版> 本书以培养读者以计算机科学家一样的思维方式来理解Python语言编程.贯 ...

  6. 笨方法学python3: ex43中文魔改

    181007:把 Learn Python3 The Hard Way 一书的第43道练习题改成中文版.此外,刻意调低了难度.(话说中文书名翻成<用心学python>不可以么?) 这个游戏 ...

  7. 笨方法学python3怎么样_抖音笨李白是什么歌 抖音笨李白歌曲歌词介绍

    抖音上的神曲是越来越多,这不最近抖音上的一首笨李白被很多人模仿歌唱,在这之后也有很多的用户在网上搜索笨李白的完整歌词,下面小编就给大家详细介绍一下吧! 抖音笨李白歌曲介绍: 其实这首歌就叫做<B ...

  8. 笨方法学python3怎么样_有个很笨的女朋友,是怎么样的体验?

    我是妹子 ,但是我并不觉笨是可爱. 反而觉得自己是累赘. 为什么别人可以思考过来的东西, 我却需要很费劲? 为什么 ?我的逻辑思维能力很差? 我没有感觉到自己是可爱 ,甚至感到自卑. 一提到学习, 整 ...

  9. 笨方法学Python3复习

    1.在Windows Powershell中,mkdir命令的作用是:在指定位置创建文件夹. 2.若要打开pydoc,则应在Windows Powershell输入python -m pydoc in ...

  10. 笨方法学python3 ex20

    逐字输入ex20的代码之后,在Windows Shell中运行程序时我又报错!!!又是与ex17相同的报错.嗨呀,真生气! Traceback (most recent call last):File ...

最新文章

  1. java8 metaspacesize_metaspace默认大小
  2. 弹出模态窗口并传递数值
  3. java 缓存一致性_Java多线程——CPU缓存原理和缓存一致性问题
  4. python基础:序列(列表、元组、字符串)、函数、字典、集合
  5. 说说我最近比较迷的Criminal Minds
  6. java函数式编程归约reduce概念原理 stream reduce方法详解 reduce三个参数的reduce方法如何使用
  7. python中多维数组的计算_计算python中多维数组中数组的出现次数
  8. Eclipse开发struts完全指南(二)安装与配置
  9. Python实现程序运行时间度量分析
  10. 电脑鼠标点一下就选很多程序
  11. Linux 添加网卡
  12. php前台新闻调用,PHP 调用新浪滚动新闻
  13. PLA 3D打印件脆弱怎么办?
  14. 理解Play框架线程池
  15. 如何在Joomla中创建一个漂亮的单页网站
  16. openal alut vs2019编译
  17. 转载:一个平庸程序员的自白(豆瓣深度好文)
  18. 《设计模式之禅》总结
  19. 一枚IT运维小白的工作笔记
  20. linux ec20 usb驱动移植,linux下EC20 4G模块驱动移植

热门文章

  1. 【分步入门指南】如何在10分钟内设置EOS钱包和帐户
  2. SqlServer2008卸载掉
  3. Idea中的搜索快捷键
  4. 目标跟踪之Camshift
  5. C++ 已知两点坐标和半径求圆心坐标程序
  6. utf-8 编码 转换 汉字 字符集
  7. 使用mingw编译log4cpp--问题整理
  8. 比较3个购书网站,china-pub,dangdang,joyo(amazon)
  9. Android开源项目:微信打飞机游戏源代码
  10. NAT技术与代理服务器