对于以下python 3代码片段当我将“Level”作为输入字符串时,它返回3作为输出,而预期输出为2.
import sys
print("Enter a String and I will tell you about it")
str = sys.stdin.readline()
print(int(len(str)/2))
答案 0 :(得分:1)
最后包含newline
:
import sys
print("Enter a String and I will tell you about it")
string = sys.stdin.readline()
print(int(len(string)/2))
for char in string:
print('{}: \'{}\''.format(ord(char), char))
给出:
Enter a String and I will tell you about it
Level
3
76: 'L'
101: 'e'
118: 'v'
101: 'e'
108: 'l'
10: '
'
请使用rstrip()
。
import sys
print("Enter a String and I will tell you about it")
string = sys.stdin.readline().rstrip()
print(int(len(string)/2))
for char in string:
print('{}: \'{}\''.format(ord(char), char))
给出:
Enter a String and I will tell you about it
Level
2
76: 'L'
101: 'e'
118: 'v'
101: 'e'
108: 'l'
答案 1 :(得分:1)
对变量使用系统var名称是非常糟糕的做法。
你的问题在于readlines部分,输入等级并按Enter键设置你的
str ='level \ n'
'\ n'只注册为一个字符,因此总长度为6,预期输出为3.修复使用
str = sys.standin.readline()。rstrip()