2016-10-26 7 views
0

私はインターネットからコピーされたファイルからテキストを読み込み、それを変数に格納して後で使用するためのPythonプログラムを持っています。それは非常に単純であり、このように書きます:Python。ファイルから読み込んだ場合、アポストロフィは一重引用符を二重引用符に変更します。

Line=(Storefile.readline()) 
Word=Line[:-1] 

([:-1](キャリッジリターン記号を取り除くためには '\ n' の))私はIDLEでWordを記述する場合、それは返し

- 'パン'

すべてはうまくいきます。読んだ行にアポストロフィが付いていない限り、うまくいきます。この場合、IDLEにWordを書くと「パンの」となります。 「パンの」対「パン」 - シングル二重引用符対

私は文字単位で文字にWordの変数を構成する場合:

for n in range(len(Word)): 
Word=Word+Word[n] 

瞬間Wordの[n]はアポストロフィです - 単一引用符を回します引用符を二重引用符で囲みます。 'パン'対 "パン '"

質問です。二重引用符を一重引用符に変換するにはどうすればよいですか? 引用符が文字列の一部ではないため、Word.replace()は機能しません。

+3

よりも書くことが容易であり、文字列自体とは何の関係もありません。 – L3viathan

+1

一重引用符と二重引用符の文字列は単なる文字列です。 – ospahiu

+0

@ L3viathanが正しいです。 IDLEは、これが文字列値であることを人間に示すためだけに引用符を提供します。文字列に一重引用符がない限り、一重引用符を使用します。その場合、分かりやすくするために倍に切り替わります。 singleまたはdoubleは、文字列値の有効な表現です。 – Prune

答えて

2

documentationから、Python文字列は一重引用符または二重引用符で囲むことができます。違いはありません。文字列はオブジェクトとして格納された一連の文字列であり、表示しようとすると、IDLEは単一引用符で囲まれた文字列を表示するかどうかを選択します。文字列は、内部的にも哲学的にも同じです。

通常、文字列自体に二重引用符(またはその逆)が含まれている場合は、一重引用符を使用してエスケープする必要はありません。例えば、 `

s1 = 'His "name" was Harambe' 
s2 = "He's no longer with us" 

は、これは単なる表示上の問題である

s1 = "His \"name\" was Harambe" 
s2 ='He\'s no longer with us' 
+0

ありがとうございました!私は別のリスト変数(List [n])をリスト変数matrix [n] [1]のリストと比較していました。別のList変数は角括弧を追加しましたが、リストのリストは含まれていませんでした。そのため、これらの変数をIF文と比較すると、変数に同じ文字列があったとしても結果はFalseでした。だから私はそれが引用のためだと思った - しかし、今はそれが括弧のためであることがわかります。私は質問を削除することができますね - Stackoverflow.com驚くべきことです! –

+0

@Gloom_Demon質問を削除する必要はありません。それは将来誰かを助けるかもしれない:) – gowrath

関連する問題