统计整数个数

【问题描述】

输入一行字符串,含有数字和非数字字符以及空格等,如:
df23adfd56 2343?23dgjop535
如果将其中所有连续出现的数字视为一个整数,要求统计在该字符串中共有多少个整数,并将这些数依次输出。
【输入文件】

从当前目录下的trans.in文件中取得输入。
该文件内只有一行,含有数字和其它任意字符。该行最长含80个字符。
【输出文件】

将输出打印到当前目录下的trans.out文件中。
输出文件第一行为字符串包含的整数个数,第二行依次为各个整数,各整数之间用一个空格分隔。在第二行末也要输出一个回车符。
【输入样例】

df23adfd56 2343?23dgjop535
【输出样例】

5
23 56 2343 23 535
【样例说明】

在字符串df23adfd56 2343?23dgjop535中有5个整数分别是
23 56 2343 23 535

f = open('trans.in')
s = f.readline()
list_str = list(s)  # 字符串转为列表
list_result = []  # 创建一个空的结果列表
for i in list_str:  # 判断数字
    if i.isdigit():  # 是数字储存数字
        list_result.append(i)
    else:  # 不是数字储存空格
        list_result.append(' ')
str0 = ''.join(list_result)  # 列表转为字符串
list_result = list(str0.split())  # 字符串转为列表
g = open('trans.out', 'a')
g.seek(0)
g.truncate()
t = str(len(list_result))  # 获得列表长度
g.write(t)  # 写入第一行
g.write('\n')
count = 0
for i in list_result:  # 写入第二行
    g.write(str(i))
    count += 1
    if count < int(t):  # 判断添加空格
        g.write(' ')
g.write('\n')
f.close()
g.close()

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值