質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

4回答

477閲覧

変数の中身「'税抜価格 \1500' 」をそのまま「税抜価格 \1500 」と表示する方法

teratailkid

総合スコア0

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

1グッド

1クリップ

投稿2021/02/10 09:44

Windows10で動かしているPython3です
変数の中身「'税抜価格 \1500' 」をそのまま「税抜価格 \1500 」と表示する方法が分かりません

aa='税抜価格 \1500'
print(aa)

とすると

税抜価格 h0

と表示されます

print(repr(aa))

としても同じです

aa=r'税抜価格 \1500'

とすれば、ちゃんと表示される事はわかりますが、変数aaの値が変化するので、困っています

huri👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_waiwai

2021/02/10 09:56

コードを提示しましょう
maisumakun

2021/02/10 11:05

aa=r'税抜価格 \1500'とした場合に、具体的にどのように「困る」のですか?
teratailkid

2021/02/11 00:39

いろいろ、ご回答ありがとうございます 質問を大急ぎで書いたため、不十分なところがあり、すみません 皆さんにご回答いただいたことは、分かりました うまく表現できませんが、困っていることは、 aa='税抜価格 \1500' print(aa) なんですが、変数'aa'に代入されるデータはスクレイピングしたデータなので、スクレイピングするたびに変化し確定していません。だから、手打ちすれば aa=r'Webからスクレイピングしたデータ' とできますが、プログラム上で変数aaの最初に'r'を付加して、処理したいのです 単純に、スクレイピングしたデータ'税抜価格 \1500'から1500だけを抜き出したいだけなんですが・・・
maisumakun

2021/02/11 01:06

> 変数'aa'に代入されるデータはスクレイピングしたデータなので、スクレイピングするたびに変化し確定していません。 では、スクレイピングする側からどのように値を受け渡すのかまで含めてコードを書いてください。
teratailkid

2021/02/11 05:47

とりあえず、次の方法で凌ぎました bb='\1500' if '\\' in bb: bb=bb.split('\\')[1] else: temp=bb[0] temp=format(ord(temp),'o') bb=temp+bb[1:10] # 何億円もするものはないので。。。 print(bb) が、プログラム上に書いたテキストの'\'とファイル等から読み込んだ'\'の扱いが異なるようなので、 実際は、 bb=bb[1:10] としました 色々りありがとうございました
guest

回答4

0

いわゆる半角の「¥(エンマーク)」は、US文字だとバックスラッシュになりますが、これは、文字列中ではエスケープ記号と言って特殊な意味を持ちます。

基本的には後に続く文字を特殊な意味に解釈するように指定するものです。例えば改行は「\n」で表します。

¥マークそのものを表示したいときには、

  1. \と2回つづけて入力する
  2. 全角の¥を使う
  3. 文字列そのものをraw文字列(r'xxx'の形)にする

などとすればOKです。

投稿2021/02/10 09:59

TakaiY

総合スコア13790

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

aa=r'税抜価格 \1500'
とすれば、ちゃんと表示される事はわかりますが、変数aaの値が変化するので、困っています

変数aaについて調べて見ましょう。

文字列aaの文字数はlen(aa)で分かります。
また文字列aaがどういう文字から成り立っているかは、list(aa)で調べることが出来ます。

まず、lenとlistの動きを見てみます。

python

1>>> print(len('価格50円')) 25 3>>> print(list('価格50円')) 4['価', '格', '5', '0', '円']

文字数は5個、で分解した文字は'価', '格', '5', '0', '円'の5個です。

ではaaで同じ事をしてみましょう。
なお、pythonの枠内でバックスラッシュと表示されている文字と枠外で¥の半角で表示されているのは同じ文字です。

python

1>>> aa=r'税抜価格 \1500' 2>>> print(len(aa)) 310 4>>> print(list(aa)) 5['税', '抜', '価', '格', ' ', '\', '1', '5', '0', '0']

''と表示されているのは、\と言う文字が特殊な意味を持つためですが、''が一文字です。
''をprintすると、ちゃんと\と表示されます。

python

1>>> print('\') 2\

投稿2021/02/10 22:38

ppaul

総合スコア24670

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

aa=r'税抜価格 \1500'

とすれば、ちゃんと表示される事はわかりますが、変数aaの値が変化するので、困っています

変化したあとの方が正解です。

税抜価格 h0」となるのは、変数が本当にその値となっています

投稿2021/02/10 11:04

maisumakun

総合スコア146018

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2021/02/11 01:08

> プログラム上で変数aaの最初に'r'を付加して、処理したいのです 考え方自体がおかしいです。「\150」が「h」となるのは、あくまで「プログラム表記の都合」であって、プログラム内で処理するデータには無関係なはずです。
guest

0

aa='税抜価格 \1500'

で。

あるいは、バックスラッシュではなく、円マーク¥を使えばいいです

投稿2021/02/10 09:58

y_waiwai

総合スコア88042

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問