鱼C论坛

 找回密码
 立即注册
查看: 936|回复: 5

[已解决]求助

[复制链接]
发表于 2024-1-23 19:13:18 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
输入:5296
输出: 5
为什么输出结果不对
s = input('输入:')
s_int = int(s)
empty = []#创建一个空列表存放奇数的字符串
if s_int % 2 == 1:#说明他是个奇数
    print('输出:',s_int)
else:#他是个偶数
    for i in range(len(s)):
        for j in range(i+1,len(s)+1):
        #切片看每一个切片是否满足偶数,满足的话添加进空列表
            if int(s[i:j]) % 2 == 1:#奇数
                empty.append(s[i:j])
            else:
                continue
    if len(empty) == 0:
        print('输出:0')
    else:
        sorted(empty,reverse = True)
        print('输出:',empty[0])
最佳答案
2024-1-23 20:13:19
本帖最后由 jackz007 于 2024-1-23 23:17 编辑
                empty . append(s[i:j])      # 第 11 行
. . . . . .
        sorted(empty,reverse = True)        # 第 17 行

改为:
               empty . append(int(s[i:j]))  # 第 11 行,数值排序不同于字符串排序,本例需要的是数值排序
. . . . . .
        empty . sort(reverse = True)        # 第 17 行,执行 sorted(empty,reverse = True) 并不能改变元素顺序
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2024-1-23 19:13:53 | 显示全部楼层
题目如图
微信截图_20240123191330.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-1-23 19:14:01 | 显示全部楼层
问题出在判断每个切片是否为奇数的代码中。

首先,你应该判断当前切片是否为奇数,而不是整个输入字符串。
其次,你需要使用切片的形式获取当前的子字符串,而不是直接将整个字符串添加到列表中。

以下是修改后的代码:
s = input('输入:')
empty = [] # 创建一个空列表存放奇数的字符串

if int(s) % 2 == 1: # 说明它本身就是个奇数
    print('输出:', s)
else: # 它是个偶数
    for i in range(len(s)):
        for j in range(i+1, len(s)+1):
            sub_str = s[i:j] # 获取当前的子字符串
            if int(sub_str) % 2 == 1: # 判断是否为奇数
                empty.append(sub_str) # 添加进空列表

    if len(empty) == 0:
        print('输出:0')
    else:
        empty.sort(reverse=True) # 按降序排序
        print('输出:', empty[0]) # 输出第一个(最大)奇数子串

这样就可以得到正确的输出结果了。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-1-23 20:13:19 | 显示全部楼层    本楼为最佳答案   
本帖最后由 jackz007 于 2024-1-23 23:17 编辑
                empty . append(s[i:j])      # 第 11 行
. . . . . .
        sorted(empty,reverse = True)        # 第 17 行

改为:
               empty . append(int(s[i:j]))  # 第 11 行,数值排序不同于字符串排序,本例需要的是数值排序
. . . . . .
        empty . sort(reverse = True)        # 第 17 行,执行 sorted(empty,reverse = True) 并不能改变元素顺序
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-1-24 11:28:46 | 显示全部楼层

改成功了,谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-1-24 11:30:06 | 显示全部楼层

表情发错了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-22 01:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表