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

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

新規登録して質問してみよう
ただいま回答率
85.47%
Flask

FlaskはPython用のマイクロフレームワークであり、Werkzeug・Jinja 2・good intentionsをベースにしています。

Python

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

1497閲覧

python htmlのformからデータの移行最中のstr型からint型の変換方法のエラー

jaogjig

総合スコア21

Flask

FlaskはPython用のマイクロフレームワークであり、Werkzeug・Jinja 2・good intentionsをベースにしています。

Python

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2021/12/30 06:08

前提・実現したいこと

pythonで財務諸表を自動で分析できるようなシステムを作っています。
ボタンを押すと計算してくれる機能を作っている最中にエラーが発生しました。

発生している問題・エラーメッセージ

app.pyのところのtype(int('cash'))にすると'cash'ValueError: invalid literal for int() with base 10: 'cash'このように出ます。
同じところをtype(int(cash))にするとTypeError: unsupported operand type(s) for -: 'str' and 'str'とこのように出ます。
これからどう直していけばいいかわかりません

該当のソースコード

index

1.html 2 <ul class="inner-table">損益計算書</ul> 3 <form action="/tab" method="POST"> 4 <label for="">現金及び預金</label> 5 <input class="main" type="number" name='cash' placeholder="千万円"> 6 7 <label for="">借金</label> 8 <input class="main" type="number" name='loan' placeholder="千万円"> 9 10 <label for="">現金及び預金</label> 11 <input class="main" type="text" name="user_name" placeholder="千万円"> 12 13 <label for="">現金及び預金</label> 14 <input class="main" type="text" name="user_name" placeholder="千万円"> 15 </tr> 16 <ul>貸借対照表</ul> 17 18 <label for="">現金及び預金</label> 19 <input class="main" type="text" name="user_name" placeholder="千万円"> 20 21 <ul>キャッシュフロー計算書</ul> 22 23 <input type="submit" value="計算"> 24 </form> 25 <ul>自己資本率</ul>{{ result }} 26 </body>

app

1.py 2@app.route("/tab",methods=["POST"]) 3def cash_loan_calculations(): 4 if request.method == 'POST': 5 cash= request.form.get('cash') 6 loan= request.form.get('loan') 7 type(int('cash')) 8 type(int('loan')) 9 difference=cash-loan 10 a= cash/difference 11 return render_template("index.html",result=a)

試したこと

以下の記事を参考にしました。
https://gammasoft.jp/support/python-error-str-convert-to-int/
https://blog.pyq.jp/entry/Python_kaiketsu_200106

補足情報(FW/ツールのバージョンなど)

ファイルとディレクトリの配置
pycache
|-app.cpython-39.pyc
images
|-2.png
static
|-design.css
templates
|-howto.html
|-index.html
|-searched.html
|-table.html
|-Registar.html
|-login.html

app.py
search.db
クレスコ財務データ(自動保存済み).csv

FW:flask
言語:Python3.9.7
pandasダウンロード済み

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

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

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

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

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

guest

回答1

0

ベストアンサー

int('cash')にすると文字列の'cash'をintに変換しようとしているのでエラーになります。
なので変数cashをintに変換したいのであればint(cash)にする必要があります。
loanについても同様です

あと、ついでに言っておくと、type()関数は引数の値の型を判定するものであって、元の変数の型が変換されるわけじゃないので、cash = int(cash)と変数を再設定することをおすすめします(数字が入ることを保証しているときは最初からcash = int(request.form.get('cash'))にするのもありですが)

投稿2021/12/30 06:30

編集2021/12/30 06:38
Supernove

総合スコア1154

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

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

jaogjig

2021/12/30 06:55

また返信ありがとうございます。type関数は型を判定するだけですね勘違いしていました。 無事計算することができました。重ねてありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問