tisuki_t 2022-06-04 11:50 采纳率: 87.5%
浏览 242
已结题

python列表生成器与推导器语法错误问题

python列表生成器与推导器问题

img


输入代码后显示语法错误expected else after if expression

img

ls = ['the lord of the rings','anaconda','legally blonde','gone with the wind']
s = input()        # 输入一个字符
if s == '1':       # 当输入为"1"时,输出元素为0-93次方的列表 [0, 1, 8, 27, 64, 125, 216, 343, 512, 729]
    print([i**3 for i in range(10)])

elif s == '2':     # 当输入为"2"时,输出元素为0-9中偶数的3次方的列表 [0, 8, 64, 216, 512]
    print([i**3 for i in range(10)]if i%2==0)

elif s == '3':     # 当输入为"3"时,输出元素为元组的列表,元组中元素依次是0-9中的奇数和该数的3次方[(1, 1), (3, 27), (5, 125), (7, 343), (9, 729)]
    print([(i, i**3) for i in range(10)] if i %2 !=0)

elif s == '4':     # 当输入为"4"时,将ls中每个元素单词首字母大写输出['The lord of the rings', 'Anaconda', 'Legally blonde', 'Gone with the wind']
    print([i.capitalize() for i in ls])

else:              # 当输入为其他字符时,执行以下语句
    print('结束程序')


  • 写回答

1条回答 默认 最新

  • 请叫我问哥 Python领域新星创作者 2022-06-04 12:17
    关注

    s等于2或3的列表推导式,if应该放在方括号内:

    elif s == '2':     # 当输入为"2"时,输出元素为0-9中偶数的3次方的列表 [0, 8, 64, 216, 512]
        print([i**3 for i in range(10)if i%2==0])
     
    elif s == '3':     # 当输入为"3"时,输出元素为元组的列表,元组中元素依次是0-9中的奇数和该数的3次方[(1, 1), (3, 27), (5, 125), (7, 343), (9, 729)]
        print([(i, i**3) for i in range(10) if i %2 !=0])
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 6月12日
  • 已采纳回答 6月4日
  • 创建了问题 6月4日

悬赏问题

  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计