我几天前开始学习Python语言。我在python中的技巧不是太高。但无论我学到什么,我都想解决UVA Online Judge问题
当我尝试解决问题时272 TEX报价当用户输入由文件结束给出时,我遇到了终止循环的问题。
在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;
}
输入时EOF引发EOFError,因此您可以使用try ...除了具有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