Victor0321 发表于 2022-4-6 13:05:30

条件表达式

为什么我的条件表达式报错啊。。 flag2 = 1 if jixu == 'Y' else flag2 = 0 改成这样就可以
if jixu =='Y ':
        flag2 =1
else:
        flag2 = 0


key = ''
phone = dict.fromkeys(' ')
namel = []
flag1 = True

print('欢迎进入鱼C电话簿')
while flag1:
    ins = input('''
请输入指令(I:录入/C:查询/D:删除/P:打印/E:退出:)''')
    if ins == 'I':##录入电话功能
      flag2 = True
      while flag2:
            name = input('请输入姓名:')
            if name in phone:
                print(f'该姓名已录入,电话号码是:{phone}')
                modify = input('请问是否修改(Y/N):')
                if modify == 'Y':
                  phone = input('请输入新的电话:')
            else:
                flag3 = True
                while flag3:
                  tel = input('请输入电话:')
                  if (len(tel) == 11) and tel.isdigit():##检查电话11位数字
                        phone = tel
                        flag3 = 0
                  else:
                        print('输入不合法,请重新输入:')
                        flag3 = True
            jixu =input('是否还要继续(Y/N):')##是否还要继续
            flag2 = 1 if jixu == 'Y' else flag2 = 0
    elif ins == 'C':
      turn_1 = 1
      while turn_1:
            check_name = input(f'''-- 查询模式 -- \n请输入姓名:''')
            print(f'{check_name}:{phone}')
            turn_ =input('是否还要继续(Y/N):')##是否还要继续
            if turn_ == 'Y':
                turn_1 = 1
            else:
                turn_1 = 0
    elif ins == 'D':
      turn_2 = 1
      while turn_2:
            delete_ = input(f'''-- 删除模式 --\n请输入姓名''')
            phone.pop(delete_)
            turn_ =input('是否还要继续(Y/N):')##是否还要继续
            if turn_ == 'Y':
                turn_2 = 1
            else:
                turn_2 = 0
    elif ins == 'P':
      phone.pop(' ')
      print(f'''-- 打印模式 --\n{phone}\n''')
    elif ins == 'E':
      break
            

isdkz 发表于 2022-4-6 13:08:11

本帖最后由 isdkz 于 2022-4-6 13:11 编辑

三元表达式不是那样用的,应该是 flag2 = 1 if jixu == 'Y' else 0 ,相当于 flag2 = (1 if jixu == 'Y' else 0),三元表达式的结果不能用赋值表达式

key = ''
phone = dict.fromkeys(' ')
namel = []
flag1 = True

print('欢迎进入鱼C电话簿')
while flag1:
    ins = input('''
请输入指令(I:录入/C:查询/D:删除/P:打印/E:退出:)''')
    if ins == 'I':##录入电话功能
      flag2 = True
      while flag2:
            name = input('请输入姓名:')
            if name in phone:
                print(f'该姓名已录入,电话号码是:{phone}')
                modify = input('请问是否修改(Y/N):')
                if modify == 'Y':
                  phone = input('请输入新的电话:')
            else:
                flag3 = True
                while flag3:
                  tel = input('请输入电话:')
                  if (len(tel) == 11) and tel.isdigit():##检查电话11位数字
                        phone = tel
                        flag3 = 0
                  else:
                        print('输入不合法,请重新输入:')
                        flag3 = True
            jixu =input('是否还要继续(Y/N):')##是否还要继续
            flag2 = 1 if jixu == 'Y' else 0
    elif ins == 'C':
      turn_1 = 1
      while turn_1:
            check_name = input(f'''-- 查询模式 -- \n请输入姓名:''')
            print(f'{check_name}:{phone}')
            turn_ =input('是否还要继续(Y/N):')##是否还要继续
            if turn_ == 'Y':
                turn_1 = 1
            else:
                turn_1 = 0
    elif ins == 'D':
      turn_2 = 1
      while turn_2:
            delete_ = input(f'''-- 删除模式 --\n请输入姓名''')
            phone.pop(delete_)
            turn_ =input('是否还要继续(Y/N):')##是否还要继续
            if turn_ == 'Y':
                turn_2 = 1
            else:
                turn_2 = 0
    elif ins == 'P':
      phone.pop(' ')
      print(f'''-- 打印模式 --\n{phone}\n''')
    elif ins == 'E':
      break

andy大宝 发表于 2022-4-6 13:28:04

三元表达式:
https://mp.weixin.qq.com/s?__biz=MjM5ODQ2NTgwMQ==&mid=2648933217&idx=1&sn=faf6312f44b3d53ce127a211e0e72d25&chksm=bedd7b0789aaf21148352d97b0c2dedad4be03dadad605f1698f573c418e836de0b6eae08a1f&scene=21#wechat_redirect
页: [1]
查看完整版本: 条件表达式