str (변수)가 비어 있는지 확인하는 방법은 무엇입니까?


79

어떻게 만드나요 :

if str(variable) == [contains text]:

질환?

(또는 내가 방금 쓴 내용이 완전히 잘못되었다고 확신하기 때문에)

random.choice내 목록의 a가 ["",](비어 있음) 또는 포함되어 있는지 확인하려고합니다 ["text",].


무슨 뜻 if str(variable) == "my text":입니까?
Simon Bergot

당신은 약간 혼란스러워 보이는데, 나는 당신에게 파이썬 튜토리얼 을 읽으라고 권할 것 입니다.
Rik Poggi

답변:


155

문자열을 빈 문자열과 비교할 수 있습니다.

if variable != "":
    etc.

그러나 다음과 같이 축약 할 수 있습니다.

if variable:
    etc.

설명 :은 if실제로 사용자가 제공 한 논리식 True또는 False. 논리 테스트 대신 변수 이름 (또는 "hello"와 같은 리터럴 문자열)을 사용하는 경우 규칙은 다음과 같습니다. 빈 문자열은 False로 계산하고 다른 모든 문자열은 True로 계산합니다. 빈 목록과 숫자 0도 거짓으로 간주되며 다른 대부분은 참으로 간주됩니다.


헤헤, 나는 If, True, False의 원리를 이해합니다. 월드 오브 워크 래프트 3 트리거 편집기 '(본 기기가 그 단위와 동일) 경우 == 진정한'
user1275670

== True워크래프트 편집기에서도 그 부분을 생략 할 수 있을 것 같습니다.
alexis 2011

네. 실제로 hehe를 생각한 적이 없지만 이것은 분명히 도움이됩니다.
user1275670

이것은 동일하지 않습니다. 이러지 마세요. In [14] : a = ""In [15] : if a.replace ( '', '') : ... : print 1 ... : In [16] : if a.replace ( '', ' ') == "": ... : print 1 ... : 1
Brett Hardin

1
맞습니다, @AndreaBergonzo가 말한 것 : 문자열을 ""와 비교할 때 비어 있는지 확인하는 것입니다. 이는 False로 간주됩니다.
alexis

19

문자열이 비어 있는지 확인하는 "Pythonic"방법은 다음과 같습니다.

import random
variable = random.choice(l)
if variable:
    # got a non-empty string
else:
    # got an empty string

12

빈 문자열은 기본적으로 False입니다.

>>> if not "":
...     print("empty")
...
empty

11

if s또는 라고 말 if not s하세요. 에서와 같이

s = ''
if not s:
    print 'not', s

따라서 귀하의 특정 예에서 올바르게 이해하면 ...

>>> import random
>>> l = ['', 'foo', '', 'bar']
>>> def default_str(l):
...     s = random.choice(l)
...     if not s:
...         print 'default'
...     else:
...         print s
... 
>>> default_str(l)
default
>>> default_str(l)
default
>>> default_str(l)
bar
>>> default_str(l)
default

나는 그것을 이해하지 못한다. 그래서, 만약 내가 "variable = random.choice (list)"를하고 변수가 공백 ""이면, "if variable :"조건을 할 수 있고 ... 그래, 나는 정말로 다른 어떤 것을 얻지 못한다. 당신은 ... 썼다
user1275670

@ user1275670, 이해하는 것 같습니다. 그러나 만일을 대비하여 다른 예를 추가했습니다. 요컨대 ''는로 평가 False되므로 True언제 s가 빈 문자열인지 얻으려면 if not s.
senderle

6

파이썬 3의 경우 bool ()을 사용할 수 있습니다.

>>> bool(None)
False
>>> bool("")
False
>>> bool("a")
True
>>> bool("ab")
True
>>> bool("9")
True

이 완벽하고 있지만 한 것입니다 bool(0)반환False
kaushal 아그라 왈

1
@kaushalagrawal bool(0)반환 False은 나를 위해 기대할 수 있습니다. 왜 안 되는가?
Thai Tran

사실 내가 그렇게 느낀 이유를 이해 / 기억하지 않는다
kaushal 아그라 왈

6

언젠가 따옴표 사이에 더 많은 공백이 있으면이 방법을 사용합니다.

a = "   "
>>> bool(a)
True
>>> bool(a.strip())
False

if not a.strip():
    print("String is empty")
else:
    print("String is not empty")

4
element = random.choice(myList)
if element:
    # element contains text
else:
    # element is empty ''

3

if str(variable) == [contains text]:조건 은 어떻게 만드 나요?

아마도 가장 직접적인 방법은 다음과 같습니다.

if str(variable) != '':
  # ...

점을 유의 if not ...솔루션은 테스트 반대의 상태를.


1

변수에 텍스트가 포함 된 경우 :

len(variable) != 0

그것의

len(variable) == 0


1

if-else에서 " not " 사용

x = input()

if not x:
   print("Value is not entered")
else:
   print("Value is entered")

0
string = "TEST"
try:
  if str(string):
     print "good string"
except NameError:
     print "bad string"

4
일반적으로 StackOverflow에서 게시 된 코드를 주석 처리하는 것이 좋습니다.
King Midas

이 답변은 정확하고 유용 할 수 있지만 문제 해결에 도움이되는 방법을 설명하기 위해 몇 가지 설명을 함께 포함하는 것이 좋습니다. 이것은 작동을 멈추게하는 변경 (아마도 관련이 없음)이 있고 사용자가 한 번 작동 한 방식을 이해해야하는 경우에 특히 유용합니다.
Erty Seidohl

죄송합니다. 영어가 너무 나쁘지만 앞으로는 내 게시물에 댓글을 달아야합니다.
Cornea Valentin
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.