从最终打印语句中删除回车符


import re 
import sys 
def isValid(s):
pattern_= re.compile("[12][d]{12}$")
return pattern_.match(s) 

loop = int(input ()) 
output=[]
for _ in range(0, loop):
ele = int(input())
output.append(ele)
entries = ''
for x in output :
entries += str(x)+ ''
print (output ) #['0123456789012']
print (entries ) #0123456789012
print(type(entries )) #str
print(type(output )) #list

# Driver Code 
for _ in range(loop):
for x in entries:
if (isValid(x)):
sys.stdout.write ("Valid Number")
break      
else :
sys.stdout.write ("Invalid Number")
break 

电话号码以数字1 或 2 开头,后跟正好 12 位数字,即电话号码由 13 位数字组成。

对于每个电话号码,在新行中打印"有效"或"无效"。 列表输入错误

生成的输出是,

2
0123456789012
1123456789012
[123456789012, 1123456789012]
123456789012 1123456789012
<class 'str'>
<class 'list'>
Invalid NumberInvalid Number
[Program finished]

另外,我在发布之前在堆栈上搜索过。这看起来是不同的问题。如果有任何与堆栈上的错误匹配的内容,请将我重定向到那里。

2
1123456789012
0123456778901
Valid Number
Invalid Number
[Program finished] 

这就是它应该的样子

import re
def isValid(s):
pattern_= re.compile(r'[1|2][0-9]{12}$')
return pattern_.match(s)
loop = int(input())
# no of times loops to run
output = []
for _ in range(0, loop):
output.append(input())
entries = ''
for x in output :
entries += x + ''
result = []
# Driver Code
for val in output:
if isValid(val):
result.append('Valid Number')
else:
result.append ('Invalid Number')
for i in range(len(result )-1):
print(result[i])

print(result[-1], end = " ")

这也应该有效。print首先将对象转换为字符串(如果它还不是字符串(。如果对象不是行的开头,结尾处不是换行符,它还会在对象之前放置一个空格。

使用stdout时,您需要自己将对象转换为字符串(例如,通过调用"str"(,并且没有换行符。

我也可以建议改写你的问题,因为这不是逻辑问题,而是语法问题。

评论: 已检查单个和多个输入。 工程。

尝试使用以下正则表达式

def is_valid(s):
pattern_= re.compile(r'[1|2][0-9]{12}$')
return pattern_.match(s)

我不确定,为什么要将数字附加到实体变量。我已经对代码进行了一些更改,正则表达式工作正常。

def is_valid(s):
pattern_= re.compile(r'[1|2][0-9]{12}$')
return pattern_.match(s)
loop = int(input())
output = []
for _ in range(0, loop):
output.append(input())
entries = ''
for x in output :
entries += x + ''
print (output )  # ['0123456789012']
print (entries )  # 0123456789012
print(type(entries ))  # str
print(type(output ))  # list
# Driver Code
for val in output:
if isValid(val):
print('Valid Number')
else:
print('Invalid Number')

输入:

5
1234567891234
1893456879354
2897347838389
0253478642678
6249842352985

输出:

['1234567891234', '1893456879354', '2897347838389', '0253478642678', '6249842352985']
12345678912341893456879354289734783838902534786426786249842352985
<class 'str'>
<class 'list'>
Valid Number
Valid Number
Valid Number
Invalid Number
Invalid Number
import sys
import re
def isValid(s):
pattern_= re.compile(r'[1|2][0-9]{12}$')
return pattern_.match(s)
loop = int(input())
output = []
for _ in range(0, loop):
output.append(input())
entries = ''
for x in output :
entries += x + ''
print (output )  # ['0123456789012']
print (entries )  # 0123456789012
print(type(entries ))  # str
print(type(output ))  # list
# Driver Code
for val in output:
if isValid(val):
sys.stdout.write('Valid Number')
else:
sys.stdout.write('Invalid Number')

生产

1
1234567891234
['1234567891234']
1234567891234
<class 'str'>
<class 'list'>
Valid Number
[Program finished] 

打印始终返回回车。 而sys.stdout.write则没有。 因此,挑战得到了解决。

最新更新