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