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

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

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

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

Jupyter

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

Python

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

Q&A

解決済

1回答

2623閲覧

python str型からのfloat型への変換ができません。

ama178

総合スコア9

Windows 10

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

Jupyter

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

Python

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

0グッド

0クリップ

投稿2021/10/16 05:26

タイトルの通りです。
やりたいことは、アリエクスプレスというサイトからショップの評価の数字を取得し、
その値が93以上かどうかを判別したいです。

python

1!pip install selenium 2 3from selenium import webdriver 4 5browser = webdriver.Chrome() 6browser.get('https://ja.aliexpress.com/item/4001017281680.html?aff_fcid=272ff68d04eb4b9997820f12af9b9e4b-1633494533717-03725-c4uxd3MG&aff_fsk=c4uxd3MG&aff_platform=link-c-tool&sk=c4uxd3MG&aff_trace_key=272ff68d04eb4b9997820f12af9b9e4b-1633494533717-03725-c4uxd3MG&terminal_id=6f0594ad961743a1b3d0874ed9831883') 7 8value = browser.find_element_by_class_name("store-container").find_element_by_tag_name('i').text 9value 10print(value) 11print(type('value') is str) 12 13#実行結果 1495.7% 15True 16

ここまではいいのですが、次のコードを入力するとエラーが出てしまいます。
調べたのですがなぜエラーになるのかが分かりませんでした。

python

1#文字列を数字に直したい 2print(float('value')) 3 4ValueError Traceback (most recent call last) 5~\AppData\Local\Temp/ipykernel_10536/1797220878.py in <module> 6 3 print(value) 7 4 print(type('value') is str) 8----> 5 print(float('value')) 9 10ValueError: could not convert string to float: 'value'

python

1#評価が93以上かどうかを判別したい 2if value > 93: 3 Tlue 4 5TypeError Traceback (most recent call last) 6~\AppData\Local\Temp/ipykernel_10536/4206106856.py in <module> 7----> 1 if value > 100: 8 2 Tlue 9 10TypeError: '>' not supported between instances of 'str' and 'int'

valueの値を数字に変換できれば、上記の評価数の判別もできると思うので、
変換の部分のみが分からないです。

https://teratail.com/questions/117085
ここに似たような質問があったのですが、csvからダウンロードしたデータの場合だったので、
今回とはちょっと違う原因なのかもしれないと思います。

また、replaceを使ってカンマを置き換えてみてもダメでした。

python

1value2 = value.replace(',', '') 2value2 3 4#実行結果 5'95.7%' 6 7print(float('value2')) 8 9ValueError Traceback (most recent call last) 10~\AppData\Local\Temp/ipykernel_10536/2928409899.py in <module> 11 5 value2 = value.replace(',', '') 12 6 value2 13----> 7 print(float('value2')) 14 15ValueError: could not convert string to float: 'value2'

アドバイスをよろしくお願いします。

#動作環境
Windows10
Python3.9 64bit
jupyter lab

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

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

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

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

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

guest

回答1

0

ベストアンサー

python

1print(float('value'))

上記は 'value' という文字列を float にしようとしているため、文字列はfloatにできない、とエラーが出ます。
シングルクォートを外せば、変数value を float にできます。
ただし文字列を含む場合はfloatにできません。
今回は「%」のみが含まれるのであれば、% を削除することで変換できるかと。

python

1print(float(value.replace('%','')))

投稿2021/10/16 05:33

nemoplus

総合スコア161

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

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

ama178

2021/10/16 06:40

ありがとうございました!解決できました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問