Python | 武理刷题

1. 

为什么是非法的?

a+1=a+1

在Python(以及大多数其他编程语言)中,表达式 a+1=a+1 是非法的,因为它试图将一个值(a+1 的结果)赋给一个表达式(a+1 本身),而不是一个变量。赋值操作符 = 在编程中用于将一个值存储到一个变量中,但它左边的必须是一个可赋值的对象(如变量名、属性名、列表的元素等),而不是一个表达式。

换句话说,你不能将 = 右边的值赋给 = 左边的表达式,因为表达式的结果是一个值,而不是一个可以存储新值的容器。

如果你想表达一个恒等式(即一个总是为真的数学表达式),你应该使用 == 而不是 =。但是,a+1 == a+1 总是为 True,因为对于任何 a 的值,a+1 都等于 a+1

如果你想要对变量 a 进行某种操作,你应该这样做:

 
 

python复制代码

a = a + 1 # 或者简写为 a += 1

在这个例子中,a 的值被增加了1。

2.

为什么类型是dict而不是tuple

a=({'Name':'python'})
print(type(a))

 如果元组只有一个元素,要在最后加逗号

在Python中,当你写下 a = ({'Name':'python'}) 这行代码时,尽管你使用了圆括号 (),但是,由于圆括号在这种情况下是多余的(因为字典本身就是一个不可变的数据结构,可以作为单个元素存在),Python解释器会将其视为一个元组,只不过这个元组里只有一个元素——一个字典。

但是,当你使用 print(type(a)) 时,你实际上是打印出变量 a 所指向对象的类型。由于 a 是一个元组(尽管它只包含一个元素),type(a) 将返回 <class 'tuple'>

如果你只想创建一个字典,并且不需要将其放在一个元组中,你应该这样做:

 
 
a = {'Name':'python'}
print(type(a)) # 输出: <class 'dict'>

在这个例子中,a 是一个字典,所以 type(a) 会返回 <class 'dict'>

 
 

a = ({'Name':'python'},) # 注意末尾的逗号,它表明这是一个元组
print(type(a)) # 输出: <class 'tuple'>

在这个例子中,末尾的逗号告诉Python解释器这是一个元组,即使它只包含一个元素。没有逗号的话,Python会将其视为一个字典(如果它是表达式的一部分)或者抛出一个语法错误(如果它是独立的表达式)。

 

3.

为什么这两个是一样的

a=dict([('1','one'),('2','two'),('3','three')])#{'1': 'one', '2': 'two', '3': 'three'}
print(a)

 

在Python中,dict 函数可以接受一个可迭代对象作为参数,该可迭代对象中的元素应该是表示键值对的元组(或其他可迭代对象,但元组是最常见的)。当你使用这样的语法调用 dict 函数时,你实际上是告诉Python从给定的可迭代对象中构建一个字典。

在你给出的例子中:

a = dict([('1','one'),('2','two'),('3','three')])

你传递了一个列表给 dict 函数,这个列表包含了三个元组,每个元组都代表了一个键值对。dict 函数会遍历这个列表,并将每个元组中的第一个元素作为键,第二个元素作为值,创建一个新的字典。

因此,dict 函数会按照你提供的元组列表来构建字典,结果就是你看到的:

{'1': 'one', '2': 'two', '3': 'three'}

 

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值