Python中如何让input输入值作用于函数参数?代码异常排查
问题根源
input()函数的返回值默认是字符串类型,代码中判断条件是和整数1、2做相等比较,类型不匹配导致判断分支永远无法命中,函数无匹配返回值时会默认返回None。- 字符串分割逻辑错误:待处理字符串
pizza,apple用逗号做分隔符,代码里却传了空格作为split()的分割参数,无法正确拆分商品为独立元素。 - 计数分支逻辑错误:分支中直接返回
fixed_list_option_1.count,这是列表的count方法对象本身,不是方法执行后的计算结果,就算命中分支也无法得到预期的计数值。
修复后可运行代码
def market_list(user_request): # 修正分隔符为逗号,匹配原字符串的商品分隔规则 fixed_list_option_1 = customer_products_string.split(',') if user_request == 1: return fixed_list_option_1 elif user_request == 2: # 调用len()获取列表元素总数,若需要统计指定商品出现次数可改用fixed_list_option_1.count("指定商品名") return len(fixed_list_option_1) customer_products_string = "pizza,apple" # 将输入获取的字符串转为整数类型,再传入函数做判断 user_request = int(input("What is your request? (insert the number of the command) : ")) print(market_list(user_request))
运行效果
- 输入
1时,返回拆分完成的商品列表:['pizza', 'apple'] - 输入
2时,返回商品列表的元素总数:2
内容的提问来源于stack exchange,提问作者Idan Abramovich
相关产品推荐
相关产品推荐

