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

Python代码能否用列表推导式简化?Stack Overflow如何正确显示代码缩进?

Python代码优化方案

你原有代码存在两个可先修正的问题:

  • 缩进错误:if判断的层级和else块的缩进不符合Python语法规范
  • 类型不匹配:user_input获取的是字符串类型,取出的单个字符是字符串格式的数字,而correct_number_list存储的是整数,直接用in判断会永远返回False

最简优化写法

不需要复杂逻辑,用Python内置all()函数即可实现需求,同时为了提升查找效率可以先把允许的数字转成集合:

# 先把允许的数字转成字符串集合,匹配输入的类型,同时查找效率更高
correct_number_set = {'4','5','7','1'}
user_input = input("Please guess a number: ")
# 先判断输入长度是否足够,再判断所有字符都在允许集合内,一行完成赋值
in_range = len(user_input) >=4 and all(c in correct_number_set for c in user_input[:4])

如果你一定要用列表推导式实现,写法如下:

correct_number_set = {'4','5','7','1'}
user_input = input("Please guess a number: ")
in_range = len(user_input) >=4 and all([c in correct_number_set for c in user_input[:4]])

额外优化建议

  • 可以提前校验用户输入的合法性,过滤非数字输入、不足4位的输入,避免逻辑异常
  • 如果是随机生成4位无重复数字的需求,可以用random.sample('0123456789',4)直接生成字符串格式的数字列表,不用后续做类型转换
Stack Overflow代码缩进空格正确显示规则

不需要额外设置,只要按以下规则编辑内容即可:

  • 整段代码块:在代码首尾各加三个反引号```,可以在开头的反引号后标注代码语言(比如python),平台会自动做语法高亮,代码内的所有空格、缩进都会原样保留
  • 行内代码:如果是正文中插入的短代码,用单个反引号`包裹内容即可,格式不会错乱
    也可以选择给整段代码的每一行前面加4个空格,平台也会识别为代码块,保留原有格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 05:36:04