python測試解答的簡單介紹

本文目錄一覽:

跪求一道Python的題目解答!

def isMima(mima):

—-mima = str(mima)

—-if mima.isdigit() and len(mima) ==6:

——–for i in range(1,6):

————int_i = mima[i]

————int_idel1 = str((int(mima[i-1])+1)**3)[-1]

————if int_i != int_idel1:

—————-return print(‘wrong’)

——–return print(‘right’)

—-else:

——–return print(‘wrong’)

isMima(272727)

isMima(123456)

isMima(‘272727’)

#字元串數字都可以輸入

Python筆試題,求大神解答

以下是我給你的一些建議:(有多種方法可實現,包括最新的f”)

一:(可以使用join)

a=[(14.58, 120.972),(14.58344, 120.9723)] #初始化列表a

print(a) #輸出a列表便於對比

b=[‘,’.join(‘({:.6f},{:.6f})’.format(*b) for b in a)] #格式化a列表

print(b) #輸出格式化後的列表

或:(因剛剛手工沒測試,上機後發現列錶帶有”號,上面代碼可以嘗試改成這樣)

a=[(14.58, 120.972),(14.58344, 120.9723)] #初始化列表a

print(a) #輸出a列表便於對比

b=”[%s]”%’,’.join(‘({:.6f},{:.6f})’.format(*b) for b in a) #格式化a列表

print(b) #輸出格式化後的列表

二:(使用官方3.6新增的格式化功能)

a=[(14.58, 120.972),(14.58344, 120.9723)] #初始化列表a

print(a) #輸出a列表便於對比

(x,y),(i,k)=a #解包

#對包進行格式化操作

x=f'{a[0][0]:.6f}’

y=f'{a[0][1]:.6f}’

i=f'{a[1][0]:.6f}’

k=f'{a[1][1]:.6f}’

#輸出

print([(x,y),(i,k)])

或:(因剛剛手工沒測試,上機後發現列錶帶有”號,上面代碼可以嘗試改成這樣)

a=[(14.58, 120.972),(14.58344, 120.9723)] #初始化列表a

print(a) #輸出列表a,方便對比

#格式化列表a

a=f'[({a[0][0]:.6f},{a[0][1]:.6f}),({a[1][0]:.6f},{a[1][1]:.6f})]’

#輸出格式後的列表a

print(a)

註:

個人建議使用format或f”代替%進行格式化操作。官方推薦用f-格式化。

為什麼呢?

舉個例子:(以下代碼在python在可運行正常)

name=”run24pro”

print(“my name is %s” % name)

但如果改成這樣:

name=(1,2,3)

print(“my name is %s” % name)

運行的時候將會返回一個類型錯誤。而以下代碼將不會。

name=(1,2,3)

print(“my name is {}”.format(name))

name=(1,2,3)

