質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

4回答

718閲覧

s=s.lower()とs=lower(s)の違いが分からない

matsu3pharma

総合スコア1

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/09/07 01:37

python初心者です。
いつも引数で混乱します。
例えば、
s=BOOK
という文字列を小文字にしたいときlowerという関数を使って小文字にしようとするのですが
s=s.lower()
はエラー無く正解なのに
s=lower(s)
ではエラーで成功しません。
私には
s=s.lower()とs=lower(s)の区別がつきません。
同じく文字列のsを引っ張ってきているような気がするのにどうしてs=lower(s)ではダメなのでしょうか?
このドットで使用する関数とかっこの中に入れて使用するものの区別をどうやって付けたらよいのでしょうか?
初歩的な質問ですみませんが考え方等教えていただけると助かります。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Zuishin

2021/09/07 01:51 編集

> このドットで使用する関数とかっこの中に入れて使用するものの区別をどうやって付けたらよいのでしょうか? 覚えていないのであれば、リファレンスで調べてください。 組み込み関数(lower 関数があればここに書いてあります) 組み込み関数の数は少ないので、何があるかくらいは覚えておいた方がいいと思います。 https://docs.python.org/ja/3/library/functions.html 文字列メソッド(s.lower メソッドがあればここに書いてあります) 文字列のメソッドもよく使うので、何があるかくらいは覚えておいた方がいいと思います。 https://docs.python.org/ja/3/library/stdtypes.html#string-methods
mather

2021/09/07 01:50

動作を確認したコードとエラーメッセージはきちんと提示しましょう。 おそらく s = "BOOK" のように文字列リテラルを使うべきですし、 lower(s) を実行したときにはエラーメッセージが出るはずです。
matsu3pharma

2021/09/07 01:55

すみませんs = "BOOK"でした。 エラーは定義されていません、と出ます。 私が知りたいのはs=s.lower()という感じに使うものと、例えばs=len(s)と使うものの違いです。 s=lower(s)は定義されていないとエラーが出ますが s=len(s)はきちんと文字数を数えてくれます。
Zuishin

2021/09/07 01:57

そりゃ定義されてなかったら定義されてないと言われるでしょう。 どこに不思議がありますか?
Zuishin

2021/09/07 02:33

佐藤歯科と志雄歯科との違いがわかりません。 佐藤歯科には普通に行けますが、志雄歯科に行ってくれとタクシーの運転手に行っても「そういうのは無いよ」と言われます。 なぜでしょうか? 無いからです。 無いのであれば行けないので、無いと言われるのが当然だと考えますが、あなたは違うのですか? あるか無いかを知らなければ、調べればいいだけではありませんか? 「自分の思った通りに書いたのに思った通りに動かない!」と癇癪を起しているんですか?
Zuishin

2021/09/07 02:34

Python はあなたに合わせて作られているのではありません。 プログラミングしたかったら、あなたが Python に合わせるんです。
matsu3pharma

2021/09/07 02:35

何かストレスでもかかえてみえるんですか?
Zuishin

2021/09/07 02:36

どう書いたら反応するか調べただけです。 見えているのに無視したということがわかりました。
Zuishin

2021/09/07 02:38

そもそも、何がわからないのかさっぱりわかりません。 常人が理解するには十分な回答が出ていると思うので、解決したならさっさとベストアンサーを決めてください。 これで解決しないというなら、あなたの抱えている根本的な問題を明らかにする必要があります。
quickquip

2021/09/07 02:57 編集

ぜんぜん違う書き方をしているものを持ってきて並べて「違いが分からない」という質問をしたら、この人は何を質問したいのかわからん、ってなるのは普通の反応だと思いますが。 質問の意図はわかるので、表題の付け方の問題が大きいという感じはあります。
quickquip

2021/09/07 03:00

あと質問は編集できるので、質問への追記・修正の依頼をされたら質問の方を編集しましょう。 > すみませんs = "BOOK"でした。 とか、この欄に返答する必要は特にありません。黙って質問を編集すればそれで大丈夫です。 謝意を書くのはいいですが、返答だけして質問をそのままにすると「依頼を無視してる」ように見えています。
guest

回答4

0

s=s.lower()という感じに使うものと、例えばs=len(s)と使うものの違い

s.lower()は文字列クラスのメソッドです。
len(s)は組込み関数のlenです。

そういうものがPythonの文法なのです。

Google翻訳してみてください。

彼は渋谷駅で電車を降りた。
→ He got off the train at Shibuya station.

私は地下室で本を読んだ
→ I read a book in the basement

どちらも同じ「で」なのに、なぜ片方は「at」でもう片方は「in」なのかわかりません、
といわれても、それが英語の文法だからというのと同じです。

投稿2021/09/07 02:17

ppaul

総合スコア24666

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

matsu3pharma

2021/09/07 02:37

ありがとうございます。 メソッドと関数がごっちゃになっていました。 あまり気にせず勉強を進めていこうと思います。
guest

0

ベストアンサー

lowerなどという関数は存在しません。
str.lowerはstrクラスのメソッドです。
強いて言えばstr.lower(s)と呼び出せば動きます。

クラスとオブジェクトについて勉強すればわかると思いますが、とりあえず今はs.lowerとlower(s)は交換可能でも同じ意味でもないということを覚えて置けばいいと思います。

投稿2021/09/07 02:20

kairi003

総合スコア1330

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

matsu3pharma

2021/09/07 02:35

ありがとうございます。勉強になります。
guest

0

s=lower(s)

ではエラーで成功しません。

エラーは「あったかなかった」の1ビットの情報しかもたらさないわけではありません。エラーメッセージを確認しましょう。

エラーメッセージを読んで調べれば、見えて来るものがあることも多いです。

投稿2021/09/07 01:41

maisumakun

総合スコア145208

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2021/09/07 02:04

> 私が知りたいのはs=s.lower()という感じに使うものと、例えばs=len(s)と使うものの違いです。 「物によって使い方は違うので、確認してから使う」ということになります。
guest

0

エラーが出るなら、区別は付きません、ではないでしょう。
間違っているからエラーが出るわけで、エラーが出ないような正しい使い方をしよう、としかいいようがないです。

投稿2021/09/07 02:00

y_waiwai

総合スコア87800

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問