解题思路:

注意事项:
在输入的时候需要加一个strip(),因为题目输入的时候后面多了一个空格

参考代码:

def f(n):    
    a = int(n[:3])    
    b = float(n[3:-2])    
    c = n[-1]    
     
    print('%-8d' % a, end='|')    
    print('%8.1f' % b, end='|')    
    print('%c' % c)    
         
     
if __name__ == '__main__':    
    n = input().strip()  
    f(n)


点赞(0)
 

0.0分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 6 条评论

D 2年前 回复TA
@想看大佬题解 在input后面加个strip就好了。n = input().strip(),在输入的时候后面多了一个空格
D 2年前 回复TA
在input后面加个strip就好了。n = input().strip(),在输入的时候后面多了一个空格
D 2年前 回复TA
@啊分 谢谢
D 2年前 回复TA
@啊分 排除了,因为没有取n[-2]。我检查了一下在在input后面加个strip就好了。n = input().strip(),在输入的时候后面多了一个空格
啊分 2年前 回复TA
我觉得是题目的问题,因为题目上,在实数和字母之间多了一个|,你没有排除

def f(n):
    a = int(n[:3])
    n=n[3:]
    b = ''
    c = ''
    for i in n:
        if i >= '0' and i <= '9' or i == '.':
            b += i
        elif i == '|':pass
        else:
            c += i
    b = float(b)

    print('%-8d' % a, end='|')
    print('%8.1f' % b, end='|')
    print("{}".format(c))


if __name__ == '__main__':
    n = input()
    f(n)
想看大佬题解 2年前 回复TA
s = input()
n = int(s[:3])
flag = 0
for t,l in enumerate(s):
  if  l.isalnum() and not l.isalpha():
    flag = t
p = int(s[:3])
ss = round(float(s[3:flag]),1)
x = s[-1]
print("{:<8d}|{:>8.1f}|".format(p,ss,x)+x)
也是50分答案,整不明白哪里有问题