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

Python编写Adidas URL生成器遇IndentationError等错误求助

帮你修复Adidas URL生成器的代码问题

嘿,作为Python新手,复制代码踩坑太正常啦!我帮你把这段代码里的问题逐个揪出来,再给你修正后的版本,保证能跑起来~

先说说你遇到的错误根源:

  • IndentationError:Python对缩进要求严格,函数内部的所有代码必须统一缩进(一般是4个空格),你原代码里函数定义后直接写逻辑,没有缩进,肯定报错。
  • expected white space around operator:你用了x代替乘法符号*,而且运算符前后没加空格,Python不认x当乘法,还会要求运算符周围留空格(PEP8规范)。
  • expected in indented block:还是缩进问题,函数里的代码没缩进,Python找不到缩进块就会报这个错。

还有代码里的其他逻辑/语法问题:

  • 函数参数写错了:def URLGen(Model. size) 里的句号是错误的,应该用逗号分隔参数,而且变量名尽量小写(符合Python命名规范)。
  • 变量未定义就使用:RawSize = ShoeSize + int(RawSize) 里的RawSize还没赋值就拿来用了,逻辑完全不对。
  • 字符串没加引号:URL开头的https://www.adidas.com/us/是字符串,必须用引号包起来。
  • 输入函数问题:Python3里没有raw_input,要用input();而且input('Size: ')得到的是字符串,要转成整数/浮点数才能计算。
  • 函数调用错误:URLGen(Model. size) 里的句号要改成逗号,变量名也要对应函数参数的小写。

修正后的完整代码:

def url_gen(model, size):
    # BaseSize对应鞋码6.5的基准值
    base_size = 500
    shoe_size = float(size)
    # 计算和基准码的差值,转换为对应编码
    size_diff = shoe_size - 6.5
    size_code = size_diff * 20
    raw_size = base_size + size_code
    # 拼接最终URL
    url = f"https://www.adidas.com/us/{model}.html?forceSelSize={model}{int(raw_size)}"
    return url

# 获取用户输入
model = input('Model #: ')
size = input('Size: ')
# 调用函数生成URL
final_url = url_gen(model, size)
print(final_url)

我做的关键修改:

  1. 把函数名和变量名改成小写加下划线的规范(PEP8),可读性更强。
  2. 给函数内部代码统一缩进4个空格,解决缩进错误。
  3. 把乘法的x改成*,运算符前后加空格,解决运算符相关错误。
  4. 修复了变量计算逻辑:先定义size_diff,再计算size_code,最后基于base_size得到raw_size,避免未定义变量的问题。
  5. 用f-string拼接URL,比原来的字符串相加更简洁易读。
  6. 把raw_input改成Python3的input(),并把输入的size转成浮点数,方便计算。
  7. 修正了函数调用的参数格式,用逗号分隔参数。

你可以把这段代码复制过去试试,输入型号和鞋码就能生成正确的Adidas商品URL啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 06:56:50