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

用一個簡單的變量代替咯。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章