Python 如何使用for循环比较两个字符串?

Python 如何使用for循环比较两个字符串?,python,Python,我正在构建一个简单的电子邮件验证程序。我需要将当前字母的本地部分与有效字符列表进行比较。所以本质上我是在问如何检查我在本地部分的当前字母是否等同于整个有效字符列表中的字母。如果它是一个有效字符,本地部分将转到其字符串中的下一个字母,并遍历有效字符列表,查看是否也是,依此类推,直到它到达@符号,除非没有有效字符 我对python相当陌生,所以我不知道嵌套for循环是如何工作的 for ch in local: for ch in valChar: if(ch ==ch) <-

我正在构建一个简单的电子邮件验证程序。我需要将当前字母的本地部分与有效字符列表进行比较。所以本质上我是在问如何检查我在本地部分的当前字母是否等同于整个有效字符列表中的字母。如果它是一个有效字符,本地部分将转到其字符串中的下一个字母,并遍历有效字符列表,查看是否也是,依此类推,直到它到达@符号,除非没有有效字符

我对python相当陌生,所以我不知道嵌套for循环是如何工作的

for ch in local:
    for ch in valChar:
    if(ch ==ch) <----problem
对于本地的ch:
对于ch in valChar:

如果(ch==ch)您需要验证电子邮件地址,我将使用正则表达式:
\b[A-Z0-9.Z%+-]+@[A-Z0-9.-]+.[A-Z]{2,6}\b

ch是一个变量,您可以用任何有效标识符替换它:

for local_ch in local:
    for valChar_ch in valChar:
        if(local_ch == valChar_ch): <----No problem
对于本地\u ch in local:
对于valChar_ch in valChar:

if(local_ch==valChar_ch):由于
中的
运算符,在这种情况下不需要嵌套循环:

for c in local:
    if c in valChar:
        performvalidaction(c)
    else:
        denoteasinvalid(c)
使用什么标识符(
c
ch
,或其他任何东西)都是无关紧要的,我倾向于对循环变量使用单字符标识符,但没有规定必须使用

如果必须使用两个嵌套循环,则只需对这两个循环使用不同的循环变量即可


事实上,这里甚至不需要one循环(例如,您可以使用Python的
set
s)——更不用说两个循环了——但我想如果您更清楚的话,使用一个循环是可以的。

让我为您解释for循环:

for eachitem in file:
    do something

eachitem
是文件/词典等的一个特定值的变量。

在内部for循环中使用一个不同的局部变量,并进行检查。。示例
对于valChar
@MalikBrahimi中的x,RE只是另一个非循环的替代方案(就像我提到的
集合
,顺便说一句,这是一个更为熟悉的概念——一些集合论经常在学校教授,正则表达式通常不是:-)。我重复一遍:你不必使用循环,但是如果你发现循环最简单/最清晰,那也没关系。我明白你的意思。但在某些情况下,循环可能有其局限性。正则表达式的功能范围要大得多。@MalikBrahimi,并且设置的范围要比正则表达式大得多——后者只对处理字符串有用,而在应用程序中设置的范围要大得多。那又怎么样?在这种情况下,循环(可能是OP最简单的循环)是可以的,集合也是可以的,正则表达式也是可以的。让用户选择对他们来说最简单且足以解决此问题的方法,而不必担心他们目前没有面临的其他问题。