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

Python小程序中使用append方法出现结果异常的技术求助

问题分析与修复

你遇到的问题很清晰:输出文本里所有的s都不见了,这完全是代码里的条件分支逻辑出了问题。

咱们拆解下你的代码逻辑就能发现问题:

  • 当字符是.:跳出循环,这部分没问题
  • 当字符是s:只执行了ses +=1统计数量,但完全没把s添加到sentence列表里
  • 第三个elif的条件init[i] != '.' or init[i] == 's'不仅逻辑冗余,而且因为前面已经匹配了s的情况,这个分支根本不会处理到s字符

说白了就是:你统计了s的数量,却把s本身排除在了输出文本之外。

修复后的代码

init = input()
sentence = []
ses = 0
# 直接遍历字符比按索引循环更简洁直观
for char in init:
    if char == '.':
        break
    # 统计s的操作独立出来
    if char == 's':
        ses += 1
    # 只要不是句号,不管是不是s都加入sentence
    sentence.append(char)
print(''.join(sentence))
print(ses)

关键修改说明

  1. 把循环改成直接遍历输入字符串的字符for char in init,比用索引循环更易读也不容易出错
  2. 去掉了冗余的elif分支,让统计s和添加字符到列表变成两个独立操作——只要字符不是句号,就加入输出文本,同时如果是s就额外计数

测试输入It is not a simple task.,就能得到你想要的预期输出:

It is not a simple task
3

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 03:48:47