class Idiot:
__init__(self,x,y,z):
self.name = x
self.sex = y
self.why = z
printing_idiots(self):
print('{} is so idiot.'.format(self.name))
print('{0} is {1}.'.format(self.name,self.sex))
print('Why is he idiot,{}'.format(self.why))
setting_idiots_data(self):
print("What is idiot's name?")
self.name = input()
print("What is idiot's sex?")
self.sex = input()
if (self.sex = men):
print('Why is he idiot?')
self.why = input()
elif (self.sex = woman):
print('Why is she idiot?')
else:
print('you are a bullsit guy!')
idiot = Idiot()
idiot.setting_idiots_data()
idiot.printing_idiots()
このソースコードのイニシャライザの部分でエラーが出ている。
プログラミング超初心者の質問
■ このスレッドは過去ログ倉庫に格納されています
1名無しさん
2021/03/26(金) 19:47:53.89ID:UdurcVDt125デフォルトの名無しさん
2021/06/04(金) 18:07:07.71ID:aBiHmFjq >>121
雑だけど
まず今のCPUは便利なんで引き算も掛け算も割り算もコマンドで実施できるけど、
H/W的な仕組みで言うと本来足し算しか出来なくて、数値の表現も+とか-とか
存在しないんよ
なので一定のビットの塊、例えばshort型ならば16birtで数値を表現する場合、
16ビットで65535って数値まで表現できるけど、人間が-数値と認識できる表現と
して最上位ビットが立っていたら-、立っていなかったら+って決めることで
-1から-32768と0から32767を表すって決めたんだいな
決め事なんでなんでって言われても困るんだけど
で、足し算しか出来ない環境でどう引き算をするかっていうと、3から5を引くと
答えは-2なわけだけど
話を簡単にするために4ビット表現で0111が7、1111が-1、符号なしだと1111で
15ってシステムで考えると
3から5を引かずに、15から3引いて1足して5を足すと数値的には5ビット分に
なるので下4ビットだけ取り出す
桁があふれたら-、あふれなかったら+の値ってなる(分からないねw)
15は1111で3を引くと1100、これは3(0011)をビット反転させるのと同じこと
この操作を補数表現といって、理屈はともかく元の数をビット反転すれば良い
15から3引いて5を足すと17(10001)ってなるけど、数値は4ビットでは15まで
しか表現できないので17から15を引くと余りが2になり余分なビットがあるので-2
あふれたビットを引く行為は16を引くことになり1多く引かなければならないので、
最初に補数に1足しておく
この補数に1足したものを2の補数というだいな
まとめると3-5が0011(3)->1100(3を補数化)+0001(2の補数にする)+0011(5)で
10010になって、下4ビットを取り出して0010、あふれた桁を最上位ビットに入れると
1010で-2になると
かえって分かりにくいか?
雑だけど
まず今のCPUは便利なんで引き算も掛け算も割り算もコマンドで実施できるけど、
H/W的な仕組みで言うと本来足し算しか出来なくて、数値の表現も+とか-とか
存在しないんよ
なので一定のビットの塊、例えばshort型ならば16birtで数値を表現する場合、
16ビットで65535って数値まで表現できるけど、人間が-数値と認識できる表現と
して最上位ビットが立っていたら-、立っていなかったら+って決めることで
-1から-32768と0から32767を表すって決めたんだいな
決め事なんでなんでって言われても困るんだけど
で、足し算しか出来ない環境でどう引き算をするかっていうと、3から5を引くと
答えは-2なわけだけど
話を簡単にするために4ビット表現で0111が7、1111が-1、符号なしだと1111で
15ってシステムで考えると
3から5を引かずに、15から3引いて1足して5を足すと数値的には5ビット分に
なるので下4ビットだけ取り出す
桁があふれたら-、あふれなかったら+の値ってなる(分からないねw)
15は1111で3を引くと1100、これは3(0011)をビット反転させるのと同じこと
この操作を補数表現といって、理屈はともかく元の数をビット反転すれば良い
15から3引いて5を足すと17(10001)ってなるけど、数値は4ビットでは15まで
しか表現できないので17から15を引くと余りが2になり余分なビットがあるので-2
あふれたビットを引く行為は16を引くことになり1多く引かなければならないので、
最初に補数に1足しておく
この補数に1足したものを2の補数というだいな
まとめると3-5が0011(3)->1100(3を補数化)+0001(2の補数にする)+0011(5)で
10010になって、下4ビットを取り出して0010、あふれた桁を最上位ビットに入れると
1010で-2になると
かえって分かりにくいか?
126デフォルトの名無しさん
2021/06/05(土) 01:44:06.37ID:MUSr8GWf 最上位ビットが±を表すのを決めたわけではなく、2の補数を使うのを決めたからそうなってるだけでは
127デフォルトの名無しさん
2021/06/05(土) 13:53:06.28ID:L4Bl9jnp >>121
4ビットで考ます。4ビットでは 2の4乗=16で16とおりの表現が可能です。
正の数のみ(UINT)を扱う場合は、0~15の数値を通常 0000を数値0、0001を数値1、....
、1111を数値15 に割り当てます(以降連続する4文字の0、1は計算機上の値、それ以外は論理上
の数値)。
正と負の数(INT)を考える場合は-8~7(-7~7)を0000~1111に割り当てるわけですがUINTとの
整合性をとるため0000~0111は0~7に割り当てます。残りの 1000~1111を負の数に割り当てる
ことになりますが、これには1000~1111をそれぞれ -0~-7(絶対値)、-7~-0(1の補数)、
-8~-1(2の補数) に割り当てる3とおりの表現方法があります。
いずれも最上位ビットが負数を意味します。また絶対値と1の補数には-0が存在します。
1の補数は数値を符号反転(正->負、負->正)するときおのおののビットを反転(0->1、1->0)
すればよく、2の補数はおのおののビットを反転し1を加えればよい という性質があります。
人間的には絶対値表現がわかりやすのでしょうが、下記のように演算のハードウエアが簡単で
すむという理由で計算機では2の補数が用いられます(1の補数は-0の処理がやっかい)。
減算を実行する場合、計算機に限らず、減数を符号反転して被減数に加えても結果は同じです。
2の補数ではA-BをA+(Bの符号反転+1)として演算します。
計算機の中の加算器はC+D+Cary を実行するように構成されます。Caryは桁上げビットであり、
最下位ビットだけ 3ビットの加算ができるわけです。桁上げのない加算を行うときは Cary入力を0に
して演算します。減算するときはDの入力値を反転して1を加えるわけですが、反転は各ビット毎に
XORゲートで行います(減算だけなら反転ゲートでよいが加算も減算も行うので通常はXORを使う)。
1を加える処理は別の加算器を用いなくともCary入力を1にすることで達成できます。
減算を実行するためにXORゲートの追加が必要になりますが加算器に比べれば規模は1/3程度です。
注. 計算機の中の 0000~1111の値を論理上どう考えるかは自由。0000~1111を2進数と考え
そのまま対応する数値0~15を割り当てる場合ばかりではない。 --->グレイコード
4ビットで考ます。4ビットでは 2の4乗=16で16とおりの表現が可能です。
正の数のみ(UINT)を扱う場合は、0~15の数値を通常 0000を数値0、0001を数値1、....
、1111を数値15 に割り当てます(以降連続する4文字の0、1は計算機上の値、それ以外は論理上
の数値)。
正と負の数(INT)を考える場合は-8~7(-7~7)を0000~1111に割り当てるわけですがUINTとの
整合性をとるため0000~0111は0~7に割り当てます。残りの 1000~1111を負の数に割り当てる
ことになりますが、これには1000~1111をそれぞれ -0~-7(絶対値)、-7~-0(1の補数)、
-8~-1(2の補数) に割り当てる3とおりの表現方法があります。
いずれも最上位ビットが負数を意味します。また絶対値と1の補数には-0が存在します。
1の補数は数値を符号反転(正->負、負->正)するときおのおののビットを反転(0->1、1->0)
すればよく、2の補数はおのおののビットを反転し1を加えればよい という性質があります。
人間的には絶対値表現がわかりやすのでしょうが、下記のように演算のハードウエアが簡単で
すむという理由で計算機では2の補数が用いられます(1の補数は-0の処理がやっかい)。
減算を実行する場合、計算機に限らず、減数を符号反転して被減数に加えても結果は同じです。
2の補数ではA-BをA+(Bの符号反転+1)として演算します。
計算機の中の加算器はC+D+Cary を実行するように構成されます。Caryは桁上げビットであり、
最下位ビットだけ 3ビットの加算ができるわけです。桁上げのない加算を行うときは Cary入力を0に
して演算します。減算するときはDの入力値を反転して1を加えるわけですが、反転は各ビット毎に
XORゲートで行います(減算だけなら反転ゲートでよいが加算も減算も行うので通常はXORを使う)。
1を加える処理は別の加算器を用いなくともCary入力を1にすることで達成できます。
減算を実行するためにXORゲートの追加が必要になりますが加算器に比べれば規模は1/3程度です。
注. 計算機の中の 0000~1111の値を論理上どう考えるかは自由。0000~1111を2進数と考え
そのまま対応する数値0~15を割り当てる場合ばかりではない。 --->グレイコード
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 機動戦士ガンダム最新作『GQuuuuuuX(ジークアクス)』乃木坂46ネタで炎上 監督の鶴巻和哉氏は乃木坂ファン ★9 [Anonymous★]
- 【速報】永野芽郁がNHK大河「豊臣兄弟!」出演辞退 女優業は事実上、活動休止へ…不倫疑惑余波ドラマにも [Ailuropoda melanoleuca★]
- 反撃の中居正広、一世一代の大勝負へ 元フジ女性アナとは「合意の上での性行為だった」と認識 ★20 [Ailuropoda melanoleuca★]
- なぜ人は“飲食店でのスマホ注文”に不満を抱くのか?「通信料がかかる」「細かいカスタマイズができない」「LINE登録なんて絶対嫌」 ★2 [ぐれ★]
- 【芸能】マックのハッピーセット、おもちゃ目当てに食品を放置…大量廃棄の映像拡散 猪狩ともかも怒りの声「転売ヤー滅びて」 [ぐれ★]
- 【埼玉】「大丈夫、と言ったのでその場から離れた」 男児4人重軽傷のひき逃げ事件で車を運転していた42歳の中国籍の男逮捕 三郷市 ★2 [ぐれ★]
- 【悲報】万博の虫さん、遂にフランスパビリオン内に侵入、展示作品にびっしりと張り付く🪰🥺 [359965264]
- 女さん「室内でやるスポーツが好きです」おじさん「膣内で?www」
- 自民党さん、財源を無視して減税を叫ぶ一般国民にかなりイラついてる模様… この国にはもう財源がない [452836546]
- 謎の人「大麻は安全だから。依存性無いから。」これ何なの? [237216734]
- ▶原点回帰ホロライブスレ
- (ヽ゜ん゜)「LGBTQを認めるならロリコンも認めろよ、ロリコンも多様性の一つだろ」👈これ論破できる??? [513133237]