鱼C论坛

 找回密码
 立即注册
查看: 3263|回复: 3

31讲最后一题

[复制链接]
发表于 2023-2-12 21:36:28 | 显示全部楼层 |阅读模式

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

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

x
最后append函数不是是添加在末尾的么,为什么最后输出出来是穿插的额
1. 请编写一个程序,将用户输入的字符串重新格式化,使得字母和数字相互分隔(即一个字母一个数字相互间隔)
s = input("请输入测试字符串:")
   
str09 = []
strAZ = []
   
# 将数字和字母进行归类存放
for each in s:
    if each.isdecimal():
        str09.append(each)
    else:
        strAZ.append(each)
   
len09 = len(str09)
lenAZ = len(strAZ)
   
# 如果两个容器的元素个数相差 1 个以上,则不满足重新格式化的条件
if abs(len09 - lenAZ) > 1:
    print("字符串中数字和字母的数量不满足重新格式化的条件。")
else:
    if len09 > lenAZ:
        shorter = strAZ
        longer = str09
    else:
        shorter = str09
        longer = strAZ
   
    result = []
    for i in range(len(shorter)):
        result.append(longer[i])
        result.append(shorter[i])
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-2-12 21:45:38 | 显示全部楼层
这个结果不对吗?

请输入测试字符串:aaa111
['a', '1', 'a', '1', 'a', '1']
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-2-12 21:57:09 | 显示全部楼层
本帖最后由 jackz007 于 2023-2-12 22:05 编辑
s = input("请输入测试字符串:")
str09 , strAZ , strResult = '' , '' , ''
for x in s:
    if x . isdigit() : str09 += x
    else : strAZ += x
if(abs(len(str09) - len(strAZ))) < 2:
    if len(str09) > len(strAZ) : stra , strb = str09 , strAZ
    else : stra , strb = strAZ , str09
    for i in range(len(stra)) : 
        strResult += stra[i]
        if i < len(strb) : strResult += strb[i]
    print(strResult)
else:
    print('测试字符串不合格!')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-2-13 15:18:04 | 显示全部楼层
isdkz 发表于 2023-2-12 21:45
这个结果不对吗?

结果 是对的!就是 我没想明白原理
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-24 07:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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