TypeError: неподдерживаемые типы операндов для |: 'str' и 'str' - PullRequest
0 голосов
/ 07 августа 2020

Я новичок в кодировании, это первый код, который я хочу попробовать

dob = int(input('please enter your date of birth: '))
print(dob)
cy = 2020
age= cy-dob
print (age)
if age == '>=1' | '<=12':
    print('You are a child')
elif age == '>=13' | '<=19':
    print('You are a teen')
elif age == '>=20' | '<=40':
    print('You are an adult')
else:
    print('You are a elder')

, но когда я запускаю, он отображает:

TypeError: unsupported operand type(s) for |: 'str' and 'str'

Ответы [ 3 ]

0 голосов
/ 07 августа 2020

Rikden Gurung Попробуйте использовать оператор 'или' вместо '|'.

dob = int(input('please enter your date of birth: '))

age= 2020 -dob
#print (age)
if age >=1 or age<=12:
 print('You are a child')
elif age >=13 or age <=19:
 print('You are a teen')
elif age >=20 or age <=40':
 print('You are an adult')
else:
 print('You are a elder')` 
0 голосов
/ 07 августа 2020
dob = int(input('please enter your year of birth: '))
print(dob)
cy = 2020
age= cy-dob
print (age)
if age >=1 and age <= 12:
  print('You are a child')
elif age >=13 and age <=19:
  print('You are a teen')
elif age >=20 and age<=40:
  print('You are an adult')
else:
  print('You are a elder')

Вывод:
введите год вашего рождения: 1950
1950
70
Вы - старший

Привет, я сделал несколько изменения в вашем коде.
В python вам нужно использовать оператор 'or' вместо '|'. Но в вашем случае вам действительно нужен оператор 'and'.

Перейдите по этой ссылке, чтобы узнать больше об операторах. https://www.geeksforgeeks.org/python-logical-operators-with-examples-improvement-needed/

0 голосов
/ 07 августа 2020
Операнды и выражения

Python не работают. (статья о них real python .com )

Вы использовали операторы bitwise для сравнения строк. Если вы попытались запустить выражение OR, подходящим примером python для строк будет. (ориентированный на ваш код)

if foo == "<=" or foo == ">=":
    print(1)

Эта операция также может быть представлена ​​как:

if foo in ["<=", ">="]:
    print(1)  # will be printed if foo <= or >=

Для операций AND вы можете использовать тот же синтаксис с and:

if foo >= 20 and foo <= 40:
    print(1)  # will b printed if 40 > foo  > 20

Вы также столкнетесь с синтаксической ошибкой в ​​вашем текущем коде из-за пробела между print и (age)

Фиксированная версия вашего скрипта:

dob = int(input('please enter your date of birth: '))
print(dob)
cy = 2020
age= cy-dob
print(age)
if age >=1 and age <=12:
   print('You are a child')
elif age >= 13 and age <= 19:
    print('You are a teen')
elif age >=20 and age <=40:
    print('You are an adult')
else:
    print('You are an elder')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...