对于 Python 中的循环

For Loop in Python

本文关键字:循环 Python 对于      更新时间:2023-09-26

以下代码是我用JavaScript编写的,但我正在尝试将其转换为Python可以理解的内容,特别是for循环。我尝试阅读 Python 中的 for 循环语法是如何读取的,但我似乎无法理解它,因为它与许多流行的 Web 开发语言中的等效语法非常不同。有人可以解释一下它是如何写的以及它是如何工作的,最好是用简单的术语。谢谢!!

name = prompt("enter a name"); 
for (var i = 0; i < name.length; i++) {
    name = name.replace(".", "").replace("'", "").replace("-", "");
    name = name.toLowerCase();
}
alert(name); 

编辑:仔细想想,For Loop显然是无用的。我有点困惑,因为用户输入将与值列表进行比较,但考虑到用户将始终输入一个要比较的值,因此无需循环。感谢所有发表评论的人,并为我的大脑冻结感到抱歉!

叹了口气。为了完整起见,并且因为其他海报似乎致力于错误地回答这个问题,编写一个迭代name中所有字符的 for 循环的方法是简单地执行以下操作:

for char in name:
    print char  # gives you the character directly

就这样。你永远不应该使用range(len(name)):这是非常非Pythonic的。如果您出于任何原因需要索引,请使用enumerate

for i, char in enumerate(name):
    print i     # the index
    print char  # the character

无论如何,正如其他地方提到的,此代码中不需要任何类型的循环。

python 中的 for 循环的结构如下:

for iteration_variable in iteratable_object:
    # do task with iteration_variable
    # repeat with next iteration variable

下面是打印数字的示例:

for i in range(1,10):
    print i

并将输出

1
2
3
.
.
.
9

缩写以节省键入。

对于str ings(str是归因于常规字符串的类型(,这可以通过list来完成:

my_string_array = ['abc','def','ghi']
for my_string in my_string_array:
    print my_string

并将输出

abc
def
ghi

现在讨论一些与您使用的 javascript 命令类似的命令。 为了处理用户输入,python有几个选项。 最简单的字符串输入是 raw_input ,并按以下方式使用:

variable = raw_input("Hello, who are you?")

这将打印出Hello, who are you?,然后用户可以输入他们喜欢的任何文本并按回车键,它现在将存储在variable中供您使用。

如果要替换字符串中的字符,python的str类型有一个名为replace的方法,其工作原理如下:

my_variable = 'abc.def'
my_variable = my_variable.replace('.','')
print my_variable

将输出

abcdef

方法str.replace将返回字符串,其中包含与第一个参数匹配的所有字符串,替换为第二个参数,其工作方式与 JavaScript 函数的工作方式相同。 该方法只返回新字符串,它不会自动更改变量的值,因此如果您希望保留它,请将其保存到变量中(将其保存到自身中是一个有效的选项,如我的示例所示(。

要使字符串小写,您可以使用str的内置命令lower。 以类似的替换方式,返回更新的字符串,而不是保存到变量中,如果需要进一步使用,应再次存储在某个地方。

my_var = 'ABC_DEF'
my_var = my_var.lower()
print my_var

并将输出

abc_def

综上所述,我们可以通过以下方式将您的javascript循环转换为python:

name = raw_inpout("enter a name"); 
for i in range(len(name)): # len is the python method to
                           # get the length of an object
    name = name.replace(".", "").replace("'", "").replace("-", "")
    name = name.lower()
print name

这是代码的直接翻译。 在python中,你可以直接迭代字符串中的字符,这通常是首选:

my_string = 'abc'
for character in my_string:
    print character

将输出

a
b
c

知道在您的情况下,您实际上不需要 javascript 或 python 情况下的 for 循环可能会有所帮助:

# Python
name = raw_inpout("enter a name"); 
name = name.replace(".", "").replace("'", "").replace("-", "")
name = name.lower()
print name

# Javascript
name = prompt("enter a name"); 
name = name.replace(".", "").replace("'", "").replace("-", "");
name = name.toLowerCase();    
alert(name); 

这是因为 javascript 和 python 方法都已经适用于整个字符串,并且您不需要逐个字符进行更改。 事实上,无论如何,您都不会使用您正在循环的索引引用! 您最终会对字符串进行相同的更改,就像字符串很长一样多。

希望这能让你更好地了解for循环,并简要了解 python! 祝你蟒蛇快乐!

在javascript中,你的代码可以简单地是:

name = prompt("enter a name"); 
name = name.replace(".", "").replace("'", "").replace("-", "");
name = name.toLowerCase();
alert(name);

Python 中的等价物是:

name = raw_input("enter a name") 
name = name.replace(".", "").replace("'", "").replace("-", "")
name = name.lower()
print(name)

python 中有一种对象称为迭代器。对于这样的对象,你可以告诉python解释器一个接一个地给你它的元素。对于迭代器对象,您可以调用"for"循环。

sequence = [1, 2, 3, 4, 5]
for i in sequence:
    i += 10
    print i

这段代码意味着你得到名为"序列"的列表,并让解释器"给我列表的第一个元素,并将其值分配给变量 i,将 10 加到 i 并打印它(此代码将打印"11"(,然后给我第二个元素,将其值分配给 i,添加 10 并打印(phis 将打印"12"(并迭代它直到列表的末尾">

所以这个程序的输出将是

>>>11
>>>12
>>>13
>>>14
>>>15

正如其他人所提到的,这是毫无意义的,因为您也可以删除 for 循环。要直接转换代码,请执行以下操作:

name = raw_input("enter a name")
for i in range (0,len(name)):
    name = name.replace(".", "").replace("'", "").replace("-", "")
    name = name.lower()
print name

但是,您可以在JavaScript和Python中获得完全相同的结果,因为循环不执行任何操作:

name = raw_input("enter a name")
name = name.replace(".", "").replace("'", "").replace("-", "")
name = name.lower()
print name

我认为这个问题是为了帮助您将来理解 Python 中的循环,最好使用一个做某事的示例,这里可能需要一些理解的语言的主要区别是 range(( 函数,它替换了这里粗体的内容:

var i = 0; i <<strong>name.length;i++

所以我建议研究该功能以了解发生了什么 https://docs.python.org/2/library/functions.html#range

编辑:

作为Python中的一个警告,我们通常不使用范围进行迭代。如果我要循环这样的字符串,一种更简单、更干净的方法是:

for char in name:
    do stuff