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

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

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

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

9回答

1035閲覧

条件文:もし〜がAだけの場合

wakahide

総合スコア23

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2020/03/25 06:43

text = '~~~~~~~~~~~~~~~~~~~'が''だけの場合、
あるいはtextが'
'以外を含まない場合、
といった条件文はどう書けば良いでしょうか。

初歩的な質問ですみませんが宜しくお願いします。

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

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

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

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

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

nanami12

2020/03/25 07:05

ご自身でグーグルで調べましょう。 この程度の事を調べられないなら、コーディングできませんよ。
LouiS0616

2020/03/25 08:12

@nanami12 さん せめて『どんなキーワードで検索すれば良いか』くらいは教えてあげて下さい。
guest

回答9

0

efficiently checking that string consists of one character in Pythonで紹介されている方法です。

Python

1def all_equal(s): 2 l = len(s) 3 if l == 0: 4 return False # とりあえず空文字列はダメと判断 5 6 return s == l * s[0]

投稿2020/03/25 13:02

can110

総合スコア38341

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

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

hayataka2049

2020/03/25 17:15

これでcountするより速いんですね・・・勉強になりました。
guest

0

python3

1s = "~~~" 2print(s.replace("~",'') == "") 3# => True 4 5s = "~~x~~" 6print(s.replace("~",'') == "") 7# => False

投稿2020/03/29 05:18

katoy

総合スコア22324

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

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

0

集合型を利用するのが簡単でしょう。

Python

1>>> src = '~~~~~' 2>>> set(src) == {'~'} 3True 4>>> 5>>> src = '~~A~~' 6>>> set(src) == {'~'} 7False

投稿2020/03/25 08:13

LouiS0616

総合スコア35668

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

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

0

単一の文字であればstripで空文字を作れます。
textの中身が~だけであればFalseであり、ほかの種類の文字を含めばTrueです。

Python

1if text.strip('~'):

投稿2020/03/26 15:09

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

案1:正規表現を使う

Python

1import re 2 3if re.fullmatch("~*",text):

質問文の条件があいまいですが、textが空文字列の時にどちらに判断したいかによって、"~*""~+"か。

案2:削除して空文字列か?

Python

1if text.replace("~","")=="":

この場合は、textが空文字列の時には真と判断します。

投稿2020/03/25 10:44

otn

総合スコア85901

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

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

hayataka2049

2020/03/25 12:35

空文字列は偽なのでnot text.replace("~","")とも書けます。
guest

0

python

1if all(c == '~' for c in src): 2 do_something ()

が意味的にそのものスバリ(もしsrcに含まれるものが全て'~'に等しいなら、と読める)なのがよいかと思いました。

投稿2020/03/25 09:34

quickquip

総合スコア11235

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

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

0

ベストアンサー

Pythonの文字列にはstr.countという便利なメソッドがあり、特定の文字が何回出現するのかを調べるのに使うことができます。

python

1>>> "AAAA".count("A") 24

また、関数lenを使って文字列の長さを取得できます。

python

1>>> len("AAAA") 24 3

ということで文字列の長さと同じ回数だけ''が出現しているかどうかを調べれば、「textが''だけの場合」「あるいはtextが'~'以外を含まない場合」の判定ができると考えれば良いでしょう。

python

1>>> src = '~~~~~' 2>>> len(src) == src.count('~') 3True 4>>> src = '~~A~~' 5>>> len(src) == src.count('~') 6False 7

投稿2020/03/25 08:50

hayataka2049

総合スコア30935

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

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

0

問題の意図を完全に把握することができなかったので解答に相当するものかはわかりませんが

python

1text = 'AAA' 2textA = 'AAA' 3textB = 'AAABBB' 4 5# when its ok, texts equals each other. 6print("ok" if textA == text else "error") 7print("ok" if textA == textB else "error")

output

1$ python test.py 2>ok 3>error

投稿2020/03/25 08:34

MaSaKai

総合スコア11

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

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

0

文字列同士が完全一致かどうかということですか?

完全一致なら、==でできますよ。

text = 'aaa' if text == 'aaa': print('一致')

大文字小文字を区別しない場合には、文字列の後ろに.lowerもしくは.upperをつけると良いと思います。

text = 'aAa' if text.lower() == 'AAa'.lower(): print('一致')

投稿2020/03/25 06:55

編集2020/03/25 08:19
merll0573

総合スコア17

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

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

LouiS0616

2020/03/25 08:15

lowerはメソッドなので、'aAa'.lower == 'AAa'.lower は偽です。
merll0573

2020/03/25 08:18

あ,本当ですね.確認不足でした.ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問