<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          入門Python必備100道練習(xí)題

          共 5809字,需瀏覽 12分鐘

           ·

          2021-08-26 08:08

          爆肝給大家整理了這份今天給大家分享100道Python練習(xí)題。
          在此之前,先給大家推薦一個(gè)工具,是一個(gè)對(duì) Python 運(yùn)行原理進(jìn)行可視化分析的工具,Python Tutor,點(diǎn)擊 Next 按鈕就會(huì)根據(jù)執(zhí)行步驟顯示原理,對(duì)新手理解代碼運(yùn)行原理有很大幫助。舉一個(gè)簡(jiǎn)單的例子,sort() 方式和 sorted()的區(qū)別。
          可以明顯看到 sort() 會(huì)就地在原序列上排序,sorted() 新建了一個(gè)新的序列。
          Python基礎(chǔ)習(xí)題

          1、怎么計(jì)算2的3次方

          解法1:直接用運(yùn)算符

          >>> 2**3
          解法2:用函數(shù) pow

          >>> pow(2,3)

          2、怎么找出序列中的最大值和最小值?

          用內(nèi)置函數(shù) max 和 min
          >>> l = (123, 888, 666)
          >>> max(l)
          888
          >>> min(l)
          123

          3、怎么將字符列表轉(zhuǎn)為字符串

          用 join 方法,合并序列的元素
          >>> l = ['Python', 'Circle', 'is', 'ok']
          >>> j = ' '.join(l)
          >>> j
          'Python Circle is ok'

          4、怎么快速打印出包含所有 ASCII 字母(大寫和小寫)的字符串

          用 string 模塊的方法
          >>> import string
          >>> string.ascii_letters
          'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'

          5、怎么讓字符串居中

          用字符串中的 center 方法,他會(huì)在兩邊自動(dòng)填充字符(默認(rèn)為空格),讓字符串居中
          >>> k = 小魚Python

          >>> k.center(50)
          ' 更多精彩,請(qǐng)關(guān)注「小魚Python」 '
          >>> k.center(50, '*')

          6、怎么在字符串中找到子串

          用 find 方法,如果找到,就返回子串的第一個(gè)字符的索引,否則返回 -1
          >>> ss = 'I Love Python'
          >>> ss.find('I')
          0
          >>> ss.find('Python')
          7

          7、怎么讓字符的首字母大寫,其他字母小寫

          解法1:用 title 方法。

          >>> ss = 'i love python'
          >>> ss.title()
          'I Love Python'
          解法2:用 string 模塊里的 capwords 方法。

          >>> import string
          >>> ss = 'i love python'
          >>> string.capwords(ss)
          'I Love Python'

          9、怎么清空列表內(nèi)容

          解法1:用 clear 方法

          >>> l = [1, 2, 3]
          >>> l.clear()
          >>> l
          []
          解法2:用切片賦值的方法

          >>> k = [1, 2, 3]
          >>> k[:] = []
          >>> k
          []

          10、怎么計(jì)算指定的元素在列表中出現(xiàn)了多少次?

          用 count 方法
          >>> l = ['i', 'am', 'ok', 'ok']
          >>> l.count('ok')
          2

          11、怎么在列表末尾加入其它元素

          用 extend 方法
          >>> l = [1, 2, 3]
          >>> j = [4, 5, 6]
          >>> l.extend(j)
          >>> l
          [1, 2, 3, 4, 5, 6]

          12、extend 和列表相加的區(qū)別?

          兩者看起來效果一致
          >>> l = [1, 2, 3]
          >>> j = [4, 5, 6]
          >>> l + j
          [1, 2, 3, 4, 5, 6]
          extend 是直接在 l 列表里加入元素,相加會(huì)生成一個(gè)新元素,并不會(huì)對(duì) l 做修改。

          13、怎么查找列表中某個(gè)元素第一次出現(xiàn)的索引,從 0 開始

          用 index 方法
          >>> l = ['are', 'you', 'ok']
          >>> l.index('you')
          1

          14、怎么將一個(gè)對(duì)象插入到列表中

          解法1:用 insert 方法

          >>> num = [1, 2, 4, 5]
          >>> num.insert(2, 'three')
          >>> num
          [1, 2, 'three', 4, 5]
          解法2:用切片的方式插入

          >>> num = [1, 2, 4, 5]
          >>> num[2:2] = ['three']
          >>> num
          [1, 2, 'three', 4, 5]

          15、怎么刪除列表中元素

          pop 方法可以刪除指定元素,不指定位置的話默認(rèn)刪除最后一個(gè)元素
          >>> num = [1, 2, 4, 5]
          >>> num.pop()
          5
          >>> num
          [1, 2, 4]
          >>> num.pop(1)
          2
          >>> num
          [1, 4]

          16、怎么刪除列表中指定元素

          用 remove 方法
          >>> num
          [1, 4]
          >>> num = [1, 2, 4, 5, 4]
          >>> num.remove(4)
          >>> num
          [1, 2, 5, 4]
          remove 方法只會(huì)刪除第一次出現(xiàn)的元素/

          17、怎么讓列表按相反順序排列?

          解法1:用 reverse 方法

          >>> num = [1, 22, 45, 99, 49]
          >>> num.reverse()
          >>> num
          [49, 99, 45, 22, 1]
          解法2:用切片的方式

          >>> num = [1, 22, 45, 99, 49]
          >>> num[::-1]
          [49, 99, 45, 22, 1]

          18、怎么表示只包含一個(gè)元素的元組

          1個(gè)元素的元組,必須在唯一的元素后加上逗號(hào),否則不是元組
          >>> t= (1)
          >>> type(t)
          <class 'int'>
          >>> t= (1,)
          >>> type(t)
          <class 'tuple'>

          19、怎么批量替換字符串中的元素

          用 replace 方法
          >>> 'i love Python'.replace('o', 'ee')
          'i leeve Pytheen'

          20、怎么把字符串按照空格進(jìn)行拆分

          用 split 方法,括號(hào)為空的情況下默認(rèn)以空格拆分
          >>> 'i love Python'.split()
          ['i', 'love', 'Python']

          Python進(jìn)階習(xí)題

          1、怎么用for循環(huán)實(shí)現(xiàn)把字符串變成Unicode碼位的列表

          >>> st = '!@#$%^&*'
          >>> codes = []
          >>> for s in st:
          codes.append(ord(s))

          >>> codes
          [33, 64, 35, 36, 37, 94, 38, 42]

          2、怎么用列表推導(dǎo)式實(shí)現(xiàn)把字符串變成Unicode碼位的列表

          >>> st = '!@#$%^&*'
          >>> codes = [ord(s) for s in st]
          >>> codes
          [33, 64, 35, 36, 37, 94, 38, 42]
          很明顯,用列表推導(dǎo)式實(shí)現(xiàn)比 for 循環(huán)加 append 更高效簡(jiǎn)潔,可讀性更好。

          3、打印出兩個(gè)列表的笛卡爾積

          解法1:使用生成器表達(dá)式產(chǎn)生笛卡爾積,可以幫忙省掉運(yùn)行 for 循環(huán)的開銷。

          >>> colors = ['blacks', 'white']
          >>> sizes = ['S', 'M', 'L']
          >>> for tshirt in ('%s %s'%(c, s) for c in colors for s in sizes):
          print(tshirt)

          blacks S
          blacks M
          blacks L
          white S
          white M
          white L
          解法2:使用 itertools 里的 product 生成器函數(shù)。

          >>> import itertools
          >>> list(itertools.product(['blacks', 'white'], ['S', 'M', 'L']))
          [('blacks', 'S'), ('blacks', 'M'), ('blacks', 'L'), ('white', 'S'), ('white', 'M'), ('white', 'L')]

          4、可迭代對(duì)象拆包時(shí),怎么賦值給占位符

          我們經(jīng)常用 for 循環(huán)提取元組里的元素,對(duì)于我們不想接收的元素,我們可以用占位符 _ 接收。
          >>> player_infos = [('Kobe', '24'), ('James', '23'), ('Iverson', '3')]
          >>> for player_names, _ in player_infos:
          print(player_names)

          Kobe
          James
          Iverson

          5、Python3 中,用什么方式接收不確定值或參數(shù)

          用 args 的方式,args 位置可以在任意位置。
          >>> a, b, *c = range(8)
          >>> a, b, c
          (0, 1, [2, 3, 4, 5, 6, 7])

          >>> a, *b, c, d = range(5)
          >>> a,b,c,d
          (0, [1, 2], 3, 4)

          >>> *a, b, c, d = range(5)
          >>> a,b,c,d
          ([0, 1], 2, 3, 4)

          6、用切片將對(duì)象倒序

          >>> s = 'basketball'
          >>> s[::-1]
          'llabteksab'

          7、怎么查看列表的 ID

          >>> l = [1, 2, 3]
          >>> id(l)
          4507638664

          8、可變序列用*=(就地乘法)后,會(huì)創(chuàng)建新的序列嗎?

          不會(huì),可變序列用*=(就地乘法)后,不會(huì)創(chuàng)建新的序列,新元素追加到老元素上,以列表為例,我們看下新老列表的id,相等的。
          >>> l = [1, 2, 3]
          >>> id(l)
          4507939272
          >>> l *= 2
          >>> l
          [1, 2, 3, 1, 2, 3]
          >>> id(l)

          9、不可變序列用*=(就地乘法)后,會(huì)創(chuàng)建新的序列嗎?

          會(huì),不可變序列用*=(就地乘法)后,會(huì)創(chuàng)建新的序列,以元組為例,我們看下新老元組的id,是不同的。
          >>> t = (1, 2, 3)
          >>> id(t)
          4507902240
          >>> t *= 2
          >>> t
          (1, 2, 3, 1, 2, 3)
          >>> id(t)
          4507632648
          所以,對(duì)不可變序列進(jìn)行重復(fù)拼接操作的話,效率會(huì)很低,因?yàn)槊看味加幸粋€(gè)新對(duì)象,而解釋器需要把原來對(duì)象中的元素先復(fù)制到新的對(duì)象里,然后再追加新的元素。

          10、關(guān)于+=的一道謎題

          t = (1, 2, [30, 40])
          t[2] += [50, 60]
          到底會(huì)發(fā)生下面4種情況中的哪一種?a. t變成(1, 2, [30, 40, 50, 60])。b.因?yàn)閠uple不支持對(duì)它的元素賦值,所以會(huì)拋出TypeError異常。c.以上兩個(gè)都不是。d. a和b都是對(duì)的。答案是d,請(qǐng)看下運(yùn)行結(jié)果。
          >>> t = (1, 2, [30, 40])
          >>> t[2] += [50, 60]
          Traceback (most recent call last):
          File "<pyshell#1>", line 1, in <module>
          t[2] += [50, 60]
          TypeError: 'tuple' object does not support item assignment
          >>> t
          (1, 2, [30, 40, 50, 60])

          搜索下方加老師微信

          老師微信號(hào):XTUOL1988切記備注學(xué)習(xí)Python

          領(lǐng)取Python web開發(fā),Python爬蟲,Python數(shù)據(jù)分析,人工智能等精品學(xué)習(xí)課程。帶你從零基礎(chǔ)系統(tǒng)性的學(xué)好Python!

          *聲明:本文于網(wǎng)絡(luò)整理,版權(quán)歸原作者所有,如來源信息有誤或侵犯權(quán)益,請(qǐng)聯(lián)系我們刪除或授權(quán)


          瀏覽 35
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产在视频一区二区三区吞精 | 精品成人一区二区三区 | 亚洲中文字幕在线播放视频 | 成人高清无码视频 | 欧美成人性生活视频 |