print(f'”my name is {name}”‘)

還有一點,新增的功能f-格式化是所有中最快的。

附:官方3.6新增的格式化功能供你參考

網頁鏈接

參考:

PEP 498 — Literal String Inte   Python 3.6中新的f-strings

純手工,如果對你有幫助望採納!

Python題求解答!

單元測試

如果你聽說過「測試驅動開發」(TDD:Test-Driven Development),單元測試就不陌生。

單元測試是用來對一個模塊、一個函數或者一個類來進行正確性檢驗的測試工作。

比如對函數abs(),我們可以編寫出以下幾個測試用例:

輸入正數,比如1、1.2、0.99,期待返回值與輸入相同;

輸入負數,比如-1、-1.2、-0.99,期待返回值與輸入相反;

輸入0,期待返回0;

輸入非數值類型,比如None、[]、{},期待拋出TypeError。

把上面的測試用例放到一個測試模塊里,就是一個完整的單元測試。

如果單元測試通過,說明我們測試的這個函數能夠正常工作。如果單元測試不通過,要麼函數有bug,要麼測試條件輸入不正確,總之,需要修復使單元測試能夠通過。

單元測試通過後有什麼意義呢?如果我們對abs()函數代碼做了修改,只需要再跑一遍單元測試,如果通過,說明我們的修改不會對abs()函數原有的行為造成影響,如果測試不通過,說明我們的修改與原有行為不一致,要麼修改代碼,要麼修改測試。

這種以測試為驅動的開發模式最大的好處就是確保一個程序模塊的行為符合我們設計的測試用例。在將來修改的時候,可以極大程度地保證該模塊行為仍然是正確的。

我們來編寫一個Dict類,這個類的行為和dict一致,但是可以通過屬性來訪問,用起來就像下面這樣:

d = Dict(a=1, b=2)

d[‘a’]

1

d.a

1

mydict.py代碼如下:

class Dict(dict):

   def __init__(self, **kw):

       super(Dict, self).__init__(**kw)

   def __getattr__(self, key):

       try:

           return self[key]

       except KeyError:

           raise AttributeError(r”‘Dict’ object has no attribute ‘%s'” % key)

   def __setattr__(self, key, value):

       self[key] = value

為了編寫單元測試,我們需要引入Python自帶的unittest模塊,編寫mydict_test.py如下:

import unittest

from mydict import Dict

class TestDict(unittest.TestCase):

   def test_init(self):

       d = Dict(a=1, b=’test’)

       self.assertEquals(d.a, 1)

       self.assertEquals(d.b, ‘test’)

       self.assertTrue(isinstance(d, dict))

   def test_key(self):

       d = Dict()

       d[‘key’] = ‘value’

       self.assertEquals(d.key, ‘value’)

   def test_attr(self):

       d = Dict()

       d.key = ‘value’

       self.assertTrue(‘key’ in d)

       self.assertEquals(d[‘key’], ‘value’)

   def test_keyerror(self):

       d = Dict()

       with self.assertRaises(KeyError):

           value = d[’empty’]

   def test_attrerror(self):

       d = Dict()

       with self.assertRaises(AttributeError):

           value = d.empty

編寫單元測試時,我們需要編寫一個測試類,從unittest.TestCase繼承。

以test開頭的方法就是測試方法,不以test開頭的方法不被認為是測試方法,測試的時候不會被執行。

對每一類測試都需要編寫一個test_xxx()方法。由於unittest.TestCase提供了很多內置的條件判斷,我們只需要調用這些方法就可以斷言輸出是否是我們所期望的。最常用的斷言就是assertEquals():

self.assertEquals(abs(-1), 1) # 斷言函數返回的結果與1相等

另一種重要的斷言就是期待拋出指定類型的Error,比如通過d[’empty’]訪問不存在的key時,斷言會拋出KeyError:

with self.assertRaises(KeyError):

   value = d[’empty’]

而通過d.empty訪問不存在的key時,我們期待拋出AttributeError:

with self.assertRaises(AttributeError):

   value = d.empty

運行單元測試

一旦編寫好單元測試,我們就可以運行單元測試。最簡單的運行方式是在mydict_test.py的最後加上兩行代碼:

if __name__ == ‘__main__’:

   unittest.main()

這樣就可以把mydict_test.py當做正常的python腳本運行:

$ python mydict_test.py

另一種更常見的方法是在命令行通過參數-m unittest直接運行單元測試:

$ python -m unittest mydict_test

…..

———————————————————————-

Ran 5 tests in 0.000s

OK

這是推薦的做法,因為這樣可以一次批量運行很多單元測試,並且,有很多工具可以自動來運行這些單元測試。

setUp與tearDown

可以在單元測試中編寫兩個特殊的setUp()和tearDown()方法。這兩個方法會分別在每調用一個測試方法的前後分別被執行。

setUp()和tearDown()方法有什麼用呢?設想你的測試需要啟動一個資料庫,這時,就可以在setUp()方法中連接資料庫,在tearDown()方法中關閉資料庫,這樣,不必在每個測試方法中重複相同的代碼:

class TestDict(unittest.TestCase):

   def setUp(self):

       print ‘setUp…’

   def tearDown(self):

       print ‘tearDown…’

可以再次運行測試看看每個測試方法調用前後是否會列印出setUp…和tearDown…。

小結

單元測試可以有效地測試某個程序模塊的行為,是未來重構代碼的信心保證。

單元測試的測試用例要覆蓋常用的輸入組合、邊界條件和異常。

單元測試代碼要非常簡單,如果測試代碼太複雜,那麼測試代碼本身就可能有bug。

單元測試通過了並不意味著程序就沒有bug了,但是不通過程序肯定有bug。

大佬們,關於一道python題目,在網上只有結果的式子…跪求解答!

a,n=map(int,input().split())

print(a,end=”)

for i in range(1,n):

    a=a*10+a%10

    print(‘+%d’%(a),end=”)

40道python二級考試真題火爆互聯網,完整版答案解析為你保駕護航

1.以下關於程序設計語言的描述,錯誤的選項是:

A Python語言是一種腳本編程語言

B 彙編語言是直接操作計算機硬體的編程語言

C 程序設計語言經歷了機器語言、彙編語言、腳本語言三個階段

D 編譯和解釋的區別是一次性翻譯程序還是每次執行時都要翻譯程序

正確答案: C

2.表達式 1001 == 0x3e7 的結果是:

A false

B False

C true

D True

正確答案: B

3.以下選項,不是Python保留字的選項是:

A del

B pass

C not

D string

正確答案: D

4.表達式 eval(『500/10』) 的結果是:

A 『500/10』

B 500/10

C 50

D 50.0

正確答案: D

5.表達式 type(eval(『45』)) 的結果是:

A

B

C None

D

正確答案: D

6.表達式 pmod(20,3) 的結果是:

A 6, 2

B 6

C 2

D (6, 2)

正確答案: D

7.以下關於字元串類型的操作的描述,錯誤的是:

A str.replace(x,y)方法把字元串str中所有的x子串都替換成y

B 想把一個字元串str所有的字元都大寫,用str.upper()

C 想獲取字元串str的長度,用字元串處理函數 str.len()

D 設 x = 』aa』 ,則執行x*3的結果是『aaaaaa』

正確答案: C

8.設 str = 『python』,想把字元串的第一個字母大寫,其他字母還是小寫,正確的選項是:

A print(str[0].upper()+str[1:])

B print(str[1].upper()+str[-1:1])

C print(str[0].upper()+str[1:-1])

D print(str[1].upper()+str[2:])

正確答案: A

9.以下選項,不屬於程序流程圖基本元素的是:

A 循環框

B 連接點

C 判斷框

D 起始框

正確答案: A

10.以下關於循環結構的描述,錯誤的是:

A 遍歷循環使用for in 語句,其中循環結構不能是文件

B 使用range()函數可以指定for循環的次數

C for i in range(5)表示循環5次,i的值是從0到4

D 用字元串做循環結構的時候,循環的次數是字元串的長度

正確答案: A

11.執行以下程序,輸入」93python22」,輸出結果是:

A python9322

B python

C 93python22

D 9322

正確答案: C

A la

B 請輸入整數

C pythonpython

D python

正確答案: C

A 2

B 請輸入q退出:

C 3

D 1

正確答案: A

14.以下程序的輸出結果是:

A 0

B 2

C UnboundLocalError

D 5

正確答案: A

A 18 None

B 10 18

C UnboundLocalError

D 18 18

正確答案: B

def test( b = 2, a = 4):

global z

z += a * b

return z

z = 10

print(test(),z)

18,18

17.以下程序的輸出結果是:

A 22.0 None

B 10 None

C 22 None

D 10.0 22.0

正確答案: B

18.以下表達式,正確定義了一個集合數據對象的是:

A x = { 200, 』flg』, 20.3}

B x = ( 200, 』flg』, 20.3)

C x = [ 200, 』flg』, 20.3 ]

D x = {『flg』 : 20.3}

正確答案: A

19.以下程序的輸出結果是:

A [『z』, 『j』, 『s』, 『y』]

B [『j』, 『s』, 『y』, 『z』]

C [『j』, 『z』, 『z』, 『s』, 『z』, 『y』, 『j』]

D [『j』, 『j』, 『s』, 『y』, 『z』, 『z』, 『z』]

正確答案: B

20.以下程序的輸出結果是:

A htslbht

B hlbst

C tsblh

D hhlstt

正確答案: B

21.已知id(ls1) = 4404896968,以下程序的輸出結果是:

A 4404896968 4404896904

B 4404896904 4404896968

C 4404896968 4404896968

D 4404896904 4404896904

正確答案: A

A [『300』,『200』,『400』]

B [『shandong』, 『hebei』, 『beijing』]

C [300,200,400]

D 『shandong』, 『hebei』, 『beijing』

正確答案: B

23.以下關於文件的描述,錯誤的是:

A 二進位文件和文本文件的操作步驟都是「打開-操作-關閉」

B open() 打開文件之後,文件的內容並沒有在內存中

C open()只能打開一個已經存在的文件

D 文件讀寫之後,要調用close()才能確保文件被保存在磁碟中了

正確答案: C

24.以下程序輸出到文件text.csv里的結果是:

A [90,87,93]

B 90,87,93

C 『[90,87,93]』

D 『90,87,93』

正確答案: B

25.以下程序的輸出結果是:

A ( [1,2,3,4,5])

B [12, 34, 56, 78]

C ([12, 34, 56, 78])

D [1,2,3,4,5]

正確答案: B

26.以下關於數據維度的描述,錯誤的是:

A 採用列表表示一維數據,不同數據類型的元素是可以的

B JSON格式可以表示比二維數據還複雜的高維數據

C 二維數據可以看成是一維數據的組合形式

D 字典不可以表示二維以上的高維數據

正確答案: D

27.以下不屬於Python的pip工具命令的選項是:

A show

B install

C download

D get

正確答案: D

29.以下不是程序輸出結果的選項是:

A [12, 78, 56, 34]

B [56, 12, 78, 34]

C [12, 34, 56, 78]

D [12, 78, 34, 56]

正確答案: C

30.以下關於turtle庫的描述,正確的是:

A 在import turtle之後就可以用circle()語句,來畫一個圓圈

B 要用from turtle import turtle來導入所有的庫函數

C home() 函數設置當前畫筆位置到原點,朝向東

D seth(x) 是setheading(x)函數的別名,讓畫筆向前移動x

正確答案: C

31.一些重要的程序語言(如C語言和Pascal語言)允許過程的遞歸調用。而實現遞歸調用中的存儲分配通常用

A 棧

B 堆

C 鏈表

D 數組

正確答案: A

因為函數調用是能過將關鍵寄存器壓棧保護現場;在函數返回時,彈棧恢復現場來完成的。

而遞歸調用說白了就是自已調用自己。也就是不停的上演pop, push的棧操作。

系統為什麼選用棧來實現函數間的調用呢?我覺的主要原因如下:

對於頻繁的調用操作過程中,棧的pop,push操作最簡潔,快速。硬體級(或者理解成彙編級也行)支持棧操作。所以用棧最高效,快速。如果用堆、數組、鏈表,不光要維護很多功能輔助性數據,演算法也很麻煩。這樣會大大降低計算機的使用效率。

32.下列敘述中正確的是

A 一個演算法的空間複雜度大,則其時間複雜度必定小

B 一個演算法的空間複雜度大,則其時間複雜度也必定大

C 演算法的時間複雜度與空間複雜度沒有直接關係

D 一個演算法的時間複雜度大,則其空間複雜度必定小

正確答案: C

34.軟體開發離不開系統環境資源的支持,其中必要的測試數據屬於

A 輔助資源

B 硬體資源

C 通信資源

D 支持軟體

正確答案: A

35.完全不考慮程序的內部結構和內部特徵,而只是根據程序功能導出測試用例的測試方法是

A 錯誤推測法

B 白箱測試法

C 黑箱測試法

D 安裝測試法

正確答案: C

37.下列有關資料庫的描述,正確的是

A 資料庫是一個關係

B 資料庫是一個DBF文件

C 資料庫是一個結構化的數據集合

D 資料庫是一組文件

正確答案: C

38.相對於資料庫系統,文件系統的主要缺陷有數據關聯差、數據不一致性和

A 可重用性差

B 冗餘性

C 非持久性

D 安全性差

正確答案: B

39.軟體開發的結構化生命周期方法將軟體生命周期劃分成

A 定義、開發、運行維護

B 設計階段、編程階段、測試階段

C 總體設計、詳細設計、編程調試

D 需求分析、功能定義、系統設計

正確答案: A

40.下列不屬於結構化分析的常用工具的是

A 判定樹

B 數據字典

C 數據流圖

D PAD圖

正確答案: C

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/310166.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2025-01-04 19:32
下一篇 2025-01-04 19:32

相關推薦

  • Python計算陽曆日期對應周幾

    本文介紹如何通過Python計算任意陽曆日期對應周幾。 一、獲取日期 獲取日期可以通過Python內置的模塊datetime實現,示例代碼如下: from datetime imp…

    編程 2025-04-29
  • Python列表中負數的個數

    Python列表是一個有序的集合,可以存儲多個不同類型的元素。而負數是指小於0的整數。在Python列表中,我們想要找到負數的個數,可以通過以下幾個方面進行實現。 一、使用循環遍歷…

    編程 2025-04-29
  • 如何查看Anaconda中Python路徑

    對Anaconda中Python路徑即conda環境的查看進行詳細的闡述。 一、使用命令行查看 1、在Windows系統中,可以使用命令提示符(cmd)或者Anaconda Pro…

    編程 2025-04-29
  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29
  • Python清華鏡像下載

    Python清華鏡像是一個高質量的Python開發資源鏡像站,提供了Python及其相關的開發工具、框架和文檔的下載服務。本文將從以下幾個方面對Python清華鏡像下載進行詳細的闡…

    編程 2025-04-29
  • Python程序需要編譯才能執行

    Python 被廣泛應用於數據分析、人工智慧、科學計算等領域,它的靈活性和簡單易學的性質使得越來越多的人喜歡使用 Python 進行編程。然而,在 Python 中程序執行的方式不…

    編程 2025-04-29
  • Python字典去重複工具

    使用Python語言編寫字典去重複工具,可幫助用戶快速去重複。 一、字典去重複工具的需求 在使用Python編寫程序時,我們經常需要處理數據文件,其中包含了大量的重複數據。為了方便…

    編程 2025-04-29
  • 蝴蝶優化演算法Python版

    蝴蝶優化演算法是一種基於仿生學的優化演算法,模仿自然界中的蝴蝶進行搜索。它可以應用於多個領域的優化問題,包括數學優化、工程問題、機器學習等。本文將從多個方面對蝴蝶優化演算法Python版…

    編程 2025-04-29

發表回復

登錄後才能評論