函数未返回正确的值

时间:2018-08-02 14:50:41

标签: python function python-3.6 filepath

我的函数有问题,也没有返回正确的值。函数返回文件的路径,具体取决于用户的选择。我已经检查了选项输入,但是无论我输入什么选项,都只会返回一个值。

def pick_sql_version():  # might be redundant
    sql_year = ['2008', '2014', '2016']
    for i, val in enumerate(sql_year):
        print(i + 1, " SQL Server Management Studio ", val)

    sql_version = input("Pick the SSMS version: ")

    # depending on the sql version path might vary
    if sql_version == 1:  # SSMS 2008
        path = ''  # which value to use?
    elif sql_version == 2:  # SSMS 2014
        print (sql_version)
        path = '"C:/Program Files (x86)/Microsoft SQL Server/120/Tools/Binn/ManagementStudio/Ssms.exe"'
        print (path)
    else:  # SSMS 2016
        print(sql_version)
        path = '"C:/Program Files (x86)/Microsoft SQL Server/130/Tools/Binn/ManagementStudio/Ssms.exe"'
        print(path)

    return path

2 个答案:

答案 0 :(得分:3)

使用input("Pick the SSMS version: ")会将您的输入读取为字符串,这意味着如果您输入1,则会得到'1';如果您输入2,则会得到{ {1}}。

您应该通过检查您的输入是'2'还是'1'来解决该问题(也可以按照一些评论中的建议将输入转换为'2',但我认为它只会给您带来问题:例如,如果您输入的内容无法转换为int,则会引发错误:

int

答案 1 :(得分:2)

不禁为您编写另一个版本。 借助https://maps.googleapis.com/maps/api/place/autocomplete/json?input=dublin%2C%20ireland&types=geocode&components=country%3AGB&key=MY_API_KEY的强大功能,您可以使代码更具可读性。

让我们将键dictionaries与值"1"和键"120"与值"2"连接起来。我们使用它们使用"130"插入路径。

最后,通过使用str.format(),我们可以传递一个默认值,如果用户输入无效(不是dictionary.get()1),它将使用值120。

2