for and in 和 enumerate and if ...... AHHHHHHH

Posted

技术标签:

【中文标题】for and in 和 enumerate and if ...... AHHHHHHH【英文标题】:for and in and enumerate and if ...... AHHHHHHH 【发布时间】:2015-10-08 15:02:20 【问题描述】:

我有一个涉及编程的学校项目。我在批处理和 python 之间转移,因为这对我来说最简单。

这是我用python编写的代码:

for i,x in enumerate(result):
    if number in x:
        print "Start of 1"
        cursor.execute(insert1, (number))
        cursor.execute(delete, (number))
        f.close()
        os.system("extracommands.bat 1")
        print "Found Number"
    else:
        print "Start of 2"
        cursor.execute(insert1, (number))
        cursor.execute(insert2, (number))
        cursor.execute(delete, (number))
        f.close()
        os.system("emailfine.py 1")
        print "Finished 2"

我的问题是在元组中找不到字符串。发生的情况是,当有结果时,它会完美运行。但是当没有结果时,什么都不会发生。

我该如何克服这个问题?

提前谢谢你。


编辑:

我的问题可能不够具体。

result 变量实际上是使用fetchall() 命令的 mysql 执行结果。我的程序的整个代码是:

import MySQLdb
import sys
import os
print "=========================="
print "Start Registered_Or_Not.py"
print "=========================="

os.chdir("C:/DisabledParkingSpacesImages/textfiles")

f = open("numberplate.txt", "r")
number = f.read()

print number

try:
    db = MySQLdb.connect(
        host = 'localhost',
        user = 'root',
        passwd = 'jordan',
        db = 'disabledparking'
        )
except Exception as e:
    sys.exit("Can't access the database")

print "MySQL Connection OK" 

cursor = db.cursor()
cursor.execute("SELECT registration FROM registered WHERE EXISTS (SELECT 1 FROM limbo WHERE limbo.registration = registered.registration)")
result = cursor.fetchall()

insert1 = "INSERT INTO log (registration, time, date) VALUES(%s, CURRENT_TIME, CURRENT_DATE);"
insert2 = "INSERT INTO not_registered (registration, time, date) VALUES(%s, CURRENT_TIME, CURRENT_DATE);"
delete = "DELETE FROM limbo WHERE registration=%s;"

print "-------------"
print "Result:"
print result
print "-------------"

TrueFalse = False

for i,x in enumerate(result):
    if number in x:
        print "Start of 1"
        cursor.execute(insert1, (number))
        cursor.execute(delete, (number))
        f.close()
        os.system("extracommands.bat 1")
        print "Found Number"
        TrueFalse = True
    elif TrueFalse == False:
        print "Start of 2"
        cursor.execute(insert1, (number))
        cursor.execute(insert2, (number))
        cursor.execute(delete, (number))
        f.close()
        os.system("emailfine.py 1")
        print "Finished 2"

db.commit()

【问题讨论】:

这个问题可能对你有帮助:***.com/questions/1969005/enumerations-in-python?rq=1 你为什么使用enumerate?你不会对 i 做任何事情。 嘿乔丹,我们都知道编程可能令人沮丧。你能具体说明你的问题/挑战是什么吗?您必须在哪里搜索元组中的字符串?这与您的代码有什么关系? x 是元组吗?我们必须猜测很多事情来帮助你。请提供更多信息。 更好的是,提供一个 MWE(最小工作示例)。 result 变量实际上是 MySQL 执行的结果。这是运行命令的代码:cursor.execute("SELECT registration FROM registered WHERE EXISTS (SELECT 1 FROM limbo WHERE limbo.registration = registered.registration)") 【参考方案1】:

好的,所以我回答了我自己的问题。

这是有问题的代码:

for i,x in enumerate(result):
    if number in x:
        print "Start of 1"
        cursor.execute(insert1, (number))
        cursor.execute(delete, (number))
        f.close()
        os.system("extracommands.bat 1")
        print "Found Number"
    else:
        print "Start of 2"
        cursor.execute(insert1, (number))
        cursor.execute(insert2, (number))
        cursor.execute(delete, (number))
        f.close()
        os.system("emailfine.py 1")
        print "Finished 2"

这是没有问题的代码:

for i,x in enumerate(result):
    if number in x:
        print "Start of 1"
        cursor.execute(insert1, (number))
        cursor.execute(delete, (number))
        f.close()
        os.system("extracommands.bat 1")
        print "Found Number"
        TrueFalse = True
if TrueFalse == False:
    print "Start of 2"
    cursor.execute(insert1, (number))
    cursor.execute(insert2, (number))
    cursor.execute(delete, (number))
    f.close()
    os.system("emailfine.py 1")
    print "Finished 2"

【讨论】:

我很困惑。你为什么要这样做?

以上是关于for and in 和 enumerate and if ...... AHHHHHHH的主要内容,如果未能解决你的问题,请参考以下文章

enumerateObjectsWithOptions 和for 循环

转was mutated while being enumerated 你是不是以为你真的懂For...in... ??

enumerate 函数

Python for-in Loop常见遍历方法

for XX in XX结构

Exchange server and where it stands in an organiza