【问题标题】:Return function showing error when using inside if function [closed]返回函数在使用内部 if 函数时显示错误 [关闭]
【发布时间】:2022-12-18 10:32:07
【问题描述】:

请用我的代码帮助我 我正在尝试使用 python 和 MYSQL 创建一个 HMS 项目,我的这部分代码似乎不起作用它显示返回外部函数错误,如果有人能找出正确的方法,这将很有帮助这个代码

import mysql.connector
# GLOBAL VARIABLES DECLARATION
myConnection =""
cursor=""
userName=""
password=""
roomrent=0
restaurentbill=0
gamingbill=0
fashionbill=0
totalAmount=0
cid=""
#MODULE TO CHECK MYSQL CONNECTIVITY
def MYSQLconnectionCheck ():
    global myConnection
    global userName
    global password
userName = input("\n ENTER MYSQL SERVER'S USERNAME : ")
password = input("\n ENTER MYSQL SERVER'S PASSWORD : ")
myConnection=mysql.connector.connect(host="localhost",user=userName,passwd=password ,auth_plugin='mysql_native_password' )
if myConnection:
    print("\n CONGRATULATIONS ! YOUR MYSQL CONNECTION HAS BEEN ESTABLISHED !")
    cursor=myConnection.cursor()
    cursor.execute("CREATE DATABASE IF NOT EXISTS HMS")
    cursor.execute("COMMIT")
    cursor.close()
    return myConnection
else:
    print("\nERROR ESTABLISHING MYSQL CONNECTION CHECK USERNAME AND PASSWORD !")

我试过到处移动返回值并尝试了多种解决方案,但都没有奏效我只希望这段代码能工作,这让我很烦

【问题讨论】:

  • 如果您希望def MYSQLconnectionCheck (): 下方的所有内容都是该函数的一部分,则global 行之后的所有内容都需要缩进一级。
  • 不要使用全局变量。它们都不需要在全局范围内设置;它们仅供MYSQLconnectionCheck 使用。 (另一种方法是将凭据作为参数传递给函数,而不是让函数提示用户输入。)

标签: python python-3.x


【解决方案1】:

如果您已正确复制该代码,那么它就是您的缩进。 Python 依靠它来决定事物的范围。

userName = ... 开始的所有内容都在函数之外,您需要将其全部缩进 4 个空格才能将其包含在函数中。

所以:

def MYSQLconnectionCheck ():
    global myConnection
    global userName
    global password
    userName = input("
 ENTER MYSQL SERVER'S USERNAME : ")
    password = input("
 ENTER MYSQL SERVER'S PASSWORD : ")
 
    myConnection=mysql.connector.connect(host="localhost",user=userName,passwd=password ,auth_plugin='mysql_native_password' )
    if myConnection:

【讨论】:

    猜你喜欢
    • 2019-09-03
    • 2021-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-28
    • 1970-01-01
    • 2015-11-21
    相关资源
    最近更新 更多