ここから本文です

pythonについての質問 printすると、b'55+22' と表示されるような変数に、eval...

syb********さん

2019/2/220:38:38

pythonについての質問

printすると、b'55+22'
と表示されるような変数に、eval(変数名)とやっても計算結果が出力されず、b'55+22'
と表示されてしまいます。

しかし、
aa = "55+22"
eval(aa)
とすると、77と表示されるので、evalで計算できないのは文字列の前にb''があるためだと
考えております。

そこで、printするとb'55+22'と表示される変数をevalで計算する方法を
教えていただきたいです。

ちなみにtype()で型を調べたところ、str型となっておりました。

よろしくお願いします。

閲覧数:
28
回答数:
1
お礼:
50枚

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

nor********さん

2019/2/221:23:43

Pythonのバージョンはいくつですか?

私の環境はWindowsでPython3.7ですが

a = b'55+22'
type(a)
=><class 'bytes'>

print( eval(a.decode()) )
=>77

になります。

  • 質問者

    syb********さん

    2019/2/221:39:06

    私はwindowsのPython3.6.5を使っています。

    print(tes)
    print(type(tes))
    print(eval(tes))

    としたところ、

    b'74*94'
    <class 'str'>
    b'74*94'


    と表示され、print(eval(tes.decode()))とするとstr型のためdecodeができないといった状態になりました。

    Traceback (most recent call last):
    File "bb.py", line 22, in <module>
    print(eval(tes.decode()))
    AttributeError: 'str' object has no attribute 'decode'

  • その他の返信(1件)を表示

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

質問した人からのコメント

2019/2/2 22:19:17

print( eval(eval(tes + '.decode()')) )
こちらを試したらできました!

ありがとうございます!!

あわせて知りたい

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる