编程语言简史

community_302 2021-09-10 16:06:16

历史上有很多编程语言,他们在编程语言发展的过程中都起到过重要的作用。

下面的 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 : 1951
Autocode : 1952
FORTRAN : 1954
...

请找出以下代码中错误的选项。

返回练习题答题页面

...全文
25012 337 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
337 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_36825597 2022-08-25
精选
  • 打赏
  • 举报
回复 195
if name == 'main':
    languages = ...
    years = ...
    for language in languages:
        for year in years:
            print(language, ':', year)

# 错误选项:一个语言都和每个年份一起打印了出来,正确的应该是一个语言按顺序对应一个年份。
CSDN-Ada助手 2022-08-26
  • 举报
回复 10
@qq_36825597 总结得很好,学到了!
c语言加油! 2022-08-29
  • 举报
回复 5
@qq_36825597 怪我根本看不懂这英文
凉城宇 2022-12-02
  • 举报
回复 2
@qq_36825597 没有看懂代码,但是听你这么解说 自己有一定了解思路
5条回复
YuPersist 2022-08-06
精选
  • 打赏
  • 举报
回复 155
if name == 'main':
    languages = ...
    years = ...
    for language in languages:
        for year in years:
            print(language, ':', year)

这个选项是双循环, 属于循环嵌套, 顾名思义就是一个大循环里面套用一个小循环
每一次完整循环打印的结果应该是大循环中的一个元素和嵌套循环中小循环的所有元素
形象表示类似于:
第一次循环: 语言1 , 时间1, 时间2,.....,时间[len(years)-1]
第二次循环: 语言2 , 时间1, 时间2,.....,时间[len(years)-1]
.
.
最后一次循环: 语言[len(lanfuages)-1] , 时间1, 时间2,.....,时间[len(years)-1]
dbdkdidbdmd 2022-08-29
  • 举报
回复 4
@YuPersist 懂啦哥
m0_63588189 2022-12-10
  • 举报
回复 3
@YuPersist 总结得太棒了👏
翩ji 2023-06-09
  • 举报
回复
@YuPersist 那正确的应该是什么?
4条回复
羯劫小囡 2024-09-06
  • 打赏
  • 举报
回复 1

选项 D 中使用了两个嵌套的 for 循环来遍历 languages 和 years 数组,这会导致每个语言名称被打印多次,每次与 years 数组中的不同年份配对,正确的做法是确保每个语言名称只打印一次,并且与对应的年份配对。下面是示例:
if name == 'main':
languages = ["Regional Assembly Language","Autocode","FORTRAN", ...] # 省略其他语言
years = [1951, 1952, 1954, ...] # 省略其他年份
for i in range(len(languages)):
print(languages[i], ':', years[i])
或者使用列表推导式:
if name == 'main':
languages = ["Regional Assembly Language","Autocode","FORTRAN", ...] # 省略其他语言
years = [1951, 1952, 1954, ...] # 省略其他年份
[print(languages[i], ':', years[i]) for i in range(len(languages))]
print(languages[i], ':', years[i])

任我行2024 2024-08-25
  • 打赏
  • 举报
回复
选项C是错误的。是要输出语言对应的年份,那么在循环中嵌套循环,肯定是错误的。
柒小毓 2024-08-17
  • 打赏
  • 举报
回复 3
错误选项D,原因是:双循环 大循环里面套一个小循环 ,就会导致 第一次循环后,时间都在一起,同理
2301_78382953 2024-07-22
  • 打赏
  • 举报
回复

因为循环嵌套导致遍历速度不一致,导致输出不一致。languages遍历一个元素, year遍历所有元素

qwer1234malijun 2024-07-14
  • 打赏
  • 举报
回复
OK
m0_63667705 2024-07-02
  • 打赏
  • 举报
回复

如果在错误语句中进行修改,满足要求,该怎么改,谁能写下代码吗

Kabyl 2024-06-25
  • 打赏
  • 举报
回复

自己做题看不太懂,来评论区瞬间清楚了,感谢平台

无言非影 2024-05-28
  • 打赏
  • 举报
回复 3

