对于 Python 中的循环
For Loop in Python
以下代码是我用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
- 从桌面读取python文件时高亮显示代码
- jQuery:循环一个具有不同超时值的循环
- 在循环中分配json值时,值被覆盖
- 如何在下面的ES6循环中获得前面的文本
- 为什么“;未定义的“;在JavaScript中结束循环
- Javascript循环不会自我更新
- 如何使用jquery处理php循环通过元素
- 而循环只设置php中输入字段中的第一个值
- 循环遍历数组中的特定索引
- Javascript返回值只在循环中返回一次
- 按照选项卡索引的顺序循环一个jQuery选择
- 循环遍历以数组为值的Javascript对象
- 有没有一个JavaScript等同于Python的for循环
- 这是 Python 代码中这个循环的 JavaScript 翻译吗?
- 对于 Python 中的循环
- 如何将JavaScript的' for '循环转换为Python
- Selenium RC / Python / JavaScript .aspx /循环语句
- child_process spawnSync使用for循环迭代python stdout结果
- 使用javascript在python循环中更新HTML
- Python while循环转换为Javascript