Python 日常练习1

前言

程序员的日常联系,提高问题处理能力。

目录

正文

今天主要练习的是

解压序列赋值给多个变量

问题

现在有一个包含N 个元素的元组或者是序列,怎样将它里面的值解压后同时赋值
给N 个变量?

解决方案

任何的序列(或者是可迭代对象)可以通过一个简单的赋值语句解压并赋值给多
个变量。唯一的前提就是变量的数量必须跟序列元素的数量是一样的。

例子

首先是一个简单的纯数字序列分配

all1=(3,5,7)

x,y,z=all1

print("x=",x,"\n","y=",y,"\n","z=",z,"\n")

x= 3 
 y= 5 
 z= 7 


接下来是一个复合的元素提取

data2= [ 'Bob', 100, 123, (2018, 12, 21) ]

name,grades,number,date=data2

print(name)

print(grades)

print(number)

print(date)

Bob
100
123
(2012, 12, 21)

讨论:如果等式两边的数目不同会怎么样?

all1=(3,5,7)

x,y,z,p=all1

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-17-2ac358487924> in <module>
      1 all1=(3,5,7)
----> 2 x,y,z,p=all1

ValueError: not enough values to unpack (expected 4, got 3)

s='hello world'

a,b,c=s

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-11-5bbde3ba3bcf> in <module>
      1 s='hello world'
----> 2 a,b,c=s

ValueError: too many values to unpack (expected 3)

实验表明,这样会引起异常,那如果出现不要的元素该怎么办呢?

_,b,_=all1
print(b)

print(_)

5
7

用一个简单的变量代替咯。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值