• 締切済み

【初歩的】関数について

初心者のくせに、Pythonでプログラムを学びだしました。 すっごく初歩的な質問なんですが、 Pythonには int()という文字列を数字に変換する関数があるのですが、 a="4232"を数字に 変換するとき、 int(a)とやるみたいですが、 a.int()ではダメなんですか? 違いがわかりません。 また、一部だけ指定してやるとき、 a.int("32")とやればいいのですか? このへんで混乱しているので、 わかりやすくご教授してください。

みんなの回答

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.1

>int(a)とやるみたいですが、 >a.int()ではダメなんですか? やってみましたか? >>> x = "123" >>> x '123' >>> type(x) <type 'str'> >>> x.int() Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: 'str' object has no attribute 'int' >>> dir(x) ['__add__', '__class__', '__contains__', '__delattr__', '__doc__', '__eq__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__getslice__', '__gt__', '__hash__', '__init__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__str__', 'capitalize', 'center', 'count', 'decode', 'encode', 'endswith', 'expandtabs', 'find', 'index', 'isalnum', 'isalpha', 'isdigit', 'islower', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill'] >>> Pythonの場合、文字列オブジェクトにはint()というメソッドはありませんから エラーになると言うわけです。 前者は関数を呼び出しますが、後者は . の前のオブジェクトのメソッドを呼び出します。

ionwide
質問者

お礼

ありがとうございました

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 初歩的な関数の質問です

    A列にある数字で23の数字の場合は2 22の数字の場合は1 そのほかの数字は3として認識させて計算をさせたいのですがどういう式になりますか? 初歩的ですみません。

  • excelの関数で割り算をしたいのですが…

    初歩的な質問ですいません。 縦の列で(A1~A100みたいな感じです) 数字があるのですが その列それぞれの数字を同じ数で割りたいのですがどうすればいいでしょうか? 10 8 6 4 2 1 って並んでたら、すべてそれぞれ2で割ると 5 4 3 2 1 みたいにしたいのですが… 関数とか使うのでしょうが、分かりません。 初歩的ですいませんがよろしくお願いします。

  • c言語 int型の数字をchar型の配列に

    c言語についてです。 int型の数字をchar型の配列に入れたいです。 関数に対してint型の数字を文字列として渡し、 関数内でchar型の配列に格納したいです。 例として、 a(char a[]){  ~~  ~~ } int main(void){ int x = 5678;  ~~  a(x); } とできるようにしたいです。 しかしこれだと5678という値がそのままchar型の一つの配列に入る?ため正しくないです。 欲しい結果としてはちゃんとa関数内で、 a[1] = '5' a[2] = '6' a[3] = '7' a[4] = '8' となってほしいです。 もともと渡す値が”5678”となっていれば結果は正しく出るのですが、 渡す値がint型と決まっているためどうにかして5678を”5678”とすればいいのではないかと考えています。 つまり5678を単純に文字列に変換すればいいのでしょうか? またプログラム内ではsprintfやatolを使用しないで実現させたいです。 難しいかもしれませんがお願いします。 なんだか説明が下手ですみません。 お願いいたします。

  • これまた初歩的なことかもしれませんが^^;

    Cです。今作成中の、カレンダーを表示させるプログラムの一部なのですが、それを以下に書きます。 ――――――――――――――― int day_of_week(int year, int month, int day) { int a, i, days1 = 0, days2 = 0, alldays, wk; a = (year - 1)/4; days1 = a * 366 + (year - 1 - a)*365 - (year - 1)/100 + (year - 1)/400; for(i=1; i< month ; i++) days2 += day_of_month(year, i); alldays = days1 + days2 + day; wk = alldays % 7; return(wk); } int write_cal(int year, int month) { /* !!! */ } ――――――――――― 関数write_calで、関数day_of_weekの戻り値wkをつかいたいのですが、!!! にそのままday_of_week(int year, int month, int day)を入れると当然コンパイルエラーになります。初歩的なことをわすれているのかもしれませんが、ポインタなどもつかっていいのでやりかた教えてください! int write_cal(int year, int month, int day) にするというのはナシでお願いします

  • 関数呼び出しについて

    今cygwin 上でC++の勉強をしているのですが 以下の2つのプログラムの違いがよくわかりません どなたかよろしくお願いします <プログラム1> #include<iostream> using namespace std; int a(); int main(){ cout << abs();  return 0;} int a(){ cout << "test\n";  return 1;} <プログラム2> #include<iostream> using namespace std; int a(int i); int main(){ cout << a(1);  return 0;} int a(int i){ cout << "test\n";  return i;} プログラム1では関数a()内の"test"が出力されるのですが プログラム2ではa(int i)内の"test"は出力されません。 この違いはどこにあるのでしょうか? 同じプログラムでint a() と int a(int i)を double a() と double a(double d)にすると この違いは生じません。なぜaの戻り値をint に設定したときだけ この違いが生じるのでしょうか?

  • Rand関数を使って

    A1のセルに=int(rand()*100+1)という関数を使って1から100までのランダムな数字を入れるようにしました。A2からA101までに連続した 1~100までの数字が入力してあります。 B列には、氏名が入力してあります。 で、A1に出たランダムな数値の行に色をつけたいのですが、マクロの書き方がわかりません。 どなたか教えていただけないでしょうか。 よろしくお願いいたします。

  • EXCELの関数

    EXCELで、Aの列に○、Bの列に×がある行のCの列の数字を返す関数の使い方があれば、教えて下さい。 AとCの二つの列だけだと、VLOOKUPという関数を使えばAが○の時のCの数字を返す事ができるという事までは分かりましたが、Aの列に○がある行が2つ以上ある場合(Aの列が○で、Bの列が△である行を無視したい場合)、そのまま使うことができなくて困っています。 かなり初心者なので、申し訳ありませんが、よろしくお願いします。 例 ○   △   5 ×   □   3 ○   □   4 ○   ×   1 上のような行が無数に並んでいる場合で、左の列と真ん中の列の組み合わせが1つしかない時、左の列と真ん中の列の文字を指定した時の右の列の数字を返したい。

  • エクセルの関数

    A列に数字が数字が入っています  B列にもA列に近い数字が入っています たとえば A2に51 B2に50  の場合 C2には51と表示 A3に32 B3に34  の場合 C3には34と表示 したいのです。 ようするに 同じ横の数字で C列に関数を入れて A列とB列を比べて 大きな数字の方を入どんな関数をいれたらいいでしょうか?

  • Excelの関数で?

     Excelの関数で、このようなことは可能ですか?可能であれば、どのように書けば良いのか教えてください。 A列に  10.0 15.2 100.3 のような小数点を含んだ数字が入っています。 これをB列に 10R0 15R2 100R3 のように小数点をRに変換して記入したいのですが。 ちなみに、A列は数値です。

  • 16進数関数のhex関数について

    16進数を扱う、「hex」という関数があったようななかったような・・・。 16進数の文字列を、例えば、「"0a"」という文字列が あって、この"0a"の前に"0x"という文字列を付け足して"0x0a"とし、この"0x0a"を10という整数値に変換したいのですが、どのようなソースファイルになりますか。 初心者なので、どうプログラムを組んで良いのか分かりませんでしたので、教えて下さい。