Python 如何检查文件中的行数是否等于每行中的字符数?
该文件必须包含3到10行文本。也就是说,3是最小可接受行数,10是最大行数 所有行必须包含完全相同的字符数 每行必须包含3到10个字符。也就是说,3是可接受的最小字符数,10是最大字符数。每行的字符数不必等于文件中的行数 唯一可接受的字符是“x”、“x”、“y”、“y”和“_389;”Python 如何检查文件中的行数是否等于每行中的字符数?,python,Python,该文件必须包含3到10行文本。也就是说,3是最小可接受行数,10是最大行数 所有行必须包含完全相同的字符数 每行必须包含3到10个字符。也就是说,3是可接受的最小字符数,10是最大字符数。每行的字符数不必等于文件中的行数 唯一可接受的字符是“x”、“x”、“y”、“y”和“_389;” correct_string = False while correct_string is False: string = input("Enter a string? ") if len(s
correct_string = False
while correct_string is False:
string = input("Enter a string? ")
if len(string) != len(string):
print("Error: string must have the same number of characters.")
else:
incorrect_char = False
for i in string:
if i != "X" and i != "x" and i != 'Y' and i != 'y' and i != "_":
incorrect_char = True
if incorrect_char is False:
correct_string = True
else:
print("Invalid Character. Contains characters other than 'X', 'x', 'Y' 'y',and '_'")
也许。。。不太清楚您的要求是什么def check_文件(f):
def check_file(f):
for i, line in enumerate(f):
if i > 10: return False
for j, c in enumerate(line.rstrip('\n')):
if j > 10: return False
if c not in 'xXyY_':
return False
if j < 3: return False
if i < 3: return False
return True
对于i,枚举(f)中的行:
如果i>10:返回False
对于枚举中的j,c(行.rstrip('\n')):
如果j>10:返回False
如果c不在'xXyY_u2;'中:
返回错误
如果j<3:返回False
如果i<3:返回False
返回真值
读取文件中的行并检查其长度?此代码有很多错误。。。我认为最初的if永远不会是真的……你问题的标题提到了一个文件,但在你的代码中,你是从stdin读取的。还有,第一个条件是荒谬的:什么时候字符串对象的长度不等于它自己的长度?你问了两次吗?只需将第4行更改为范围(3,11)中的assert len(行)
。我想您还需要在范围(3,11)中添加assert len(行[0])
。
def check_file(f):
for i, line in enumerate(f):
if i > 10: return False
for j, c in enumerate(line.rstrip('\n')):
if j > 10: return False
if c not in 'xXyY_':
return False
if j < 3: return False
if i < 3: return False
return True