Python:笨方法学 Python3-课程 41 笔记
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 笔记相关推荐
- 笨方法学python3习题21_【图片】笨方法学python3习题41,这是什么问题?【pyhton吧】_百度贴吧...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 代码如下: import random from urllib.request import urlopen import sys WORD_URL = ...
- 笨方法学 python3进阶篇_笨办法学Python 3 进阶篇
部分准备知识1 如果不喜欢作者的个人流程怎么办2 如果发现自己太糟糕怎么办2 习题0准备工作3 程序员用的编辑器3 Python3.63 工作终端4 pip和virtualenv的配置4 实验笔记4 ...
- 笨方法学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 ...
- 笨方法学python3怎么样_在python3中如何实现《笨方法学Python》ex11中的效果
书中python2.X的代码: print "How old are you?", age = raw_input() #输入38 实现的效果 How old are you? 3 ...
- 笨办法学习python应该看第几版_求问:完全小白学习Python看《笨方法学Python3》还是看《Python编程从入门到实践》?...
完全小白,建议看 <Python编程从入门到实践> 或 <像计算机科学家一样思考Python 第2版> 本书以培养读者以计算机科学家一样的思维方式来理解Python语言编程.贯 ...
- 笨方法学python3: ex43中文魔改
181007:把 Learn Python3 The Hard Way 一书的第43道练习题改成中文版.此外,刻意调低了难度.(话说中文书名翻成<用心学python>不可以么?) 这个游戏 ...
- 笨方法学python3怎么样_抖音笨李白是什么歌 抖音笨李白歌曲歌词介绍
抖音上的神曲是越来越多,这不最近抖音上的一首笨李白被很多人模仿歌唱,在这之后也有很多的用户在网上搜索笨李白的完整歌词,下面小编就给大家详细介绍一下吧! 抖音笨李白歌曲介绍: 其实这首歌就叫做<B ...
- 笨方法学python3怎么样_有个很笨的女朋友,是怎么样的体验?
我是妹子 ,但是我并不觉笨是可爱. 反而觉得自己是累赘. 为什么别人可以思考过来的东西, 我却需要很费劲? 为什么 ?我的逻辑思维能力很差? 我没有感觉到自己是可爱 ,甚至感到自卑. 一提到学习, 整 ...
- 笨方法学Python3复习
1.在Windows Powershell中,mkdir命令的作用是:在指定位置创建文件夹. 2.若要打开pydoc,则应在Windows Powershell输入python -m pydoc in ...
- 笨方法学python3 ex20
逐字输入ex20的代码之后,在Windows Shell中运行程序时我又报错!!!又是与ex17相同的报错.嗨呀,真生气! Traceback (most recent call last):File ...
最新文章
- java8 metaspacesize_metaspace默认大小
- 弹出模态窗口并传递数值
- java 缓存一致性_Java多线程——CPU缓存原理和缓存一致性问题
- python基础:序列(列表、元组、字符串)、函数、字典、集合
- 说说我最近比较迷的Criminal Minds
- java函数式编程归约reduce概念原理 stream reduce方法详解 reduce三个参数的reduce方法如何使用
- python中多维数组的计算_计算python中多维数组中数组的出现次数
- Eclipse开发struts完全指南(二)安装与配置
- Python实现程序运行时间度量分析
- 电脑鼠标点一下就选很多程序
- Linux 添加网卡
- php前台新闻调用,PHP 调用新浪滚动新闻
- PLA 3D打印件脆弱怎么办?
- 理解Play框架线程池
- 如何在Joomla中创建一个漂亮的单页网站
- openal alut vs2019编译
- 转载:一个平庸程序员的自白(豆瓣深度好文)
- 《设计模式之禅》总结
- 一枚IT运维小白的工作笔记
- linux ec20 usb驱动移植,linux下EC20 4G模块驱动移植