正确:
使用了一个 while 循环来遍历 years 列表的索引,然后通过索引来获取对应的语言和年份。

i = 0
while i < len(years):
    language = languages[i]
    year = years[i]
    print(language,':',year)
    i += 1

正确:
使用了一个 for 循环来遍历 languages 列表的索引,然后通过索引来获取对应的语言和年份。这种方法与第一个选项相似,但使用了 for 循环而不是 while 循环。

for i in range(0,len(languages)):
    language = languages[i]
    year = years[i]
    print(language,':',year)

正确:
列表推导式,它会遍历 languages 列表的索引,并打印每个语言和对应的年份。

[print(languages[i],':',years[i]) for i in range(0,len(languages))]

错误:
会导致每种语言被打印多次,每次都与不同的年份配对

for language in languages:
    for year in years:
        print(language, ':',year)

range(0,len(languages)) 什么意思?
range(0, len(languages)) 是一个 Python 中的内置函数 range() 的调用,它生成一个整数序列,范围从 0 开始(包括 0)到 len(languages) 结束(不包括 len(languages))。这个序列包括了从 0 到 len(languages) - 1 的所有整数。

殇在山风 2024-06-09
  • 举报
回复
@无言非影 在第一个代码中,i最后不能等于len取出的长度,最后一个数取不到,这怎么办
「已注销」 2024-06-10
  • 举报
回复
@殇在山风 列表下标是从0开始的
何何爱编程 2024-08-16
  • 举报
回复
@殇在山风 下标是从0开始,如果等于的话,会取数据过长
1条回复
109702008 2024-05-22
  • 打赏
  • 举报
回复

选项B中的方法是错误的。对于两个数组languagesyears,选项B中的代码将使用嵌套的for循环,这将导致每一种语言都与所有的年份配对,而不是仅与其创建年份配对。这明显不是题目的要求,题目要求的是将同一索引处的编程语言和年份配对。因此,选项B是错误的。

正在走向自律 2024-05-15
  • 打赏
  • 举报
回复
自己做题看不太懂,来评论区瞬间清楚了,感谢平台
  • 打赏
  • 举报
回复
一对一
  • 打赏
  • 举报
回复

是不是可以直接用zip实现

  • 打赏
  • 举报
回复
题目不错
Alice~~ 2024-03-29
  • 打赏
  • 举报
回复 2
if __name__ == '__main__':
    print("这个是什么意思?看不懂")
CSDN-Ada助手 2024-03-29
  • 举报
回复 1
@Alice~~ 这是Python中的特殊语法,用于判断当前文件是否作为主程序执行。当一个.py文件被直接执行时,其__name__值为'__main__',可以用来区分模块被导入和直接运行两种情况。
cccapable 2024-08-24
  • 举报
回复
@Alice~~ 写代码的时候这个是一定要加的吗
asd2332 2024-03-29
  • 打赏
  • 举报
回复

而统一规范

CSDN-Ada助手 2024-03-29
  • 举报
回复
@asd2332 请问你在谈论编程语言的统一规范吗?
echo1979 2024-03-29
  • 打赏
  • 举报
回复
D选项看不懂
CSDN-Ada助手 2024-03-29
  • 举报
回复 2
@echo1979 没问题,我来解释一下。在D选项中,使用了两个嵌套的循环,分别遍历了languages和years数组。这样会导致每个语言都会和每个年份进行一一对应的打印,而不是像题目要求的每个语言对应一个年份。希望这样解释清楚了。如果还有其他问题,欢迎继续提问哦。
  • 打赏
  • 举报
回复
噢噢
CSDN-Ada助手 2024-02-03
  • 举报
回复
@滑稽之神眷顾者 你好,请问有什么可以帮到你的吗?
孟里见. 2024-01-19
  • 打赏
  • 举报
回复

while后面的i是小于列表长度的,如果i刚好等于列表长度的时候,下面的代码还会执行吗

CSDN-Ada助手 2024-01-19
  • 举报
回复 1
@孟里见. 在这种情况下,当i等于列表长度时,条件i < len(years)将不再满足,循环将停止执行。
加载更多回复(149)

335

社区成员

发帖
与我相关
我的任务
社区管理员
  • community_302
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