You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python函数传参异常:数值重复输出问题求助

问题:调用乘法函数却得到字符串重复结果

我调用一个需要传入两个参数的hotel_cost函数(作为holiday_cost的参数),预期计算两数乘积,但实际输出是第一个参数重复第二个参数次数的结果(比如传25和5,输出2525252525)。

原代码

holiday_cost(hotel_cost(prices[menus[user_hotel+7]], num_nights))
# hotel_cost 是 holiday_cost 的内部函数,需传入两个参数进行乘法运算

实际输出

2525252525

尝试过的写法

holiday_cost(hotel(f"£{prices[menus[user_hotel+7]]},{num_nights}"))

解决思路

  • 核心问题是第一个参数是字符串类型:Python中字符串和数字相乘会触发字符串重复行为,而非数值乘法。比如"25" * 5就会得到"2525252525"。
  • 先处理参数类型:
    1. 提取数字:如果prices[menus[user_hotel+7]]返回的是带£符号的字符串(比如"£25"),先用replace去掉符号:prices[menus[user_hotel+7]].replace("£", "")
    2. 转换为数值:用int()或float()把处理后的字符串转成数字,比如int(prices[menus[user_hotel+7]].replace("£", ""))
    3. 正确调用函数:
      hotel_price = int(prices[menus[user_hotel+7]].replace("£", ""))
      holiday_cost(hotel_cost(hotel_price, num_nights))
      
  • 你尝试的拼接字符串写法错误:把两个参数拼成一个字符串后,函数只会收到一个参数,完全不符合hotel_cost需要两个参数的要求,不要用这种方式。
  • 检查hotel_cost实现:确保它确实在做数值乘法,没有意外处理字符串:
    def hotel_cost(a, b):
        return a * b  # 确认a、b都是数值类型,不是字符串
    

内容的提问来源于stack exchange,提问作者user22966617

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 21:37:21