Попытка определить, является ли переменная / строка смешанным регистром в Python - PullRequest
0 голосов
/ 04 февраля 2019

Я пытаюсь написать простую программу, которая обнаруживает, является ли строка заглавной или строчной или смешанной.

Я пробовал x.ismixed, но он не работает

Я также попробовал x == mixed.case

Это код:

x = input('Loud: ')

if x.isupper():
  print("Quiet:", x.lower())

elif x.ismixed():
  print (x.lower)

else:

  print (x.lower)

Код ошибки:

встроенный метод нижеstr объект в 0xf70445e0

Выход должен быть x.lower (), но вместо этого приходит с кодом выше.

Input: HEllO ThEre
Output: hello there.

Ответы [ 4 ]

0 голосов
/ 04 февраля 2019

Должно быть x.lower() вместо x.lower.Это должен быть вызов метода, а не переменная-член.

0 голосов
/ 04 февраля 2019

Используйте x.lower() вместо x.lower.Чтобы вызвать метод, вам нужно добавить к нему ().Также нет ничего похожего на ismixed метод в python.

s="Hello I'm a mixEd Sting"
if s.isupper():
 print("Upper case")
elif s.islower():
 print("Lower case")
else:
 print("mixed case") 
print("Lower Case", s.lower())
0 голосов
/ 04 февраля 2019

lower - это метод, который вы должны вызывать, используя (), а mixed не является функцией строки, вы можете упростить вашу функцию, как показано ниже, поскольку elif избыточен

x = input('Loud: ')
if x.isupper():
    print("Quiet:", x.lower())
else:
    print (x.lower())
0 голосов
/ 04 февраля 2019

Это не ошибка, просто вы не вызываете функцию с ().Кроме того, ismixed не является встроенным, вы должны написать его самостоятельно:

def ismixed(s):
    return any(c.islower() for c in s) and any(c.isupper() for c in s)

x = input('Loud: ')

if x.isupper():
  print("Quiet:", x.lower())
elif ismixed(x):
  print(x.lower())
else:
  print(x.lower())

Однако, поскольку вы печатаете x.lower() в любом случае, вы можете избавиться от всего elif блок и ismixed.

...