如何解决了解带有两个变量的python打印输出
>>> a=10
>>> print(str(a)[a==10])
0
>>> print(str(a)[a=='10'])
1
>>> print(str(a)[a=='11'])
1
如何获得上述0和1的结果?
解决方法
让print
语句搁置一秒钟。
- 在方括号内,要求值的表达式为布尔值。
-
a==10
是True
,因为a
是等于10的int
,而a=='10'
是False
是因为a
不是值为str
的{{1}}。
-
- 每个这些布尔值都会隐式转换为int,因为方括号会索引字符串。因此,
'10'
成为索引1,True
成为索引0。 - 该字符串已编制索引。
False
位于'1'
的索引0,而'10'
位于索引1。请注意,返回的是字符串,而不是整数,这是因为整个表达式的结果,例如'0'
是您所有示例中的字符串。
所有这些事情都是在没有考虑str(a)[a==10]
的情况下发生的。 print()
只是将表示形式打印到屏幕上。 print()
整数和0
字符串在屏幕上看起来完全一样。尝试使用'0'
来理解这一点。
a = 10,a is a integer value 10
在print()中 10 == 10为假,因此它将打印str(a)的第二个位置 那是0 10 =='10'为真,因此它将打印str(a)的第一个位置 就是1
示例:
a = 12
print(str(a)[4 == 4]) # output 2
,
这仅仅是因为字符串索引 让我解释一下
当您执行str(a)
时,您正在将 a 类型转换为字符串,并因此将其类型转换为10到'10',其中'10'是具有2个字符('1'和' 0')
现在,如果您有一个包含2个字符的字符串,则第零个索引中的字符是第一个('1'),而第一个索引中的字符是第二个字符('0')
即
animal = 'cat'
print(animal[0])
>>'c'
print(animal[1])
>>'a'
print(animal[2])
>>'t'
继续前进,现在在方括号内有 boolean语句,当值为 True 时,对于它们,当值为 False 输出为0
因此,10==10
是真实的,1
,因此str(a)[a==10]
是str(a)[1]
,它是0( 1st 索引,但 第二 个字符为“ 1 0 ”)
10=='10'
是false
,是0
因此str(a)[a=='10']
是str(a)[0]
的{{1}}( 0 索引,但 1st 字符“ 1 0”)
1
是10=='11'
,是false
因此与第二种情况相同
0
是str(a)[a=='11']
的{{1}}( 第0 个索引,但 第1个 字符为“ 1 0”)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。