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

如何将字符串中的变量转为小写?Python代码调试求助

解决字符串大小写转换与格式化问题

核心错误点

你之前的写法错在没调用字符串的lower()方法——service.lower只是引用方法对象,必须加括号()才会执行转换操作。

输出时转小写的正确写法

如果只是需要在输出句子里把服务名转为小写,直接在format参数里调用service.lower()即可:

menu = {'Oil change' : 35, 'Tire rotation' : 19, 'Car wash' : 7}

service = input('Enter desired auto service: ')

print('You entered:', service)

if service in menu:
    # 调用lower()方法完成小写转换
    print('Cost of {}: ${}'.format(service.lower(), menu.get(service)))
else:
    print('Error: Requested service is not recognized')

进阶:兼容任意输入大小写的匹配逻辑

如果想让程序忽略输入的大小写(比如输入OIL CHANGE或oil change都能匹配到Oil change),可以先标准化输入和菜单键的格式:

menu = {'Oil change' : 35, 'Tire rotation' : 19, 'Car wash' : 7}
# 建立小写键与对应价格的映射
lower_menu = {k.lower(): v for k, v in menu.items()}

service = input('Enter desired auto service: ')
lower_service = service.lower()

print('You entered:', service)

if lower_service in lower_menu:
    # 可以选择输出小写,或者还原菜单里的原格式
    print('Cost of {}: ${}'.format(lower_service, lower_menu[lower_service]))
    # 若要输出菜单原格式,可添加反向映射:
    # original_service = next(k for k, v in menu.items() if k.lower() == lower_service)
    # print('Cost of {}: ${}'.format(original_service, lower_menu[lower_service]))
else:
    print('Error: Requested service is not recognized')

常见格式化误区

  • 别混淆方法调用和属性引用:字符串的lower()/upper()/title()这类方法必须加括号才能生效。
  • format()的参数是要插入的值,转换操作要在参数里完成,而非给format本身加.lower。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 02:57:45