我几天前开始学习 Python 语言。我在 python 中的技能不是太高。但无论我学到什么,我都想解决 UVA Online Judge 问题
当我尝试解决问题时 272 TEX Quotes 当用户输入由文件结尾给出时,我遇到了终止循环的问题。
在python 中检查我的(100%逻辑解决的)代码(循环终止时除外)
flag = True;
while True: #I want That loop is terminated when getting EOF
txt = input()
for var in txt:
if var == '"':
if flag:
print("``", end='')
else:
print("''", end='')
flag = not flag
else:
print(var, end='')
print(end='\n')
检查 C 中我接受的已解决代码,它的终止循环是文件结尾,由 Ctrl + Z给出
#include <stdio.h>
int main()
{
int flag = 1;
char txt;
while((txt = getchar()) != EOF){
if(txt == '"'){
if(flag)
printf("``");
else
printf("''");
flag = !flag;
}else
putchar(txt);
}
return 0;
}
此外, C ++
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
char txt;
bool flag = true;
while((txt = getchar()) != EOF){
if(txt == '"'){
if(flag)
cout << "``";
else
cout << "''";
flag = !flag;
}else
cout << txt;
}
return 0;
}
答案 0 :(得分:2)
输入时EOF引发EOFError,因此你可以使用try ... except block with break语句:
flag = True;
while True: #I want That loop is terminated when getting EOF
try:
txt = input()
for var in txt:
if var == '"':
if flag:
print("``", end='')
else:
print("''", end='')
flag = not flag
else:
print(var, end='')
print(end='\n')
except EOFError:
break