最新要闻
- 环球微资讯!充电仅需18秒!中科大研发出新型水系锌离子电池
- 或为问界M9 赛力斯大型SUV专利图曝光:有点“震撼”
- 天天头条:车评人表扬华为问界:看不见的底盘件 大面积用铝合金材料
- 环球信息:林州“网红试胆石”出现裂缝仍有游客打卡 官方回应
- 天天速讯:299元 小米小爱音箱儿童版开卖:童声专项识别优化
- 世界银行上调2023年全球经济增长预期至2%
- 【全球新要闻】老爸老妈浪漫史第五季(老爸老妈的浪漫史第五季结局是什么?)
- 爷青回!《灌篮高手》中国首映礼官宣:4月15日见
- 世界信息:快科技App 5.2.1新版发布:新增沉浸式阅读、排行榜一键分享长图
- 环球通讯!特斯拉下代电机不用稀土 国内专家:屁股决定脑袋 马斯克是迫不得已
- 今日聚焦!"全聚德连亏三年"登热搜:今年净亏损2.78亿元
- 时讯:iPhone 15 Pro相机凸起3.78毫米:约2枚1元硬币厚度
- 通讯!GGII:2022年中国锂电池回收处理废旧锂电池量41万吨,同比增37%
- 每日看点!电动牙刷别乱买 买错代价太大了
- 全球即时:小鹏P7迎整车OTA:6项新增功能 360全景影像正式上线
- 世界热消息:挑战不可能!阿维塔11在“8D山城”重庆开启城区NCA智驾导航辅助体验
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
每日焦点!Python程序笔记20230301
打印九九乘法表
for i in range(1, 10): for j in range(1, i+1): print(i, "x", j, "=", i * j, end=" ") print("\n")
第三行的 print(i, "x", j, "=", i * j, end=" ")
打印出 i 和 j 的乘积,并在末尾添加一个空格,以便下一个数字可以与其对齐。第四行的 print("\n")
打印一个换行符,以便下一行可以开始打印。
(资料图片)
range()
函数的结束值是不包括在范围内的,range(1, 10)
将生成从1到9的数字,但不包括10。
- 生成从0到5的整数序列:
range(6)
- 生成从2到10的偶数序列:
range(2, 11, 2)
- 生成从10到1的倒序整数序列:
range(10, 0, -1)
多种 Hello World
if __name__ == "__main__": str_list = ["Hello,","World!"] str1 = "Hello," str2 = "World!" print("Hello,"+"World!") print("".join(str_list)) print(str1+str2) print("str1"+"str2")
if __name__ == "__main__"
是 Python 中一个常用的条件语句,其作用是检查当前模块是否被直接运行(作为主程序),还是被导入到其他模块中使用。
当一个 Python 文件被执行时,Python 解释器会把该文件作为主程序执行,此时 __name__
变量的值为 "__main__"
。如果一个Python文件被其他文件导入并使用,__name__
变量的值则为该文件的模块名(不包括.py扩展名)。
因此,通过在 Python 代码中使用 if __name__ == "__main__":
条件语句,我们可以在代码中添加一些只有在该模块作为主程序运行时才会执行的代码块,而在该模块被导入到其他模块中时,这些代码块不会被执行。这种做法可以提高代码的复用性和可维护性,也可以避免在模块被导入时产生意外的副作用。
编程语言简史
历史上有很多编程语言,他们在编程语言发展的过程中都起到过重要的作用。
下面的 Python 数组包含了历史上的大部分编程语言。
languages = ["Regional Assembly Language","Autocode","FORTRAN","IPL (LISP的先驱)","FLOW-MATIC (COBOL的先驱)","COMTRAN (COBOL的先驱)","LISP","ALGOL 58","FACT (COBOL的先驱)","COBOL","APL","Simula","SNOBOL","CPL (C的先驱)","BASIC","PL/I","BCPL (C的先驱)","Logo","Pascal","Forth","C语言","Smalltalk","Prolog","ML","Scheme","SQL","Ada","C++","Common Lisp","MATLAB","Eiffel","Objective-C","Erlang","Perl","Tcl","FL (Backus)","Haskell","Python","Visual Basic","HTML","Ruby","Lua","CLOS (part of ANSI Common Lisp)","Java","Delphi (Object Pascal)","JavaScript","PHP","REBOL","D","C#","Visual Basic .NET","F#","Scala","Factor","Windows PowerShell","Rust","Clojure","Go"]
下面的 Python 数组包含了这些编程对应的创建时间。
years = [1951, 1952, 1954, 1954, 1955, 1957, 1958, 1958, 1959, 1959, 1962, 1962, 1962, 1963, 1964, 1964, 1967 ,1968 ,1970 ,1970 ,1972 ,1972 ,1972 ,1973 ,1975 ,1978 ,1980 ,1983 ,1984 ,1984 ,1985 ,1986 ,1986 ,1987 ,1988 ,1989 ,1990 ,1991 ,1991 ,1991 ,1993 ,1993 ,1994 ,1995 ,1995 ,1995 ,1995 ,1997 ,1999 ,2001 ,2001 ,2002 ,2003 ,2003 ,2006 ,2006 ,2007 ,2009]
编写一个 Python 程序,每行打印每个编程语言的名字和对应的创建时间,例如:
Regional Assembly Language : 1951Autocode : 1952FORTRAN : 1954...
补全代码分析
if __name__ == "__main__": languages = ... years = ... i = 0 while i < len(years): language = languages[i] year = years[i] print(language, ":", year) i += 1
if __name__ == "__main__": languages = ... years = ... [print(languages[i], ":", years[i]) for i in range(0, len(languages))]
if __name__ == "__main__": languages = ... years = ... for i in range(0, len(languages)): language = languages[i] year = years[i] print(language, ":", year)
第三段代码更好一些,因为它使用了更为 Pythonic 的方式来遍历两个列表。具体来说,它使用了 Python 中常用的 for-in
循环语句,而不是使用 while
循环或列表推导式来实现。
相比于第一段代码,第三段代码使用了更简洁的语法,同时也更易读。使用 for-in
循环可以直接遍历列表中的元素,而不需要额外的计数器变量。此外,使用 range()
函数生成一个整数序列的方式更为常见,也更易于理解。
相比于第二段代码,第三段代码也更为传统,更易于理解。使用列表推导式可以让代码更为紧凑,但在某些情况下可能会牺牲可读性,尤其是当列表推导式中嵌套了复杂的表达式时。而使用 for-in
循环则可以让代码更加自然地表达遍历两个列表的逻辑,也更容易理解和维护。
编程语言发明家
每个编程语言都有其内在的编程范式,体现着编程语言设计者的哲学。编程语言发展史上有许多杰出的人物。下面是一些例子:
programmers = [ "约翰·巴科斯(JohnWarnerBackus), 创建了Fortran语言", "阿兰·库珀(Alan Cooper), 开发了Visual Basic语言", "詹姆斯·高斯林(James Gosling), 开发了Java语言", "安德斯·海尔斯伯格(Anders Hejlsberg), 开发了Turbo Pascal、Delphi、C#以及TypeScript", "丹尼斯·里奇(Dennis MacAlistair Ritchie), 发明了C语言", "比雅尼·斯特劳斯特鲁普(Bjarne Stroustrup), 他以创造C++编程语言而闻名,被称为“C++之父”", "吉多·范罗苏姆(Guido van Rossum), 创造了 Python"]
为了进一步对上述文本数据解析,获得如下格式的结构化信息:
[ {"name_cn": "约翰·巴科斯", "name_en": "JohnWarnerBackus", "achievement": "创建了Fortran语言"}, {"name_cn": "阿兰·库珀", "name_en": "Alan Cooper", "achievement": "开发了Visual Basic语言"}, ...]
我们先分析一个例子,解析这个文本数据:"吉多·范罗苏姆(Guido van Rossum), 创造了 Python"
。
- 首先,定义一个函数
parse_parts
,通过第一个逗号,拆分出发明家的名字信息
和成就信息
。 - 其次,定义一个函数
parse_name
,通过对name
的进一步拆分,获得发明家的中英文名字信息。 - 最后,定义一个函数
parse_creators
,完成解析。
完整的代码模版如下:
def parse_parts(creator): index = creator.find(",") name, achievement = creator[0:index], creator[index+1:] return name.strip(), achievement.strip()def parse_name(name): index = name.find("(") name_cn, name_en = name[0:index], name[index:] name_en = name_en[1:len(name_en)-1] return name_cn, name_endef parse_creators(creators): # TODO(YOU): 请在此处正确实现if __name__ == "__main__": creators = ... profiles = parse_creators(creators) print(profiles)
前面结构分析
def parse_parts(creator): index = creator.find(",") name, achievement = creator[0:index], creator[index+1:] return name.strip(), achievement.strip()
这段 Python 代码定义了一个名为 parse_parts
的函数,它接收一个字符串类型的参数 creator
,这个参数是由一个名字和成就组成的字符串,中间由逗号分隔。函数返回一个包含两个元素的元组,第一个元素是名字,第二个元素是成就,都去掉了开头和结尾的空格。
具体的实现过程如下:
- 使用字符串方法
find()
查找逗号在字符串creator
中的位置,并返回它的索引。 - 使用字符串切片的方式,将名字和成就从
creator
中分离出来。这里使用逗号的索引将字符串creator
分成了两个部分,前面的部分是名字,后面的部分是成就。 - 使用字符串方法
strip()
将名字和成就的开头和结尾的空格去掉。 - 将名字和成就组成一个元组并返回。
例如,如果creator是"张三, 中国科学院院士",那么函数返回(“张三”, “中国科学院院士”)。
strip()
函数的作用是移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。例如,如果 s 是" hello world “,那么s.strip()返回"hello world”,去除了首尾的空格。如果 s 是"000123000",那么s.strip(‘0’)返回"123",去除了首尾的0。
def parse_name(name): index = name.find("(") name_cn, name_en = name[0:index], name[index:] name_en = name_en[1:len(name_en)-1] return name_cn, name_en
这段 Python 代码定义了一个名为 parse_name
的函数,用于解析程序员的名字。下面是代码的详细解释:
def parse_name(name):
:定义函数parse_name
,它接收一个名字字符串name
作为参数。index = name.find("(")
:查找名字字符串中左括号(
的位置,返回其索引值,赋值给变量index
。name_cn, name_en = name[0:index], name[index:]
:使用括号中的索引值index
将名字字符串分割为中文名和英文名两部分,中文名存储在变量name_cn
中,英文名存储在变量name_en
中。name_en = name_en[1:len(name_en)-1]
:将英文名字符串的第一个字符和最后一个字符(即左右括号)去除,得到真正的英文名。return name_cn, name_en
:返回名字的中文名和英文名,用元组的形式返回。
例如,如果 name 是"张三(Sam)",那么函数返回(“张三”, “Sam”)。
补全代码分析
def parse_creators(creators): profiles = [] for creator in creators: name, achievement = parse_parts(creator) name_cn, name_en = parse_name(name) profiles.append({ "name_cn": name_cn, "name_en": name_en, "achievement": achievement }) return profiles
这段 Python 代码实现了一个函数 parse_creators
,该函数接收一个字符串列表 creators
作为参数,每个字符串都代表了一个编程语言创始人的姓名和成就,函数的作用是将这些字符串解析成字典类型的数据,并将这些字典组成的列表作为函数的返回值。
具体而言,函数中使用了一个for循环,对于每个字符串creator
,首先调用parse_parts
函数将其解析成姓名和成就两个部分,然后调用parse_name
函数将姓名解析成中文名和英文名两个部分,最后将中英文姓名和成就组成一个字典,并将该字典添加到profiles
列表中。最终,函数返回这个列表,其中包含了所有编程语言创始人的信息。
append()
函数是 Python 列表中的一种方法,用于在列表末尾添加元素。在上面的代码中,profiles
列表通过 append()
方法向其末尾添加字典元素,每个字典元素包含了一个编程语言的创建者的名字、成就和中英文名字。每次循环迭代时,都会创建一个新的字典元素,并将其添加到 profiles
列表中,最终返回一个包含所有编程语言创建者信息的列表。
append()
函数的作用是在列表的末尾添加一个新的元素。例如,如果 a 是[1, 2, 3],那么a.append(4)会使 a 变成[1, 2, 3, 4]。注意,append()函数没有返回值,但是会修改原来的列表。
def parse_profile(creator): name, achievement = parse_parts(creator) name_cn, name_en = parse_name(name) return { "name_cn": name_cn, "name_en": name_en, "achievement": achievement }def parse_creators(creators): return [ parse_profile(creator) for creator in creators]
这里的列表解析式 [ parse_profile(creator) for creator in creators]
将 parse_profile(creator)
应用于 creators
列表中的每个元素 creator
,并将解析结果组成一个新的列表。这种写法更加简洁明了,避免了使用循环语句的繁琐。
def parse_profile(creator): name, achievement = parse_parts(creator) name_cn, name_en = parse_name(name) return { "name_cn": name_cn, "name_en": name_en, "achievement": achievement }def parse_creators(creators): profiles = [] for creator in creators: profile = parse_profile(creator) profiles.append(profile) return profiles
使用了列表推导式,将 for 循环和列表追加合并为一行代码,使得代码更加简洁和可读性更高。此外,它也更加函数化,将创建每个开发者简介的过程分离到单独的函数中,提高了代码的可维护性和可扩展性。
关键词:
[网络]TCP的三次握手与四次挥手[转载]
每日焦点!Python程序笔记20230301
云图说|图解云消息服务KooMessage
环球微资讯!充电仅需18秒!中科大研发出新型水系锌离子电池
或为问界M9 赛力斯大型SUV专利图曝光:有点“震撼”
天天头条:车评人表扬华为问界:看不见的底盘件 大面积用铝合金材料
环球信息:林州“网红试胆石”出现裂缝仍有游客打卡 官方回应
天天速讯:299元 小米小爱音箱儿童版开卖:童声专项识别优化
世界银行上调2023年全球经济增长预期至2%
关于算法开源乱七八糟事
【报资讯】RDIF.vNext全新低代码快速开发框架平台发布
环球聚焦:基于pdfbox实现的pdf添加文字水印工具
【全球新要闻】老爸老妈浪漫史第五季(老爸老妈的浪漫史第五季结局是什么?)
爷青回!《灌篮高手》中国首映礼官宣:4月15日见
世界信息:快科技App 5.2.1新版发布:新增沉浸式阅读、排行榜一键分享长图
环球通讯!特斯拉下代电机不用稀土 国内专家:屁股决定脑袋 马斯克是迫不得已
今日聚焦!"全聚德连亏三年"登热搜:今年净亏损2.78亿元
时讯:iPhone 15 Pro相机凸起3.78毫米:约2枚1元硬币厚度
通讯!GGII:2022年中国锂电池回收处理废旧锂电池量41万吨,同比增37%
环球速讯:如何用Golang处理每分钟100万个请求
天天热点评!全网最详细中英文ChatGPT-GPT-4示例文档-步骤指示智能生成从0到1快速入门——官网推荐的48种最佳应用场景(附python/node.js
【高端访谈】“与时俱进”|绿债担保品管理驱动绿色金融体系建设升级——专访中央结算公司担保品业务负责人
每日看点!电动牙刷别乱买 买错代价太大了
全球即时:小鹏P7迎整车OTA:6项新增功能 360全景影像正式上线
世界热消息:挑战不可能!阿维塔11在“8D山城”重庆开启城区NCA智驾导航辅助体验
汽车促销潮蔓延 车险会降价吗?业内人士:没有直接影响
环球时讯:成都双流现飞机“横穿马路” 网友:真“飞”机动车道
钦州白癜风专科医院哪个好-白癜风患者如何缓解压力
通过Nginx定义Header头信息
全国18省份都有扬沙浮尘天气!沙尘暴趁夜入京:口罩挡不住行人吃土
今日要闻!乘联会:汽车价格没崩盘 降价潮不存在
天天简讯:别回家充电!电动车爆炸致死楼上邻居 全国又有多起发生:实测起火后可怕
热推荐:中科大研发镧系新型固态电解质 全固态锂金属电池新突破
每日消息!聚焦京津冀协同发展|培育农业品牌 让河北新鲜蔬菜装进北京“菜篮子”
【读财报】两年持有期基金回撤透视:广发、上投摩根基金等产品亏损幅度居前
四大证券报精华摘要:4月11日
机械鼠标看了心动?智商税别再交了!
特斯拉将取消强制单踏板模式 选择权终于交还用户
环球实时:江苏封杀“老头乐” 国内多省或效仿:倒逼大爷买新能源车、考驾照现实吗
每日热门:《GTA6》想超越“三男一狗”很难 三主角影响力太强
每日速看!学系统集成项目管理工程师(中项)系列04a_项目管理一般知识(上)
快看:大家可以来介绍家里杨过的过程,供大家参考吗?
环球热消息:国产战机大片《长空之王》新预告公布:看完热血
天天热推荐:重学c#系列—— 简单编写一个guid [娱乐篇]
环球热议:乘联会:新能源车绿牌2年内或消失 但不是因为它难看
全球热议:男子网购耐克鞋挂李宁吊牌?平台回应:员工绑错了
精选!工匠精神又崩了 日本知名寿司店常年用过期食材:肉眼看不出变色就能用
环球热点!迪士尼《小美人鱼》新剧照出炉:人鱼对比高颜值反派公主 你选谁?
特斯拉在韩推出Model S/X 比国内便宜 约64.85万元起
名记:法国足球可能给梅西颁发超级金球奖 历史仅1人获此荣誉
【世界快播报】台州多地发布事业单位招聘公告
每日快报!小程序开发,uni-app,XBuilder 学习资源
天天新动态:前端工程化实战:React 模块化开发、性能优化和组件化实践
每日时讯!ADMM——交替方向乘子法
全球速递!中小型项目请求限流设计
天天新消息丨电动车价格有得降!“白色石油”碳酸锂价格雪崩:有公司濒临破产
世界快资讯丨局地阵风10级!北京发布大风沙尘暴双黄色预警:空气质量严重污染
全球消息!解释一下布隆过滤器原理
世界通讯!mit 6.824 lab1分析
每日热点:AQS源码学习
环球播报:日本拉面店禁止边吃边看手机!店长给出的理由看醉了:有损厨师尊严
4个月了!AMD RX 7900 XTX旗舰卡终于降价:一度杀到6399元 降幅20%
世界快播:Nimo全球盛典圆满举行 提速布局全球化业务
最新:screenfetch报错 /usr/bin/screenfetch: 行 1851: -: 语法错误:需要操作数(错误记号是 "-") 的一种解决方法
天天精选!直线光栅化-Bresenham算法
当前观点:客车司机开车途中嗦粉吓坏乘客 双手离开方向盘:官方回应
HTC发布Wildfire入门级4G手机:国产展锐处理器、3G内存
焦点速看:中国人自己的智能车身控制系统!比亚迪云辇实现0-1突破:填补国内技术空白
全球时讯:比亚迪云辇发布 王传福:传统豪华看车标、新能源豪华看技术
全球车身控制技术最高水平:比亚迪U9搭云辇X“跳舞”登台
伊宝馨2022年净利3220.96万同比增长161.43% 销售规模增加
天天视讯!百度松果菁英班--oj赛(第一次)
观点:未势能源首发“木星”车载液氢储氢系统:一罐氢气续航超1000km
最新消息:你掉的不是头发 而是“钻石”!
世界速读:长辈送礼绝不踩坑!平仄普洱茶大促:高档礼盒装到手99元
就等小米13 Ultra发布了!米粉晒工资:称“资金已到位”
比亚迪云辇技术来了:四套系统 汽车会自己“看路”
焦点速读:Android开发_记事本(2)数据库
领失业金的年轻人,重新思考工作的意义
看点:北上高铁出现大规模晚点 官方回应:故障抢修完毕 有序恢复通行
环球快讯:马斯克离开OpenAI内幕:大权独揽想法被拒 10亿美元打水漂
形同灾难电影!四子王旗沙尘暴红警:天空变橙红色
全球时讯:好吃无负担:诺梵55%~100%黑巧巧克力9.9元大促
全球今头条!Windmill 搭建个人任务中心
环球微头条丨市建局协办活动 重塑龙城特色风情
环球快播:水平接近ChatGPT!昆仑万维国产大语言模型“天工”3.5来了
世界热门:《铁甲小宝》高清重制引热议 网友:这次好好看看小姐姐
苦等703天后 《生化危机8村庄》Denuvo加密移除:正版玩家终于不卡了
售价20多万续航仅160公里 日系车工业垃圾果然凉凉:今年只卖出15辆
环球新资讯:1TB手机干到2599元 手机降价原因找到了:闪存市场暴跌
欧菲光:公司已预约4月28日披露2022年度报告
天天最资讯丨借力函数计算 FC,HEROZ 打造专业级 AI 日本将棋服务
Excelize 发布 2.7.1 版本,Go 语言 Excel 文档基础库
环球今头条!WebAssembly 助力云原生:APISIX 如何借助 Wasm 插件实现扩展功能?
世界速看:记录-html-docs-js避坑指南
阿里正式加入ChatGPT战局,“通义千问”上线后表现如何?
全球消息!债市日报:4月10日
焦点关注:重磅!亚洲最大推力液体火箭发动机试车台调试完成
视焦点讯!堆料最足超大杯!小米13 Ultra确认可变光圈+全焦段四摄
全优大七座SUV!全新一代揽月正式上市 18.99万元起售