为了账号安全,请及时绑定邮箱和手机立即绑定

为什么for a in '123456789'这样写不对?

print [a*100 + b*10 + c for a in ‘123456789’for b in ‘0123456789’ for c in ‘0123456789’ if a == c]

正在回答

5 回答

'123456789' 用引号的是字符串,for a in '123456789' 迭代出来的是'1' '2' '3'...这样的字符串。

把前面a*100 b*10 改成 a b就好了

print [a + b + c for a in '123456789'for b in '0123456789' for c in '0123456789' if a == c]

但是结果是对称数的字符串,再把字符串转换为int类型就可以了

print [int(a + b + c) for a in '123456789'for b in '0123456789' for c in '0123456789' if a == c]

5 回复 有任何疑惑可以回复我~
#1

DEBUG自习室 提问者

懂了 非常感谢解答
2019-03-06 回复 有任何疑惑可以回复我~
#2

慕雪4577391

print [int(a * 100 + b * 10 + c ) for a in '123456789'for b in '0123456789' for c in '0123456789' if a == c]
2019-03-11 回复 有任何疑惑可以回复我~
#3

慕工程7591378 回复 慕雪4577391

这样是不对的,你可以执行程序试试
2019-03-13 回复 有任何疑惑可以回复我~
#4

马可奥勒留 回复 慕雪4577391

abc都是字符串,不能乘以100
2019-07-25 回复 有任何疑惑可以回复我~
查看1条回复
print [int(x+y+x) for x in '123456789' for y in '0123456789']


0 回复 有任何疑惑可以回复我~

我试验了一下你的代码,错误提示为 invalid syntax,即语法错误。原因是你的引号是中文状态下的引号,你用鼠标选中一下,看看这引号多宽!

你的引号:

‘’‘’‘’‘’‘’‘’‘’

正确引号:

''''''''''''

0 回复 有任何疑惑可以回复我~

我看示例写的 for x in '123' 是可以遍历的,有点不懂

0 回复 有任何疑惑可以回复我~

‘123456789’是一个完整的字符串,可以用in range(1,10)

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
初识Python
  • 参与学习       758625    人
  • 解答问题       8667    个

学python入门视频教程,让你快速入门并能编写简单的Python程序

进入课程

为什么for a in '123456789'这样写不对?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信