倒数第二行英语怎么说,倒数第二行翻译

Welcome!PythonHelloTypesSpellerImageRecognitionCS50LibraryConditionalsVariablesLoopsCalculatorCompar

Welcome!

Python

Hello

Types

Speller

Image Recognition

CS50 Library

Conditionals

Variables

Loops

Calculator

Compare

Object-Oriented Programming

Meow

Mario

Scores

Uppercase

Greet

Exit Status

Search

Phonebook

Comparison

Swap

CSV

Regular Expressions

Speech

Summing Up

Welcome!

在前几周,我们向你介绍了编程的基本构建模块。

the last line but one

你学习了用一种称为C的低级编程语言进行编程。

今天,我们将使用一种叫做Python的高级编程语言。

当你学习这种新语言时,你会发现你将更有能力自学新的编程语言。

Python

几十年来,人类已经看到如何改进以前的设计决策。

Python是一种建立在你已经学过的C语言基础上的编程语言。

Hello

到目前为止,代码看起来像这样:

/ A program that says hello to the world34;hello,world\\n& A program that says hello to the worldprint(&34;)

注意分号不见了。

在C语言中,您可能记得这段代码:

/ get_string and printf with %sinclude <stdio.h>int main(void){string answer = get_string(&39;s your name? &34;hello,%s\\n& get_string and print,with concatenationfrom cs50 import get_stringanswer = get_string(&39;s your name? &34;hello," + answer)

你可以通过在终端窗口中执行code hello.py来编写这段代码。然后,可以通过运行python hello.py来执行这段代码。注意+号是如何连接“hello,”和answer。

类似地,你可以将上面的代码实现为:

34;What&34;)print(f&34;)

请注意花括号如何允许 **print 函数插入answer以使answer出现在其中。

Types

Python中的数据类型不需要显式

在Python中,常用的类型包括:

boolfloatintstr

请注意,缺少long和double。Python将处理更大和更小的数字应该使用什么数据类型。

Python中的其他一些数据类型包括:

rangelisttupledictset

这些数据类型中的每一种都可以在C中实现,但是在Python中可以更简单地实现。

Speller

为了说明这种简单性,让我们在终端窗口中键入“code dictionary.py ”,并编写如下代码:

34;&34;Return true if word is in dictionary else false&34;&34;&34;Load dictionary into memory,returning true if successful else false&34;&34;r&34;&34;Returns number of words in dictionary if loaded else 0 if not yet loaded&34;&34;&34;Unloads dictionary from memory,returning true if successful else false&34;"return True

注意上面有四个函数。在check函数中,如果word在words中,则返回True。这比用C实现简单多了!

类似地,在load函数中,打开字典文件。对于文件中的每一行,我们将该行添加到words。使用rstrip函数,尾部的新行会从添加的单词中删除。size函数只是返回单词的len或words长度。unload函数只需要返回True,因为Python自己处理内存管理。

上面的代码说明了高级语言存在的原因:为了简化和让你更容易地编写代码。

the last line but one/two……倒数第2/3行

然而,速度是一个权衡。因为C允许程序员自己决定内存管理,所以它可能比Python运行得更快——这取决于你的代码。虽然C只运行您的代码行,但是当您调用Python的内置函数时,Python会运行所有代码。

您可以在Python文档中了解有关函数的更多信息。

Image Recognition

Python的贡献者已经编写了大量的库。

您可以在自己的代码中利用这些库。

例如,你可以利用像PIL这样的Python库简单地导入面部识别。

David提供了一个利用Python和第三方库的面部识别演示。

CS50 Library

与C语言一样,CS50库可以在Python中使用。

以下功能将特别有用:

get_floatget_intget_string

你还可以选择仅从CS50库中导入特定函数,如下所示:

from CS50 import get_float,get_int,get_string

Conditionals

在C语言中,你可能记得这样一个程序:

/ Conditionals,Boolean expressions,relational operatorsinclude <stdio.h>int main(void){// Prompt user for integersint x = get_int(&39;s x? &34;What&34;);// Compare integersif (x < y){printf(&34;);}else if (x > y){printf(&34;);}else{printf(&34;);}}

请注意,这里没有花括号了。相反,使用了缩进。第二,在if语句中使用了冒号。此外,倒数第二行翻译,elif替换else if。if和elif语句中也不再需要括号。,

Variables

变量

Python倾向于将counter += 1递增1,从而失去了C中的counter++类型化功能。

Loops

Python中的循环与C非常相似。你可能还记得C中的以下代码:

/ Demonstrates while loop34;meow\\n& Demonstrates while loopi = 0while i < 3:print(&34;)i += 1

for循环可以用Python实现,如下所示:

34;meow& Abstraction with parameterizationdef main():meow(3)34;meow")main()

请注意,使用了一个函数来提取喵喵叫。

Calculator

我们可以像在c中一样实现一个简单的计算器。在终端窗口中键入code calculator.py,并编写如下代码:

请注意CS50库是如何导入的。然后,从用户那里收集x和y。最后,打印结果。请注意,在C程序中可以看到的main函数已经完全消失了!虽然可以利用main函数,但这不是必需的。

可以移除CS50库。按如下方式修改你的代码:

Prompt user for xx = input(&34;)34;y: & Perform additionprint(x + y)

注意执行上述代码是如何导致奇怪的程序行为的。为什么会这样呢?

你可能已经猜到解释器把x和y理解为字符串。你可以通过使用int函数来修复代码,如下所示:

Prompt user for xx = int(input(&34;))34;y: & Perform additionprint(x + y)

注意x和y的输入是如何传递给int函数的,该函数将其转换为整数。

我们可以扩展计算器的功能。按如下方式修改您的代码:

Prompt user for xx = int(input(&34;))34;y: & Divide x by yz = x / yprint(z)

注意,执行这段代码会产生一个值,但是如果你在. 333333后面看到更多的数字,你会发现我们面临的是浮点不精确。

我们可以通过稍微修改我们的代码来揭示这种不精确性:

Prompt user for xx = int(input(&34;))34;y: & Divide x by yz = x / yprint(f&34;)

请注意,这段代码揭示了不精确性。Python仍然面临这个问题,就像C一样。

Compare

在C语言中,当我们想要比较两个值时,我们面临挑战。考虑以下代码:

/ Conditionals,Boolean expressions,relational operatorsinclude <stdio.h>int main(void){// Prompt user for integersint x = get_int(&39;s x? &34;What&34;);// Compare integersif (x < y){printf(&34;);}else if (x > y){printf(&34;);}else{printf(&34;);}}

在Python中,我们可以如下执行上述操作:

Prompt user for integersx = get_int(&39;s x? &34;What&34;)34;x is less than y&34;x is greater than y&34;x is equal to y")

请注意,CS50库已导入。此外,if语句中还有一些微小的变化。

进一步观察比较,考虑下面的C代码:

/ Logical operatorsinclude <stdio.h>int main(void){// Prompt user to agreechar c = get_char(&34;);// Check whether agreedif (c == &39; || c == &39;){printf(&34;);}else if (c == &39; || c == &39;){printf(&34;);}}

上述内容可以按如下方式实现:

Prompt user to agrees = get_string(&34;)34;Y&34;y&34;Agreed.&34;N&34;n&34;Not agreed.")

请注意,C中使用的两个竖线被替换为or。事实上,人们经常喜欢Python,因为它更易于人类阅读。另外,请注意Python中不存在char。取而代之的是str。

处理相同代码的另一种方法如下:

Prompt user to agrees = get_string(&34;)34;y&34;yes&34;Agreed.&34;n&34;no&34;Not agreed.")

请注意我们如何能够表达多个关键字,如y和yes。

Object-Oriented Programming

到目前为止,我们在这门课中的程序都是线性的:顺序的。

某些类型的值可能不仅包含属性或特性,还包含函数。在Python中,这些值被称为对象。

在C中,我们可以创建一个struct,在这个结构中,您可以将多个变量关联到一个自己创建的数据类型中。在Python中,我们可以做到这一点,还可以在自己创建的数据类型中包含函数。当一个函数属于一个特定的对象时,它被称为方法。

在英语中,如果要表示倒数,应该用“the last but + 数字”,比如倒数第二,用the last but one ;倒数第三,用the last but two, 总之表示倒数第几就用 the last but + (几减去1)。 至于为什么要这么表示,我只能告诉你这是语言。

例如,Python中的str有一个内置的方法。因此,你可以按如下方式修改代码:

Prompt user to agrees = get_string(&34;)34;y&34;yes&34;Agreed.&34;n&34;no&34;Not agreed.")

请注意我们如何能够表达多个关键字,如y和yes,并将任何用户输入转换为小写。

这可以进一步简化为:

Prompt user to agrees = get_string(&34;)s = s.lower()34;y&34;yes&34;Agreed.&34;n&34;no&34;Not agreed.")

注意s的旧值是如何被s.lower()的结果覆盖的。

在这堂课中,我们将只触及Python的皮毛。因此,在您继续学习的过程中,Python文档将变得尤为重要。

您可以在Python文档中了解有关字符串方法的更多信息。

Meow

回到几周前的meow.c,回顾以下代码:

// Demonstrates while loop34;meow\n& Demonstrates while loopi = 0while i < 3:print(&34;)i += 1

同样,使用for循环,我们可以编写如下代码:

34;meow& Abstractiondef main():for i in range(3):meow()34;meow")main()

请注意,meow函数抽象出print语句。此外,请注意,main函数显示在文件的顶部。在文件底部,调用main函数。按照惯例,你应该在 Python 中创建一个main函数。

实际上,我们可以在函数之间传递变量,如下所示:

Meow some number of timesdef meow(n):for i in range(n):print(&34;)main()

注意meow现在如何采用变量n 。在main函数中,你可以调用meow并传递一个类似3的值。然后,meow利用for循环中的n值。

阅读上面的代码,请注意你作为一个C程序员,如何能够非常容易地理解上面的代码。虽然有些约定不同,但你之前学习的构建块在这种新的编程语言中非常明显。

Mario

回想一下几周前我们面临的挑战,即在彼此之上建造三个方块,就像在马里奥中一样。

在 Python 中,我们可以实现类似这样的东西,如下所示:

34;34;)

在 C 语言中,我们有一个do-while循环的优势。但是,在Python中,使用while循环是惯例,因为Python没有do while循环。你可以在名为mario.py的文件中编写如下代码:

34;34;)def get_height():while True:n = get_int(&34;)if n > 0:return nmain()

请注意,一旦为get_height函数赋值,函数中n的范围就会无处不在。另请注意,按照惯例,函数之间有双空格。

我们可以拿走 CS50 库的训练轮,如下所示:

34;34;)def get_height():while True:try:n = int(input(&34;))if n > 0:return nexcept ValueError:print(&34;)main()

请注意,try用于尝试转换为整数n。如果无法执行此操作,则会输出错误。

请考虑下图:

在 Python 中,我们可以通过修改你的代码来实现,如下所示:

34;?&34;& Prints a row of 4 question marks without a loopprint(&34; * 4)

请注意,我们可以利用 *将print 语句乘以重复次数4。

一大块砖呢?

要实现上述内容,你可以按如下方式修改代码:

34;?& Averages three numbers using a list and a loopfrom cs50 import get_int34;Score: & Print averageaverage = sum(scores) / len(scores)print(f&34;)

请注意,你可以使用内置append方法,从而可以将分数append到列表中。另请注意,我们使用sum函数添加列表中的所有元素。

你甚至可以使用以下语法:

Get scoresscores = []for i in range(3):score = get_int(&34;)scores += [score]34;Average: {average}& Uppercases string one character at a timebefore = input(&34;)print(&34;,end=&34;)for c in before:print(c.upper(),end=&34;)print()

请注意,每个字符一次一个大写。

Python 有一个内置的str 方法。你可以按如下方式修改代码:

34;Before: &34;After:{after}& Prints a command-line argumentfrom sys import argvif len(argv) == 2:print(f&34;)else:print(&34;)

请注意,argv[1]是使用 格式化字符串 打印的,在print语句中由f表示。

你可以按如下方式打印所有argv数:

Printing command-line arguments,indexing into argvfrom sys import argvfor i in range(len(argv)):print(argv[i])

请注意,执行此代码将导致你正在运行的文件的名称被切掉。

你可以在 Python 文档中了解有关sys库的更多信息

Exit Status

the last but one line表示倒数第二行 倒数第N行,就用the last but n-1 line(s)就可以了

sys库还具有内置方法。我们可以使用sys.exit(i)特定的退出代码退出程序:

34;Missing command-line argument&34;hello,{sys.argv[1]}& Implements linear search for namesimport sys34;Bill&34;Charlie&34;Fred&34;George&34;Ginny&34;Percy&34;Ron& Ask for namename = input(&34;)34;Found&34;Not found& Implements linear search for names using `in`import sys34;Bill&34;Charlie&34;Fred&34;George&34;Ginny&34;Percy&34;Ron& Ask for namename = input(&34;)34;Found&34;Not found& Implements a phone bookfrom cs50 import get_stringpeople = {&34;: &34;, &34;: &34;}34;Name: &34;Number: {people[name]}& Compares two strings34;s: &34;t: & Compare stringsif s == t:print(&34;)else:print(&34;)

注意 Python 如何利用==来比较两个变量。此外,请注意,Python 允许你比较两个字符串,而无需像 C 中那样使用指针逐个字符检查字符串。

Swap

此外,我们可以实现一个交换值的程序,就像我们在 C 中所做的那样。

34;x is {x},y is {y}&34;x is {x},y is {y}& Swaps two integersx = 1y = 2print(f&34;)x,y = y,xprint(f&34;)

请注意,利用with代码块,在writer下方缩进及其工作,可以防止我们在完成后需要close我们的文件。

通常,CSV 文件具有带有特定名称的列。DictWriter可用于创建 CSV 文件并为每列分配特定名称。请考虑对代码进行以下修改:

请注意,name和number列在代码的倒数第二行中定义,值在最后一行中添加。

你可以在 Python 文档中了解有关 Python 中 CSV 文件的更多信息

Regular Expressions

Python 可用于使用 正则表达式 分析数据模式。

Python 中内置的一些正则表达式如下:

. any character.*0 or more characters.+1 or more characters? optional^ start of input$ end of input

The second line from the last, 因为排行不一定从上到下, 可以左到右, 所以bottom不一定对.

我们以前的程序agree.py可以使用正则表达式:

Prompt user to agrees = get_string(&34;)34;^y(es)?$&34;Agreed.&34;^no?$&34;Not agreed.& Logical operators,using regular expressionsimport refrom cs50 import get_string34;Do you agree? & Check whether agreedif re.search(&34;,s,re.IGNORECASE):print(&34;)elif re.search(&34;,s,re.IGNORECASE):print(&34;)

此外,你可以运行以下代码:

34;This was CS50&34;This was CS50")engine.runAndWait()

Summing Up

python

变量

条件

循环

类型

字典

命令行参数

正则表达式

倒数第二行英语怎么说

下次见!

上一篇 2023年04月19 01:57
下一篇 2023年05月23 23:19

相关推荐

关注微信