プロが教えるわが家の防犯対策術!

Pythonで、a=str(a)と、str(a)の違いは、元のaの型が変わるかどうかでしょうか? 教えて頂けると幸いです。で、a = str(a)は、変数aの内容を文字列に変換して、再び、aに代入します。
a = 3だとすると、print(a*2)を実行すると、 33と表示されます
str(a)は、変数aの内容を文字列に変換するだけです。
a = 3だとすると、print(a*2)を実行すると、 6と表示されます。
の所の解説を教えて頂けると幸いです。

A 回答 (2件)

> Pythonで、a=str(a)と、str(a)の違いは、元のaの型が変わるかどうかでしょう



間違ってはいないですが、ニュアンスが違います。
「aの型が変わる」というより[aに代入されている「物」が変わる」ということです。型は「物(オブジェクト)」の属性。

a = サザエさん ・・・・・サザエさんが a と書いた名札を付けた
a = 配偶者(a)・・・・・・マスオさんがそのaと書いた名札を受け取って付けた
print(a)・・・・・・aの名札をつけてるのはマスオさんなのでマスオと表示される

だと、「a の性別が変わった」じゃなくて「a の人が変わった」です。結果的に性別も変わってますけど。
数値の 3 と文字列の "3" は、同じような物に見えるかも知れませんが、全く異なる別の物です。(区別しないプログラミング言語もありますが)

a = サザエさん ・・・・・サザエさんが a と書いた名札を付けた
print(配偶者(a))・・・・・aの名札の人の配偶者はマスオさんなので、マスオと表示されるが、a と書いた名札はサザエさんが付けたまま
    • good
    • 0
この回答へのお礼

その例でいうと、前者が、33で、後者が、6という事でしょうか?教えて頂けると幸いです。

お礼日時:2024/01/10 21:58

>a=str(a)と、str(a)の違いは、元のaの型が変わるかどうかでしょうか?



python は型が動的な言語なので、
変数自体は型を持ちません。

型はデータ(オブジェクト)が持ちます。

a=str(a)

では、元の a が int 型オブジェクトを指す「参照」を持っていたなら、
str(a) は int 型オブジェクトから str 型のオブジェクトを作り、
その「参照」がa に代入されます。

aの中に データ(オブジェクト)が直接入っている
わけではないのに注意。
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A