Python报错TypeError:conversion()缺少3个必需位置参数求助
解决TypeError: conversion()缺少必需参数的问题
问题原因
你调用conversion()和print2()时未传入函数定义要求的参数,同时main()返回的三个MPH数值没有被接收,导致后续函数无法获取所需数据,触发参数缺失的类型错误。
修复方案
- 调用
main()时,将返回的三个MPH值保存到变量中 - 把这些变量作为参数传入
conversion(),接收转换后的公里每小时数值 - 将原始MPH值和转换结果一起传入
print2(),完成最终输出
修正后的完整代码
def main(): print("This is a Conversion app that converts Miles Per Hour to Kilometer Per Hour.") print("1 mile per hour is 1.60934 kilometers per hour.") milesPerhour1 = int(input("Type a positive integer value of MPH you would see on the highway or in your neighborhood. ")) milesPerhour2 = int(input("Type another. ")) milesPerhour3 = int(input("Type one last one. ")) return milesPerhour1, milesPerhour2, milesPerhour3 def conversion(milesPerhour1, milesPerhour2, milesPerhour3): conversionNumber = 1.60934 conversion1 = conversionNumber * milesPerhour1 conversion2 = conversionNumber * milesPerhour2 conversion3 = conversionNumber * milesPerhour3 return conversion1, conversion2, conversion3 def print2(milesPerhour1, milesPerhour2, milesPerhour3, conversion1, conversion2, conversion3): print(f"{milesPerhour1} Miles Per Hour is {conversion1} Kilometers Per Hour.") print(f"{milesPerhour2} Miles Per Hour is {conversion2} Kilometers Per Hour.") print(f"{milesPerhour3} Miles Per Hour is {conversion3} Kilometers Per Hour.") # 接收main返回的参数 mph1, mph2, mph3 = main() # 传入参数进行转换,接收结果 kph1, kph2, kph3 = conversion(mph1, mph2, mph3) # 传入所有参数完成打印 print2(mph1, mph2, mph3, kph1, kph2, kph3)
另外顺手修正了原代码里的拼写错误(Coversion→Conversion,high way→highway),并把字符串拼接改成了更简洁的f-string写法,提升代码可读性。
内容的提问来源于stack exchange,提问作者NearbyRice1968
相关产品推荐
相关产品推荐

