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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Bitcoin

Bitcoinは、インターネット上で流通している電子マネーです。P2Pネットワークを通じた安価な決済コストが実現できる一方、取引時の危険性や闇市場・資金洗浄など不正取引の温床といった法的問題も抱えています。

Q&A

解決済

2回答

4318閲覧

python3で、while文を使った繰り返しができない(expected an indented block)

takizawasizuku

総合スコア24

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Bitcoin

Bitcoinは、インターネット上で流通している電子マネーです。P2Pネットワークを通じた安価な決済コストが実現できる一方、取引時の危険性や闇市場・資金洗浄など不正取引の温床といった法的問題も抱えています。

0グッド

0クリップ

投稿2017/11/07 16:41

###前提・実現したいこと
python3.6でシステムを作っています。
zaifという仮想通貨取引所で、定期的に日本円の残高が有った場合に買い注文をできるようにするため、while文を用いたプログラムを書いているのですがうまく行きません。

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

C:\Users\hatanaka\AppData\Local\Programs\Python\Python36-32\python.exe C:/zaif/main.py File "C:/zaif/main.py", line 15 last_price = int(zaif_public.last_price('btc_jpy')["last_price"]) ^ IndentationError: expected an indented block Process finished with exit code 1

###該当のソースコード

# -*- coding: utf-8 -*- from time import sleep from zaifapi import ZaifTradeApi # Zaifの取引のためのクラス from zaifapi import ZaifPublicApi # Zaifが公開している認証情報が要らないAPIを実行するクラス from pprint import pprint # 表示用(jsonをきれいに表示してくれる) if __name__ == '__main__': key = 'himitsu ' secret = 'himitsu' zaif_public = ZaifPublicApi() zaif_private = ZaifTradeApi(key, secret) # 情報取得 num = 0 while num < 2: last_price = int(zaif_public.last_price('btc_jpy')["last_price"]) last_pricepuls = last_price + 1000 trade_info = zaif_private.get_info2() funds_jpy = trade_info["funds"]["jpy"] print('last_price: ' + str(last_price)) print('funds_jpy: ' + str(funds_jpy)) amountbtc = round(float(funds_jpy) / last_price, 4) - 0.0001 if funds_jpy > 100: pprint(zaif_private.trade(currency_pair='btc_jpy', action='bid', amount=amountbtc, price=last_price, limit=last_pricepuls) ) sleep(5) else: sleep(5)

###試したこと
https://qiita.com/speedkingg/items/7f122e1fd90558c531f4#_reference-0bb3193d4b94894ec497
を参考に試行錯誤しています。

###補足情報(言語/FW/ツール等のバージョンなど)
OSはwindows10,PyCharmを使って作っています。

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

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

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

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

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

guest

回答2

0

ベストアンサー

Pythonはコードのブロックを表すにのにインデントが必要です。 whileのあとにインデントが無い状態で次の行が書かれているのがエラーの原因です。

python

1while num < 2: 2 last_price = int(zaif_public.last_price('btc_jpy')["last_price"]) # インデントが必要

https://docs.python.org/ja/3/faq/design.html#why-does-python-use-indentation-for-grouping-of-statements

投稿2017/11/07 16:52

tell_k

総合スコア2120

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

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

takizawasizuku

2017/11/07 23:46

具体例まで付け加えていただきありがとうございます! おかげさまで動きました!
guest

0

ブロックをインデントで表現するのが、phythonの―大特徴ですが
この基本を忘れていませんか?

whileの中味はインデントを一段深くしないと
動かないです。

投稿2017/11/07 23:38

tknakamuri

総合スコア56

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

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

takizawasizuku

2017/11/07 23:45

ありがとうございます!その通りでした!!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問