キャストについて
pythonを昨日学び始めた学生です
わからないことが多く、自分は忘れやすいので備忘録をつけることにします。
今回のコードの内容
c_1,c_2が与えられ、それはアルファベット大文字一文字あるいは数値である
両方とも数値であった場合和演算し、それ以外ならそのまま結合する
最初書いた間違ったコード
c_1 = input()
c_2 = input()
if c_1.isdigit() and c_2.isdigit():
int(c_1)
int(c_2)
sum = (c_1 + c_2)
print(sum)
else:
print(c_1 + c_2)
キャスト(型変換は)宣言した変数を変えるのではなく
その答えを返す?だけなのでそれ以降のコードに影響がない
具体的には
入力値
1
9
コード
int(c_1)#str->int
int(c_2)#str->int
#この時点で型変換をした答えを返したが受け取れていないので以降に影響がない
sum = (c_1 + c_2)
print(type(c_1))
print(type(c_2))
print(sum)
結果
<class 'str'>
<class 'str'>
19
となり、先頭でいくらキャスト(型変換)してもそのあとのコードには影響されていないことがわかる。
修正したコード
c_1 = input()
c_2 = input()
if c_1.isdigit() and c_2.isdigit():
print(int(c_1) + int(c_2))
else:
print(c_1 + c_2)
出力するprint関数内でint()を記述した
(sumいらなかった)
python所感
勝手に色々やってくれる
演算なしで出力する場合int,char,floutとか意識しないでそのままinput,printできたとき感動した。
さいごに
解釈が間違っていたり、こうしたほうがいい、
などご意見あったらお願いします