2017-03-12 19 views
1

実際に文字を整数に変換しようとしています。 (すなわち「1」から1)のpython3ではなく、それを変換することができませんなぜそれが何らかのエラーにValueError:基数10のint()のリテラルが無効です: ' r'

ValueError: invalid literal for int() with base 10: '\r' 

を示しています。 geeksforgeeksコンパイラで実行している場合、エラーは表示されません。 しかし、提出すると、このエラーが表示されます。

t=int(input()) 
for each in range(t): 
s=input() 
count=0 
num=0 
for eachch in str(s): 
    if (eachch>='a') and (eachch<='z'): 
     count+=1 
    else: 
     num=num*10+int(eachch) 
if(int(num) == int(count)): 
    print("1") 
else: 
    print("0") 

なぜこのようなことが起こっているのか、これらのコンパイラの違いについて教えてください。

+0

「\ r」はCR文字で、改行記号です。 DOS/Windowsプラットフォーム(CRLF、別名 '\ r \ n 'で終わる行)がUNIXプラットフォームで実行されているプログラムに入力されているときに表示される傾向があります(行はLF、aka '\ n')。 –

+0

@ Piyush Yadav、コード内のインデントを修正する必要があります –

答えて

0

ここで問題となるのは、入力文字列が\rシンボルであるため、int()関数は整数を取得できないということです。 strip()機能を使用すると、ここで役立つ必要があります。

I.e. t = int(input().strip())

関連する問題