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)
 in 
      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)
 in 
      1 s='hello world'
----> 2 a,b,c=s

ValueError: too many values to unpack (expected 3)

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

_,b,_=all1
print(b)

print(_)

5
7

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

你可能感兴趣的:(Python学习笔记)