プログラミングの勉強をしようと思っています。
初心者なので簡単なのがいいです。

ネットで調べたらC#かPythonあたりがいいらしいのですが、
どちらのほうがいいですか?
特徴やその言語でできることも書いてくださるとうれしいです。
それ以外にも初心者向けの言語があればおしえてください。

したいことは特に決まっていませんが、スマホのアプリとかよりは
PCのソフトを作ってみたいです。

もしよければその言語の初心者向けの本を教えてくださるとうれしいです。
サイトよりは本のほうがいいです。

使っているPCはWindows7、corei7のものです。
スペックはそんなに低くないと思います。

このQ&Aに関連する最新のQ&A

A 回答 (4件)

>開発環境がただと書いてありますが、


>PYthonはお金がかかるんですか?

http://www.python.org/getit/windows/
ダウンロードして、必要な環境設定をすればタダでしょう。
# カネ使わない代わりに頭使え。ということですが。

http://www.python.org/download/releases/
からそれぞれのバージョンのリンクで飛んで、「Download」の下にある
Windows x86 MSI Installer (x.x.x)
でmsiをDLしてインストール作業をすれば…ある程度環境の設定はしてくれるものと思われます。
# OSが64BitだったらWindows X86-64 MSI Installer (x.x.x)の方でもよいでしょう。
# ライブラリとか面倒になる可能性もあるので、32Bit版にしておいた方が無難かも知れませんけどね。

GUIとなるとどうなんでしょうかねぇ……。
「python Windows GUI」辺りで検索して下さいな。
    • good
    • 0

何の目的もなく、単にプログラミングを学びたい、ということなら、Pythonの方だと思います。


以前は、日本語の資料が少なかったのですが、ここ最近では、いろんな本が出ています。
http://www.python.jp/
のドキュメントも充実しています。

GUIはたしかに得意ではないですが、Tkinterというモジュールが標準で付いています。

Iron Pythonという選択肢もありますね。


スマホアプリとなると、どちらも難しいです。
    • good
    • 0

既に回答ありますが…



>ネットで調べたらC#かPythonあたりがいいらしいのですが、
>どちらのほうがいいですか?

WindowsでGUIアプリ作りたいならC#でしょうかね。
PythonでもGUIなアプリは作れるのかも知れませんが、環境準備するのに手間取るんじゃないでしょうか。
Linuxとかでも動くモノを作りたい。というのならPythonも選択に入るんでしょうけど。
環境に依存するモノ…だと準備とかは楽な場合が多いですが、他の環境で使えるかは別問題ですし。
# C#だと実質Windowsのみですしねぇ。

>したいことは特に決まっていませんが、スマホのアプリとかよりは
>PCのソフトを作ってみたいです。

C#もPythonもスマホのアプリは無理でしょう。
C#の方ならモノによってはWindowsタブレットのアプリが作れるかも知れません。
# WindowsPhone(WindowsMobile)をスマホに分類してくれるならC#でもある程度作れますけどね。
# 日本じゃシェアがほとんどないので無意味でしょうが。

>もしよければその言語の初心者向けの本を教えてくださるとうれしいです。
>サイトよりは本のほうがいいです。

いろいろあるとは思いますが…実際に大きめな本屋に行って、自分の目で立ち読みしながら確認した方がいいと思われます。
レビューなんかを参考にするのはいいかと思いますけどね。

ちなみに私が買ったのは下記の2冊。
# C言語は普通に使えて、WindowsAPIもある程度使える。
# C++の概要くらいはなんとなく判る。(クラス設計とかはできないが)
# って程度から、ちょっと必要に迫られて買ったものです。
# プログラミングの経験ありなので初心者ではないことになります。
# C言語との違いがわかればどうにかなる。というスタート地点ですし。
http://www.amazon.co.jp/dp/4798029459
=>単に安かったから。1~2日で読み終わってその後はあまり見ませんでしたね。
http://www.amazon.co.jp/dp/4774150169
=>Tip集などは便利だから。

あとは…適当にWebページ検索したりしてますね。
http://dobon.net/
にもお世話になってますし。
# もちろん、MSDNのサイトも参照しまくり…ですけどね。

Pythonは使ったことないのでよくわかりません。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
C♯とPythonの違いがわかりやすかったです。

いろいろな環境で動くほうがよかったのですが、
そうでない方が環境を整えやすいというメリットもあるんですね。

とても参考になりました。

お礼日時:2013/06/30 19:54

