自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

盤點(diǎn)一道帶“坑” Python 基礎(chǔ)題目(附源碼)

開(kāi)發(fā) 后端
昨天在小編的Python交流群里,有個(gè)叫【Aͨ】的粉絲在群里問(wèn)了一道關(guān)于Python基礎(chǔ)的問(wèn)題,初步一看覺(jué)得很簡(jiǎn)單,實(shí)際上是有坑的,這里整理成一篇文章,分享給大家。

[[434258]]

大家好,我是Python進(jìn)階者。

前言

昨天在小編的Python交流群里,有個(gè)叫【A?】的粉絲在群里問(wèn)了一道關(guān)于Python基礎(chǔ)的問(wèn)題,初步一看覺(jué)得很簡(jiǎn)單,實(shí)際上是有坑的,這里整理成一篇文章,分享給大家。

題目是如下圖所示:

看題目確實(shí)覺(jué)得很簡(jiǎn)單哈,一頓操作猛如虎,各路神仙各顯神通,不過(guò)一開(kāi)始大家也確實(shí)輕敵了。

下面是答題一覽:

發(fā)現(xiàn)沒(méi)有這么簡(jiǎn)單,再來(lái)一擊:

一、思路

這個(gè)問(wèn)題看似簡(jiǎn)單,但是其實(shí)是有潛在的坑的,詳情看下圖紅色框框。

關(guān)于思路,倒是有兩個(gè),其一是【磐奚鳥(niǎo)】大佬提供的想法,檢測(cè)首尾是不是[]()這種,是就轉(zhuǎn)換一下type,能解決list,tuple,但是其他的數(shù)據(jù)類型,就處理不來(lái)了,這個(gè)想法還是有弊端的。

其二是使用eval()函數(shù),這個(gè)正解,具體看下一節(jié)。

二、解決方法

1)代碼一

這里先給出【A?】大佬自己的代碼,如下圖所示。

  1. # coding: utf-8 
  2. a = (input('請(qǐng)輸入一個(gè)數(shù)據(jù):')) 
  3. b = eval(a) 
  4. print(a, type(b)) 

乍一看,這個(gè)代碼確實(shí)可以實(shí)現(xiàn),但是細(xì)心的大佬如【??(這是月亮的背面)】,會(huì)發(fā)現(xiàn)這里會(huì)隱藏有一個(gè)小bug,那就是作者在input()函數(shù)外層還加了個(gè)括號(hào),也就是說(shuō)硬生生的將輸入做了一次元組強(qiáng)轉(zhuǎn)。

如果輸入元組或者字典,那就要翻車了,講真,一開(kāi)始我看到這里還有一些蒙圈,后來(lái)就明白了??聪聢D【磐奚鳥(niǎo)】給出的一個(gè)反例測(cè)試結(jié)果:

乍一看,你根本就不敢相信,竟然會(huì)出錯(cuò),而且你會(huì)很詫異的表示,問(wèn)題到底在哪?

其實(shí)問(wèn)題出在input函數(shù)外層的那個(gè)括號(hào),用括號(hào)給input套了一層,那么它就是元組了,里面的元素是字符串,而evaleval只能解析字符串,解不了元組,所以會(huì)報(bào)錯(cuò)。

2)代碼二

經(jīng)過(guò)上面的分析,相信大家應(yīng)該知道問(wèn)題出在哪里了,只需要將input函數(shù)外層的那個(gè)括號(hào)去掉,就可以了。

  1. # coding: utf-8 
  2. a = input('請(qǐng)輸入一個(gè)數(shù)據(jù):'
  3. b = eval(a) 
  4. print(a, type(b)) 

下圖是【磐奚鳥(niǎo)】給出的一個(gè)測(cè)試結(jié)果,可以看到他還給多加了一層異常函數(shù)處理,顯得更加的完整和健壯:

3)彩蛋

后來(lái)大佬也給出了更加詳盡的測(cè)試結(jié)果,下面一起來(lái)看看吧,測(cè)試結(jié)果表明:基本數(shù)據(jù)類型輸出都沒(méi)有問(wèn)題。

bool值,復(fù)數(shù)也可以。

在檢測(cè)函數(shù)的時(shí)候是調(diào)用函數(shù),并不是顯示函數(shù)的類型:

三、總結(jié)

我是Python進(jìn)階者。本文基于粉絲針對(duì)Python基礎(chǔ)問(wèn)題的提問(wèn),在大家的群策群力之下,給出了一個(gè)完整的解決方案,滿足了粉絲的要求。

針對(duì)這道題目,考點(diǎn)就是eval了,靈活運(yùn)用,確實(shí)可以達(dá)到事半功倍的效果,增加異常處理,使得程序更加的穩(wěn)健。

本文轉(zhuǎn)載自微信公眾號(hào)「Python爬蟲(chóng)與數(shù)據(jù)挖掘」,可以通過(guò)以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系Python爬蟲(chóng)與數(shù)據(jù)挖掘公眾號(hào)。

 

責(zé)任編輯:武曉燕 來(lái)源: Python爬蟲(chóng)與數(shù)據(jù)挖掘
相關(guān)推薦

2021-11-05 09:01:15

Python算法Python基礎(chǔ)

2021-11-08 08:51:36

Python算法Python基礎(chǔ)

2022-01-25 09:05:00

Python字符串網(wǎng)絡(luò)爬蟲(chóng)

2012-05-18 11:17:58

Java多線程

2018-03-13 16:04:45

Promise執(zhí)行順序

2024-03-18 13:32:11

2021-03-02 11:29:50

算法算法分析前端

2024-10-11 17:09:27

2011-08-18 09:33:23

2014-04-29 14:58:24

筆試題微軟筆試題

2009-12-16 09:58:35

Chrome OS

2022-01-19 11:39:15

數(shù)據(jù)治理大數(shù)據(jù)數(shù)據(jù)

2020-08-07 11:23:31

網(wǎng)絡(luò)安全人工智能數(shù)據(jù)

2018-02-25 16:35:32

前端CSS面試題

2011-05-23 11:27:32

面試題面試java

2018-03-14 07:42:48

2012-07-03 09:38:42

前端

2022-04-08 14:50:37

存儲(chǔ)零信任安全

2010-09-14 09:41:12

2009-08-11 14:59:57

一道面試題C#算法
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)