![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
Pythonのプログラムを教科書をみながら勉強しはじめました。
バージョンは3.0.1です。
下記の初歩的なプログラムで#の行でエラーがでて対応方法が
わかりません。 アドバイスいただけませんでしょうか。
#! /python30/python
# coding:shift_jis
'''
簡単な電卓です。
Usage: mycalc.py n (+-*/) m
'''
import sys, operator
OP={'+':operator.__add__,\
'-':operator.__sub__,\
'*':operator.__mul__,\
'/':operator.__truediv__,\
}
def calc(ls):
assert len(ls)==3 #ここでエラー
try:
op=OP(ls.pop(1)) # 真ん中の文字列をpop,数字のみ残る。
x,y=[float(u) for u in ls] # 残った文字列をfloatに変換
except:
print('Err:数字 演算子(+-*/) 数字 の順に引数をセットしてください。')
sys.exit()
return op(x,y)
if __name__=='__main__':
print(calc(sys.argv[1:])) #ここでエラー
(ここで質問するとTABのインデントがなくなってしまうようです。)
No.1ベストアンサー
- 回答日時:
>assert len(ls)==3 #ここでエラー
この assert に引っかかってしまってということなら、
プログラムの実行の仕方がまずいです。
スクリプトの名前が sample.py だったとして
python sample.py 1 + 2
のようにしないといけませんが、どうやってますか?
そしてスクリプト自体にもエラーがありますね。
>op=OP(ls.pop(1)) # 真ん中の文字列をpop,数字のみ残る。
OP の直後は丸カッコではなく角カッコです。
op = OP[ls.pop(1)]
のように。
何かのテキストを元に打ち込んでいるものかもしれませんが、
>except:
>print('Err:数字 演算子(+-*/) 数字 の順に引数をセットしてください。')
>sys.exit()
少なくとも作り始めは何が元のでこの except節が実行されたかを握りつぶさないほうがいいですよ。
ご指摘ありがとうございます。
OP の直後は丸カッコではなく角カッコとし、
python mycalc.py 2 + 3(エンター)
とpython shell上で実行したら、うまくいきました。
引数は2(スペース)+(スペース)3 と入力しなければいけなかった
ようです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) pythonのプログラムについての質問です。 1 2023/05/26 10:31
- その他(プログラミング・Web制作) Pythonのライブラリ、randomについて 3 2022/09/20 14:30
- Ruby パイソンプログラミング 2 2022/12/03 18:44
- その他(プログラミング・Web制作) pythonのWebスクレイピングでfind_allだとurlがNoneに 4 2022/04/17 18:21
- その他(プログラミング・Web制作) python 気象データの取得 2 2023/06/20 23:54
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- その他(プログラミング・Web制作) プログラミングについて(Python) 添付した画像はC言語で簡単に作ったソースで、1つの配列に5つ 3 2022/09/10 19:15
- その他(プログラミング・Web制作) VScodeでpythonプログラムの関数を実行したい 2 2022/07/13 19:24
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBSがコンパイルエラーになりま...
-
CGIの接続エラー
-
POSTで送信するとエラーになる
-
英字のみを検索する正規表現に...
-
SWI-Prologでのエラーに関して
-
教えて下さい。
-
w3cの検証エラー?
-
エクセルVBAでシートモジュール...
-
例外処理のフローチャートの記...
-
Sub Workbook_Open()でユーザー...
-
Excel VBAでリンク切れをチェッ...
-
Perlの実行パスを自動で変更す...
-
VBでグローバル変数を宣言するには
-
Excel VBAで、ユーザーフォーム...
-
「デバイスは PRN を初期化でき...
-
関数の引数にクラスを使いたい
-
ユーザー定義関数に#NAME?が返...
-
偶数/奇数の判定
-
他Book(シートモジュール)のマ...
-
powershellで関数名を変更する...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBSがコンパイルエラーになりま...
-
perlをバージョンアップしたら...
-
教えて下さい。
-
SWI-Prologでのエラーに関して
-
【python】requestsでdataとし...
-
erf(x)とerfc(x)のカタカナ読み...
-
w3cの検証エラー?
-
Excelマクロでセルに値が入力さ...
-
powershellで引数受け取り時に...
-
CGIの接続エラー
-
windows7のperlでaccdb接続でエ...
-
POSTで送信するとエラーになる
-
SMTP-AUTH でメール送信
-
VBからブラウザの表示状態(リ...
-
メールアドレスについて
-
perl ver5.24.0 x68版で、requi...
-
ショッピングカートのカスタマイズ
-
英字のみを検索する正規表現に...
-
au「W54S」だけcgi-lib.plで不...
-
Pythonプログラミングでエラー
おすすめ情報