No.8ベストアンサー
- 回答日時:
まずエラーが出る原因から、
u=parallax(a)
ですが、関数名はParallaxと大文字から始まっているので、合わせてください。また引数がaになっていますが、sのはずです。
それと、
t=float(input("b?")
は)が不足しています。
次に改良点ですが、
printの中でまたにParallax(s)が呼ばれていますので、uに変更しました。
もうひとつ関数の中の数値が整数型になっています。このプログラムでは問題はないのですが、もし整数/整数を実行した場合には、結果が浮動小数点にならずに整数で切り捨てられてしまいますので大きな誤差になります。特に理由がなければ浮動小数点にした方が良いように思います。
s=float(input("a?"))が関数定義の間に入っていました。これでも正常に動作しますが、関数定義とは場所を分けた方が気持ちがよいので、下に移しました。
修正したものは以下の通りです。
#!/usr/bin/env python
from math import*
def Parallax(a):
return 1.0/a
def AbMagnitude(b,u):
return b-5.0*log(u/10.0)
s=float(input("a?"))
u=Parallax(s)
t=float(input("b?"))
print(s,u,t,AbMagnitude(t,u))
ありがとうございます。前の補足の後、自分なりに間違いを見つけて、プログラムを実行できるようにしたものと、今回の改良されたプログラムがほとんど一致していたのでよかったです。
丁寧な添削、回答を長い間ありがとうございました。
No.7
- 回答日時:
No.6の補足欄について
これまでの回答で必要な情報は全て書いています。もう一度読み直してください。
自分で作ったプログラムを書き込んでください。
添削はいたします。
この回答への補足
circle.pyのプログラム作成はできました。ありがとうございます。
次に、
#!/usr/bin/env python
from math import*
def Parallax(a):
return 1/a
s=float(input("a?"))
def AbMagnitude(b,u):
return b-5*log(u/10)
u=parallax(a)
t=float(input("b?")
print(s,Parallax(s),t,AbMagnitude(t,u))
というプログラムを作りましたが、printのところで、エラーが出ますどうしてでしょうか。
よろしくお願いします。
No.6
- 回答日時:
man xargs
でコマンドの使い方が分かりますので調べてみてください。
-L 1が必要かは
cat data.txt |xargs -p -L 1 ./circle.py
cat data.txt |xargs -p ./circle.py
のように-pを追加すると実行されるコマンドが分かりますので試してみてください。
この回答への補足
ありがとうございます。
手間を取ってすみませんが、 前の回答・質問に関してなのですが、def CircleArea(r,b)の関数の値を使って、def Time(CircleArea(r,b))
3*CircleArea(r,b)を、計算したいのですが、どうすればよいでしょうか? よろしくお願いします。
No.5
- 回答日時:
表にするなら、単純な計算は表計算ソフトでやるのが早いですが。
なんとなく丸投げっぽいですが、Pythonでやるのは基本の基本なので考えてもらうとして
No.3のプログラムを使って一括して計算する方法を書いておきます。
まず、1行に2つの数値を空白(tabでも良さそう)で区切って書いたファイルを作ります。
1 2
4 5
6 8
こんな感じのファイルdata.txtを作ったとします。
それぞれの行を引数として渡して
./circle.py 1 2
./circle.py 4 5
./circle.py 6 8
と3回実行してくれれば全部計算されます。
UNIX系ではこのようなことをうまくやってくれるxargsがあります。
cat data.txt|xargs -L 1 ./circle.py
のように使います。
この回答への補足
cat data.txt|xargs -L 1 の-L 1の意味は何でしょうか。簡単な質問かもしれませんが、ご教授お願いします。
補足日時:2012/11/07 16:14No.4
- 回答日時:
>3行目をreturn r*r*b*3.14として、r,bを両方聴くにはどうしたらいいでしょうか?
まず、関数def CircleArea(r):にbも渡せるように、
def CircleArea(r, b):のようにしまします。
a=float(input("r?"))と同じように、bに関してもう一行追加します。このあたりは基本中の基本で自分で考えてみてください。
余談ですが、
コマンドから数値を指定する方法を書いておきます。
#!/usr/bin/python
import sys
param = sys.argv
r=float(param[1])
b=float(param[2])
print (r,b, r*r*b*3.14)
関数にしていないので字下げは必要ありません。
カレントディレクトリにある場合には
./circle.py 3 5
のように後ろにr, bの値を入れると計算できます。
この回答への補足
ありがとうございます。うまくいきました。
また、質問なのですが、いちいち、データを1つずつ打ち込むのは大変なので、表で一括にして、プログラムを実行する方法はあるのでしょうか? よろしくお願いします。
No.3
- 回答日時:
関数の定義しかありませんので、実行ができていないのです。
入力と関数呼び出しを追加しておきました。
三行目のreturnから始まる行だけ、前に空白をいれて関数の定義として認識させてください。
#!/usr/bin/python
def CircleArea(r):
return r*r*3.14
a=float(input("r?"))
print (a, CircleArea(a))
この回答への補足
ありがとうございます。うまくいきました。
また、質問ですが、3行目をreturn r*r*b*3.14として、r,bを両方聴くにはどうしたらいいでしょうか?
No.1
- 回答日時:
最初の行にpythonのある場所を以下のように指定します
#!/usr/bin/python
またはこちらでも
#!/usr/bin/env python
二行目以降からプログラムを書きます
そして実行権限を与えます。
chmod a+x circle.py
これで実行できます。
カレントディレクトリにcircle.pyがある場合には
./circle.py
でないと実行できない場合ばあります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コマンドプロンプトのエラーに...
-
これってパソコンの最適化が完...
-
バッチファイルの内容を表示さ...
-
pythonスクリプトを管理者権限...
-
Excel VBA ステップインが途中...
-
[teraterm] waitコマンドで停止...
-
「読み取りと実行」と「読み取...
-
exeファイルを実行するとコマン...
-
16進数の変換処理
-
バッチファイルが不正終了して...
-
【VB.NET】exeを実行すると「発...
-
ExcelのVBAが特定のPC上でのみ...
-
VBscriptが起動しない?
-
VBSでExcel上の数字に連番をふ...
-
Windowsアプリケーションをメモ...
-
実行中のログをフォームのテキ...
-
Excel(エクセル) VBA プロシー...
-
ttlマクロによるディレクトリ配...
-
エクセル フォルダの画像を画...
-
.NETからストアドプロシージャ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンドプロンプトのエラーに...
-
exeファイルを実行するとコマン...
-
[teraterm] waitコマンドで停止...
-
「読み取りと実行」と「読み取...
-
これってパソコンの最適化が完...
-
VBscriptが起動しない?
-
ネットワーク名が見つかりません
-
hostファイル
-
バッチファイルの内容を表示さ...
-
エクセル フォルダの画像を画...
-
PDFファイルを開き、印刷し、閉...
-
バッチファイルで以下のような...
-
Excel(エクセル) VBA プロシー...
-
VScodeのエラー解決法 Pythonの...
-
NASに移したBATファイルからセ...
-
pythonスクリプトを管理者権限...
-
Excel VBA ステップインが途中...
-
バッチファイルが不正終了して...
-
16進数の変換処理
-
複数のbatファイルを自動実行し...
おすすめ情報