Windowsでやるなら、C#のほうが良いのでは?


開発環境まるごとタダで手に入りますし。

Visual Studio ダウンロードページ
http://www.microsoft.com/visualstudio/jpn/downlo …
(※ページの下のほうにあるVisual C# 2010 Expressが該当)
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
ダウンロードページのURLはとてもうれしいです。

開発環境がただと書いてありますが、
PYthonはお金がかかるんですか?

お礼日時:2013/06/30 19:56

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QPython2系と3系、最初に学ぶならどっち?

Python2系と3系、最初に学ぶならどちらがいいでしょうか?

入門サイトや書籍が多かったり、Djangoが対応している2系にするべきか、最新の3系にするべきか迷っています。
皆さんの意見をお聞かせください。

Aベストアンサー

どちらか一方しか学ばないということを考えているのでない限り、
3系→2系
でしょう。

Qプログラミング用語を勉強したいのですが、本当に初心者なので何から学んだ

プログラミング用語を勉強したいのですが、本当に初心者なので何から学んだらいいのかわかりません。
とりあえずはじめは何言語を学べばいいのかとわかりやすい初心者講座っぽいURLを載せて頂けたらうれしいです。よろしくお願いします

Aベストアンサー

こんばんわ
私も初心者ですが、日系ソフトウェアって雑誌のC言語超入門って雑誌を買って勉強してます。
内容は、C言語の中級レベルまでと、C++が少しとRubyの学習ブックとiPhoneプログラミングについて載ってます。
結構解りやすく説明してくれているので個人的には気に入っています。

言語はやっぱりCからでしょうかね。覚える文法事項はたくさんありますが、かなり自由度が高いらしいので。私はまだ少しかじった程度しかやっていませんが。

QMacでPython スクリプトファイルの実行

自分はMacユーザです。

プログラミングに興味があったので
Python2.6のインストールと入門書の購入をしました。

スクリプトファイルの実行をしたいのですが、やり方がわかりません。
Macにあるテキストエディタで print "hello" と入力して、test.pyという名前でデスクトップに保存しました。

購入した本には「LinuxやMac OS Xであれば、シェルからコマンドを入力します。」と記されています。
そもそもシェルの意味が分かりません。。。
「python test.py」と入力とも書いてあるのですが、どこに書くのでしょうか。。

ネットで簡単に調べてみたのですが、いまいち分かりません。
初心者なので、分かりやすく回答して頂けるとありがたいです。
どうか、よろしくお願いします。

Aベストアンサー

一応、Linuxですけど動画を付けておきます。
MacもLinuxもPC-UNIXなんで基本は同じです。

動画では

python デスクトップ/test.py

にしてますが、調べたところ、Mac OS Xのディレクトリ構成は以下のページ

http://homepage.mac.com/nojiri/macosx/feedback10a1.html

を見る限り、

/Users/ユーザー名/Desktop

の模様なんで、「デスクトップに保存」したのなら

python Desktop/test.py

でしょう。多分。

>そもそもシェルの意味が分かりません。

Macにターミナル(あるいは端末)ってあるでしょう?それの事です。
ホントの事言えば正確な言い回しじゃないんですけど、そう考えておいてO.K.です。んで、確かに初心者が「シェル」って言われても困りますね(笑)。
Windowsで言う「コマンドプロンプト」とか「DOS窓」って言われるヤツとまあ同じだ、って考えておいて間違ってないでしょう。

https://www.youtube.com/watch?v=FlV5gAVv1kw

一応、Linuxですけど動画を付けておきます。
MacもLinuxもPC-UNIXなんで基本は同じです。

動画では

python デスクトップ/test.py

にしてますが、調べたところ、Mac OS Xのディレクトリ構成は以下のページ

http://homepage.mac.com/nojiri/macosx/feedback10a1.html

を見る限り、

/Users/ユーザー名/Desktop

の模様なんで、「デスクトップに保存」したのなら

python Desktop/test.py

でしょう。多分。

>そもそもシェルの意味が分かりません。

Macにターミナル(あるいは端末)っ...続きを読む

QC言語、C+、C++、C#の違い

C言語、C+、C++、C#の違いがよくわかりません。
自分でも調べてみましたが、「オブジェクト指向」という言葉が出てきて、よくわかりません。
わかりやすく教えていただけたら幸いです。
初心者がプログラミング言語を始めるならどの言語がいいですか?
幅広い分野で活用でき、初心者でもわかりやすい言語がいいのです。
私は、C言語、C+、C++、C#のどれかを勉強しようと考えているのですが、この中の言語ならどれがいいでしょうか?もちろんこの中の言語以外に初心者にわかりやすく幅広い分野で活用できる言語があればそちらにしようと思います。ありましたら教えてください。

Aベストアンサー

まずは「オブジェクト指向プログラミング」というモノについて勉強してみては?

プログラミング言語というのは「初心者」にはどれも簡単ではありません。
実際にコンパイル出来る環境があれば習得は早いとは思います。

因みに、CとC++は同じコンパイラで使用出来るので、「Cコンパイラ」「C++コンパイラ」を別々に用意する必要はありません。C/C++コンパイラでC#は使用出来ないのでC#だけは別物。


Perlという言語もあり、科学者が大量の測定データを分析する時に使用したりインターネットで動的ページの生成(CGI)に使用されたりしています。
大量のテキストデータを処理するならPerlは超高速。でも型定義とかが曖昧だし正規表現と鋳物を覚えないといけないのでこれまた大変。オライリーから出ている専門書でも正規表現はそれだけで1冊になってますからね。

「初心者にわかりやすい」と「活用」は相反することがあります。
そんなところに拘っていると本質を見失いますよ?
まずは気になる言語の書籍を買って読みあさりましょう。自分にとってわかりやすい言語かどうかはそれからです。

まずは「オブジェクト指向プログラミング」というモノについて勉強してみては?

プログラミング言語というのは「初心者」にはどれも簡単ではありません。
実際にコンパイル出来る環境があれば習得は早いとは思います。

因みに、CとC++は同じコンパイラで使用出来るので、「Cコンパイラ」「C++コンパイラ」を別々に用意する必要はありません。C/C++コンパイラでC#は使用出来ないのでC#だけは別物。


Perlという言語もあり、科学者が大量の測定データを分析する時に使用したりインターネットで動...続きを読む

QPythonの関数が全然全く分かりません。

Python入門サイトの説明不足で私は悪くありません。
私の理解力がないわけではありません。

定義、呼び出し、結果から推測するに
呼び出しの第二引数から変数=代入まで*argumentsに文字列が入ってますが
例えば*a,*bと関数を定義した場合どのように*aと*bの判断するのでしょうか?
def cheeseshop(*a,*b)
cheeseshop("aaaaaaa","iiiiiiiiii","uuuuuuuu","eeeeeeeee","oooooo")

**keywords(ポインタのポインタ)は変数名と文字列を引き込んでますよね?
keysで変数名を引き出しsortedで昇順ソート
そして、ここからが難解なのですが
for kw in keys:
print(kw, ":", keywords[kw])
kwにkeysの文字列を代入しているのはわかりますが
keywords[kw]はどんな動きをしているのですか?
最初のループではkeywords["Michael Palin"]ってことですよね?わけが分かりません。

明らかに前提知識が不足していますがpython3の入門サイトが
http://docs.python.jp/3/tutorial/controlflow.html#more-on-defining-functions
以外見つからず悪戦苦闘してます。


#定義
def cheeseshop(kind, *arguments, **keywords):
print("-- Do you have any", kind, "?")
print("-- I'm sorry, we're all out of", kind)
for arg in arguments:
print(arg)
print("-" * 40)
keys = sorted(keywords.keys())
for kw in keys:
print(kw, ":", keywords[kw])

#呼び出し!
cheeseshop("Limburger", "It's very runny, sir.",
"It's really very, VERY runny, sir.",
shopkeeper="Michael Palin",
client="John Cleese",
sketch="Cheese Shop Sketch")


#結果
-- Do you have any Limburger ?
-- I'm sorry, we're all out of Limburger
It's very runny, sir.
It's really very, VERY runny, sir.
----------------------------------------
client : John Cleese
shopkeeper : Michael Palin
sketch : Cheese Shop Sketch

Python入門サイトの説明不足で私は悪くありません。
私の理解力がないわけではありません。

定義、呼び出し、結果から推測するに
呼び出しの第二引数から変数=代入まで*argumentsに文字列が入ってますが
例えば*a,*bと関数を定義した場合どのように*aと*bの判断するのでしょうか?
def cheeseshop(*a,*b)
cheeseshop("aaaaaaa","iiiiiiiiii","uuuuuuuu","eeeeeeeee","oooooo")

**keywords(ポインタのポインタ)は変数名と文字列を引き込んでますよね?
keysで変数名を引き出しsortedで昇順ソート
そ...続きを読む

Aベストアンサー

ええと、まずは。

> **keywords(ポインタのポインタ)は変数名と文字列を引き込んでますよね?

引き込んでません。
と言うか、大前提として、Pythonには「ポインタ」がないのです(笑)。

実はこの * とか ** とか言うのはC言語で言うポインタじゃなくって、可変長引数とその仲間だ、と言う意味です。

*の使用例:

>>> def foo(*a):
    return a

>>> foo(1, 2, 3, 4, 5)
(1, 2, 3, 4, 5) # a に与えられた引数はタプルとして表現される
>>>

上のように、引数aを指定してても、これは*で可変長引数だ、と言ってるので、引数は(理論上は)何個でもツッコんで大丈夫だ、って事です。

一方、**は次のような「キーワード引数」(C言語にはない)と言う指定です。
これは、またもや「C言語だとわざわざ実装しなきゃいけない」ハッシュテーブル(Pythonでは辞書型と呼ぶ)への引数として機能します。

>>> def bar(**b):
    return b

>>> bar(教えて="goo", OK="WAVE")
{'教えて': 'goo', 'OK': 'WAVE'} # Pythonのハッシュテーブルの表記

教えて="goo"と言う指定がハッシュテーブルのキー、'教えて'とその値'goo'、OK="WAVE"と言う指定が'OK'と言うハッシュテーブルのキー、'WAVE'がその値になってるのが分かるでしょうか。

この辺は次の部分をお読み下さい。

キーワード引数:
http://docs.python.jp/3/tutorial/controlflow.html#keyword-arguments

任意引数リスト:
http://docs.python.jp/3/tutorial/controlflow.html#arbitrary-argument-lists

> for kw in keys:
   print(kw, ":", keywords[kw])
> kwにkeysの文字列を代入しているのはわかりますが
> keywords[kw]はどんな動きをしているのですか?

んー、なるほど、ちょっとC言語なんかに比べるとちょっと高度な事やってるかもしれませんね。
まず大前提としては。構文は似てるんですが、PythonのforはC言語のforとはちょっと違うんです。こいつはイテレータ(繰り返し機能)を呼び出しす役目を担っていて、実は「繰り返し要素」を持ってるのはデータ型(この場合はkeysと言うリスト)に含まれてる「イテレータ」の方なんですね。

先ほど見ましたが、Pythonでのハッシュテーブル、辞書型自体が「イテレータ」としての情報を持っています。
キーワード引数によって与えられた引数は、このコードの場合、内部的には次のような「辞書型」を持つようになっています。

keywords = {'shopkeeper': 'Michael Palin', 'client': 'John Cleese', 'sketch': 'Cheese Shop Sketch'}

Cでハッシュテーブルの実装経験があるのでしたら、先ほどにも説明した通り、

キー: 値

の組が3つ、keywordsと言うハッシュテーブルに入っています。
ここからキーだけを取り出すメソッド(C++で言うとメンバ関数)が、keys()です。

>>> keywords.keys()
dict_keys(['shopkeeper', 'client', 'sketch'])

ハッシュテーブルのキーだけが取り出されていますね。
んで、ハッシューテーブルは、繰り返しますが、Cでの実装経験がおありでしたら、「データの格納方法」はアルゴリズム上での「任意」で、順番は保証されていません。これは検索用データ構造、って前提から言ったらオーケーで、要は検索して速く値を返すのがハッシュテーブルの本懐で、「データ格納の順番は重要ではない」と言う事の裏返しです。
従って、キーを取り出してもそいつが「アルファベット順に整然とならんでる」保証がないんですね。だからソートしてるんです。

>>> keys = sorted(keywords.keys())
>>> keys
['client', 'shopkeeper', 'sketch']

そして、Pythonでのハッシュテーブルでの値の取り出し方、です。
これはCの配列の参照のような形式で書きます。

>>> keywords['client']
'John Cleese'
>>> keywords['shopkeeper']
'Michael Palin'
>>> keywords['sketch']
'Cheese Shop Sketch'
>>>

ハッシュテーブルkeywordsにキーを与えたらその値が返ってきてるのが分かるでしょう。
そうすれば、

keys = sorted(keywords.keys())
for kw in keys:
  print(kw, ":", keywords[kw])

と言うのは

1. キーワードからキーだけ取り出して、アルファベット順にソートしたリストkeysを作る
2. リストkeysに含まれてる要素(取り敢えずkwと呼ぶ)に対して

  「keysに含まれる要素(kw), ":" ハッシュテーブルからkwに対する値を呼び出し」

を順繰りに印字せよ

となってるのが分かるのではないでしょうか。

多分Pythonのハッシュテーブル(辞書型)にも慣れてない感じがするんで、次のページを参考にしてください。

辞書型:
http://docs.python.jp/3/tutorial/datastructures.html?highlight=%E8%BE%9E%E6%9B%B8%E5%9E%8B#dictionaries

> 明らかに前提知識が不足していますがpython3の入門サイトが
> http://docs.python.jp/3/tutorial/controlflow.htm …
> 以外見つからず悪戦苦闘してます。

では次のサイトを紹介しておきます。

Dive Into Python 3 日本語版:
http://diveintopython3-ja.rdy.jp

ええと、まずは。

> **keywords(ポインタのポインタ)は変数名と文字列を引き込んでますよね?

引き込んでません。
と言うか、大前提として、Pythonには「ポインタ」がないのです(笑)。

実はこの * とか ** とか言うのはC言語で言うポインタじゃなくって、可変長引数とその仲間だ、と言う意味です。

*の使用例:

>>> def foo(*a):
    return a

>>> foo(1, 2, 3, 4, 5)
(1, 2, 3, 4, 5) # a に与えられた引数はタプルとして表現される
>>>

上のように、引数aを指定してても、これは*で可変長引数だ、...続きを読む

Q家庭で楽しむプログラミング C#は?

Windows上で、あくまでも趣味でプログラミングを楽しみたいと思っていますが、
最近はC#の開発環境が無料で手に入るのですね。
下記の経験しかない初心者にとってはどうでしょうか。C#はとっつきにくいですか?

Microsoft QuickBasic
VisualBasic 2.0、5.0、6.0
LSI-C86試食版(MS-DOS)
シャープMZシリーズのHu-Basic、S-BASIC
Z80アセンブラ
PICアセンブラ
組み込み用マイコン(PIC)のMPLAB開発環境のCなど(ANSI-C)

ゲームは作りませんが、画面上にグラフを表示したり、自作のUSB機器やシリアル接続の回路との通信をするのが主な目的です。

「C#って何?」というところから、理解できていませんのでよろしくお願いします。

Aベストアンサー

結局は慣れと熱意の問題になりそうな気もしますが……。

>「C#って何?」というところから

大きめな本屋に行ってC#の入門書を数冊立ち読みしてみる。
というのがとっかかりとしてはいいんじゃないでしょうかね。

私の場合、C言語は(普通に仕事で使える程度には)そこそこで、
C++も、まぁなんとなく読める(クラス設計だの継承だのになるとちょっと怪しくなる)程度で…
Delphiも、まぁなんとか……って程度ですが、入門書2冊でとりあえず業務に必要な程度のモノは作れてます。
C言語+Win32APIでゴリゴリ書いていた経験から言うとC#でWindowsアプリ作るのは楽ですね。
# たいていのことはフレームワークがやってくれますし。

>自作のUSB機器やシリアル接続の回路との通信をするのが主な目的です。

で、業務ではシリアル通信がメインですね。
組み込み機器向けの制御用だったりするので。
C言語+Win32APIでシリアル通信…だと、ちょっと考えたくはないですねぇ。
# 扱ったことなかったし。

QPython(初心者)

Pythonを始めようと思っています。
Pythonについてきた『Python チュートリアル』を読んだのですが
リスト、クラス、スライス、タプル、辞書をどういう時に使ったらいいのか良く分かりませんでした。

どういう時に活用したらいいのか教えてください。

Aベストアンサー

とりあえず、

list: 配列が無いので代わりに
class: グローバル変数が無いので状態を保存するときに必須。クロージャ-と関係が深いがそのことはとりあえず知らなくて良い。
slice: 文字列の部分使用
tuple: 構造体
辞書: 簡易オンメモリデータ-ベース

Q最近、CプログラミングをVisualStdioを使って勉強しています。

最近、CプログラミングをVisualStdioを使って勉強しています。
教科書のプログラムを作る問題を解いているのですが・・・

教科書の実行結果では

64+14=78   64-14=50
64*14=896  64/14=4
と横に表記されているのですが、

私がプログラムを作って実行すると、

64+14=7864-14=50
64*14=89664/14=4
と表示されてしまいます。

改行¥nを入れたとしても、
64+14=78
64-14=50
64*14=896
64/14=4
と表示されてしまいますし・・・

教科書のようにそっくりそのままプログラムを作ることは可能なのでしょうか?
教えていただけると助かります。

Aベストアンサー

出来ますよ。
プログラムですから、色々やり方はあります。

簡単にやるのはつまらないですから、少し手の込んだ方法で考えれば、

表示する物をキャラクターのテーブルでフォームを作って、そこに一文字づつ書き込んで表示したって良い訳です。

つまり、
□□□□□□□□□□□□□□□□□□□□と言うキャラクタエリアを作って、
1行を左10マスと右10マスと考え、式をキャラクタベースで指定の位置から書き込んでいけば良い訳です。
右の式は、左から11マス目から書き込んでいくようにすればよいわけですね。
C言語であれば、めんどくさいように見えますけど、この方式でもストラクチャを使えば、簡単に造る事だって出来ますよ。

まぁ、もっと簡単にやる方法もありますけどね。
ただ答えを書いたのでは勉強にならないでしょう?
柔軟に考えられなければ、ソフト屋なんで出来ませんからね。

QGoogle App EngineのPython

これからPythonを使ってGoogle App Engineを試してみようと思っています。

ブログなどを見ていると、GAEのPythonのバージョンが2.7対応になった、という事ですが、
実際にGoogleの説明ページに行くと、
「Python SDK は、Python 2.5 がインストールされているパソコンで動作」という記述のままです。

http://code.google.com/intl/ja/appengine/docs/python/gettingstarted/devenvironment.html

これからPythonでGAEを始める場合、
インストールするPythonのバージョンは、「2.5」と「2.7」のどちらがいいでしょうか??


教えて下さい。

Aベストアンサー

Google App Engine の日本語ドキュメントは翻訳が遅れているので
英語版の方を見てください。
http://code.google.com/intl/en/appengine/docs/python/gettingstartedpython27/

GAEの実装としてPython2.7とPython2.5は別のランタイムとして扱われていて、
使えるライブラリや機能が少し異なります。
この両者を切り替えるにはちょっとした移植作業が伴うことを覚えておいてください。

日本語の情報の多さを優先するのであれば2.5です。
とくにGAEがリリースされたころの書籍や情報がそのまま使えます。
ただ2.5というPythonのバージョン自体がかなり古いのがやっかいです。

便利で高機能なものが使いたいのであれば2.7です。
こちらはPython2.x系統の最終バージョンなので
これも長く保守されることになると思っています。
まだ Experimetal! 状態なので今後大規模な変更が行われる可能性も少しあります。
さらに日本語の情報に乏しいのが欠点です。

何か今すぐに作りたいものがあるなら2.7
学習のしやすさを優先するなら2.5
というふうに選んでみてはどうですか。

Google App Engine の日本語ドキュメントは翻訳が遅れているので
英語版の方を見てください。
http://code.google.com/intl/en/appengine/docs/python/gettingstartedpython27/

GAEの実装としてPython2.7とPython2.5は別のランタイムとして扱われていて、
使えるライブラリや機能が少し異なります。
この両者を切り替えるにはちょっとした移植作業が伴うことを覚えておいてください。

日本語の情報の多さを優先するのであれば2.5です。
とくにGAEがリリースされたころの書籍や情報がそのまま使えます。
ただ2.5...続きを読む

Qpython プログラミング

pythonで、
def CircleArea():
a=r*r*3.14
print(r,a)
というプログラムをunixのvimでcircle.pyで保存しました。
今度はこれをpythonで実行したいと思って, ターミナルに, circle.pyと入力しましたが, 実行しません。どうすればよろしいでしょうか?
よろしくお願いします。

Aベストアンサー

まずエラーが出る原因から、
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))

まずエラーが出る原因から、
u=parallax(a)
ですが、関数名はParallaxと大文字から始まっているので、合わせてください。また引数がaになっていますが、sのはずです。
それと、
t=float(input("b?")
は)が不足しています。

次に改良点ですが、
printの中でまたにParallax(s)が呼ばれていますので、uに変更しました。
もうひとつ関数の中の数値が整数型になっています。このプログラムでは問題はないのですが、もし整数/整数を実行した場合には、結果が浮動小数点にならずに整数で切り捨てられてしまいますので大...続きを読む


人気Q&Aランキング

おすすめ情報