与python3中的sys.stdin.readline()有关



用于以下python 3代码的摘要时,当我给出"级别"作为输入字符串时,它返回3,而预期输出为2。

import sys
print("Enter a String and I will tell you about it")

str = sys.stdin.readline()

print(int(len(str)/2))

它在结尾包含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'

使用系统var名称作为变量真的很糟糕。

您的问题是读取部分,输入级别并按Enter设置您的

str ='级 n'

" n"仅寄存为一个字符,因此总长度为6,预期输出为3。修复使用

str = sys.standin.readline((。rstrip((

最新更新