最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python數(shù)據(jù)結(jié)構(gòu)輸入輸出及控制和異常

 更新時(shí)間:2022年01月25日 10:07:12   作者:柳小蔥  
這篇文章主要介紹了python數(shù)據(jù)結(jié)構(gòu)輸入輸出及控制和異常,上一章節(jié)中我們介紹了python的基礎(chǔ)數(shù)據(jù)類(lèi)型和集合數(shù)據(jù)類(lèi)型,這章節(jié)給大家介紹一下python的輸入輸出、控制和異常,對(duì)數(shù)據(jù)類(lèi)型感興趣的同學(xué)可以查看一下文章<BR>

前言:

python數(shù)據(jù)類(lèi)型: python數(shù)據(jù)結(jié)構(gòu)之?dāng)?shù)據(jù)類(lèi)型.
今天我們主要來(lái)介紹一些內(nèi)置函數(shù),比如輸入輸出,控制,和異常的用法,尤其是輸出和控制,用的太多了,寫(xiě)算法題,輸出數(shù)據(jù)格式問(wèn)題,對(duì)以后都會(huì)很有幫助。

1. 輸入 input

程序經(jīng)常需要與用戶(hù)進(jìn)行交互,以獲得數(shù)據(jù)或者提供某種結(jié)果。Python 提供了一個(gè)函數(shù),它使得我們可以要求用戶(hù)輸入數(shù)據(jù)并且返回一個(gè)字 符串的引用。這個(gè)函數(shù)就是 input。

#input案例
a=input("請(qǐng)輸入你的名字:")
print('你的名字是:',a)

需要注意的是,input 函數(shù)返回的值是一個(gè)字符串,它包含用戶(hù)在提示字符串后面輸入的所有字符。如果需要將這個(gè)字符串轉(zhuǎn)換成其他類(lèi)型,必須明確地提供類(lèi)型轉(zhuǎn)換。在下面的語(yǔ)句中, 用戶(hù)輸入的字符串被轉(zhuǎn)換成了浮點(diǎn)數(shù),以便于后續(xù)的算術(shù)處理。

type(a)
#結(jié)果為str
a=float(a)
type(a)
#結(jié)果為float

2. 輸出 print

2.1 普通輸出

print 函數(shù)為輸出 Python 程序的值提供了一種非常簡(jiǎn)便的方法。它接受零個(gè)或者多個(gè)參數(shù), 并且將單個(gè)空格作為默認(rèn)分隔符來(lái)顯示結(jié)果。通過(guò)設(shè)置 sep 這一實(shí)際參數(shù)可以改變分隔符。此外,每一次打印都默認(rèn)以換行符結(jié)尾。這一行為可以通過(guò)設(shè)置實(shí)際參數(shù) end 來(lái)更改。下面是一些例子。

print('hello')
#結(jié)果:hello
print('hello','world')
#結(jié)果:hello world
print('hello','world',sep='***')#sep指定特定的分隔符
#結(jié)果:hello***world
print('hello','world',end='****')#end 設(shè)置結(jié)尾參數(shù)
#結(jié)果:hello world****

2.2 格式化輸出

表達(dá)式的左邊部分是模板(也叫格式化字符串),右邊部分則是一系列用于格式化字符串的值。 需要注意的是,右邊的值的個(gè)數(shù)與格式化字符串中%的個(gè)數(shù)一致。這些值將依次從左到右地被換入格式化字符串。
格式化字符串可以包含一個(gè)或者多個(gè)轉(zhuǎn)換聲明。轉(zhuǎn)換字符告訴格式化運(yùn)算符,什么類(lèi)型的值會(huì)被插入到字符串中的相應(yīng)位置。在上面的例子中,%s 聲明了一個(gè)字符串,%d 則聲明了一個(gè)整數(shù)。其他可能的類(lèi)型聲明還包括 i、u、 f、e、g、c 和%,

具體如下表所示:

可以在%和格式化字符之間加入一個(gè)格式化修改符。格式化修改符可以根據(jù)給定的寬度對(duì)值 進(jìn)行左對(duì)齊或者右對(duì)齊,也可以通過(guò)小數(shù)點(diǎn)之后的一些數(shù)字來(lái)指定寬度。

格式化修改符表如下:

讓我們來(lái)看看一些案例:

name="apple"
price=6 
print("the %s costs %d cent" %(name,price))
#結(jié)果:the apple costs 6 cent

print("The %+10s costs %5.2f cents" % (name,price))#+代表右對(duì)齊,10代表占用10個(gè)字符
#結(jié)果:The      apple costs  6.00 cents
print("The %+10s costs %10.2f cents" % (name,price))#10.2代表占用10個(gè)字符,并保留2位小數(shù)。
#結(jié)果:The      apple costs       6.00 cents
itemdict = {"item":"banana","cost":24}#使用字典傳遞參數(shù)
print("The %(item)s costs %(cost)7.1f cents" % itemdict)
#結(jié)果:The banana costs    24.0 cents

3. 控制語(yǔ)句

算法需要兩個(gè)重要的控制結(jié)構(gòu):迭代和分支。Python 通過(guò)多種方式支持這兩種控制結(jié)構(gòu)。程序員可以根據(jù)需要選擇最有效的結(jié)構(gòu)。對(duì)于迭代,Python 提供了標(biāo)準(zhǔn)的 while 語(yǔ)句以及非常強(qiáng)大的 for 語(yǔ)句。while 語(yǔ)句會(huì)在給定條件為真時(shí)重復(fù)執(zhí)行一段代碼。

count=1
while count<=5:
    print("河南加油!")
    count+=1
#結(jié)果如下:
河南加油!
河南加油!
河南加油!
河南加油!
河南加油!

for item in '河南加油!':
    print(item)
# 結(jié)果如下
河
南
加
油
!

for i in range(5):
    print(i)
# 結(jié)果如下

0
1
2
3
4

#通過(guò)for語(yǔ)句輸出單個(gè)字符
wordlist = ['cat','dog','rabbit']
letterlist = []
for aword in wordlist:
    for aletter in aword:
        letterlist.append(aletter)
        
letterlist
#結(jié)果如下:
['c', 'a', 't', 'd', 'o', 'g', 'r', 'a', 'b', 'b', 'i', 't']

分支語(yǔ)句允許程序員進(jìn)行詢(xún)問(wèn),然后根據(jù)結(jié)果,采取不同的行動(dòng)。絕大多數(shù)的編程語(yǔ)言都提 供兩種有用的分支結(jié)構(gòu):ifelse if。以下是使用 ifelse 語(yǔ)句的一個(gè)簡(jiǎn)單的二元分支示例。

import math
n=float(input("請(qǐng)輸入一個(gè)數(shù)"))
if n < 0:
       print("Sorry,")
else:
       print(math.sqrt(n))
#結(jié)果:請(qǐng)輸入一個(gè)數(shù) 3
# 1.7320508075688772

#多條件分支
score=float(input("請(qǐng)輸入一個(gè)數(shù)"))
if score >= 90:
       print('A')
elif score >= 80:
       print('B')
elif score >= 70:
       print('C')
elif score >= 60:
       print('D')
else:
       print('F')
# 請(qǐng)輸入一個(gè)數(shù) 90 A

列表可以通過(guò)使用迭代結(jié)構(gòu)和分支結(jié)構(gòu)來(lái)創(chuàng)建。這種方式被稱(chēng)為列表解析式。通過(guò)列表解析式,可以根據(jù)一些處理和分支標(biāo)準(zhǔn)輕松創(chuàng)建列表。舉例來(lái)說(shuō),如果想創(chuàng)建一個(gè)包含前 10 個(gè)完全平方數(shù)的列表,可以使用以下的 for 語(yǔ)句。

sqlist = [x*x for x in range(1,11) if x%2 != 0]
# [1, 9, 25, 49, 81]
[ch.upper() for ch in 'comprehension' if ch not in 'aeiou']
#['C', 'M', 'P', 'R', 'H', 'N', 'S', 'N']

4. 異常處理

在編寫(xiě)程序時(shí)通常會(huì)遇到兩種錯(cuò)誤:

  • 第一種是語(yǔ)法錯(cuò)誤,也就是說(shuō),程序員在編寫(xiě)語(yǔ)句或者表達(dá)式時(shí)出錯(cuò)。例如,在寫(xiě) for 語(yǔ)句時(shí)忘記加冒號(hào)。
  • 第二種是邏輯錯(cuò)誤,即程序能執(zhí)行完成但返回了錯(cuò)誤的結(jié)果。這可能是由于算法本身有錯(cuò), 或者程序員沒(méi)有正確地實(shí)現(xiàn)算法。有時(shí),邏輯錯(cuò)誤會(huì)導(dǎo)致諸如除以 0、越界訪(fǎng)問(wèn)列表等非常嚴(yán)重的情況。這些邏輯錯(cuò)誤會(huì)導(dǎo)致運(yùn)行時(shí)錯(cuò)誤,進(jìn)而導(dǎo)致程序終止運(yùn)行。通常,這些運(yùn)行時(shí)錯(cuò)誤被稱(chēng)為異常。

當(dāng)異常發(fā)生時(shí),我們稱(chēng)程序“拋出”異常。可以用 try 語(yǔ)句來(lái)“處理”被拋出的異常。

  • 可以在 try 語(yǔ)句塊中調(diào)用 print 函數(shù)來(lái)處理這個(gè)異常。對(duì)應(yīng)的 except 語(yǔ)句塊“捕捉”到 這個(gè)異常,并且為用戶(hù)打印一條提示消息。
  • except 會(huì)捕捉到 sqrt 拋出的異常并打印提示消息,然后會(huì)使用對(duì)應(yīng)數(shù)字的絕對(duì)值來(lái)保證 sqrt 的參數(shù)非負(fù)。這意味著程序并不會(huì)終止,而是繼續(xù)執(zhí)行后續(xù)語(yǔ)句。
anumber = int(input("Please enter an integer "))
try:
     print(math.sqrt(anumber))
except:
     print("Bad Value for square root")
     print("Using absolute value instead")
     print(math.sqrt(abs(anumber)))

結(jié)果如下:

也可以使用 raise 語(yǔ)句來(lái)觸發(fā)運(yùn)行時(shí)異常。例如,可以先檢查值是否為負(fù),并在值為負(fù)時(shí)拋出異常,而不是給 sqrt 函數(shù)提供負(fù)數(shù)。下面的代碼段顯示了創(chuàng)建新的 RuntimeError 異常的結(jié)果。注意,程序仍然會(huì)終止,但是導(dǎo)致其終止的異常是由我們自己手動(dòng)創(chuàng)建的。

anumber=-21
if anumber < 0:
    raise RuntimeError("You can't use a negative number")
else:
    print(math.sqrt(anumber))

結(jié)果如下:

參考資料:

  • 《python數(shù)據(jù)結(jié)構(gòu)與算法》
  • 《大話(huà)數(shù)據(jù)結(jié)構(gòu)》

到此這篇關(guān)于python數(shù)據(jù)結(jié)構(gòu)輸入輸出及控制和異常的文章就介紹到這了,更多相關(guān)python數(shù)據(jù)結(jié)構(gòu)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Deepsort + Yolo 實(shí)現(xiàn)行人檢測(cè)和軌跡追蹤的方法

    Deepsort + Yolo 實(shí)現(xiàn)行人檢測(cè)和軌跡追蹤的方法

    這篇文章主要介紹了Deepsort + Yolo 實(shí)現(xiàn)行人檢測(cè)和軌跡追蹤,本項(xiàng)目通過(guò)采用深度學(xué)習(xí)方法實(shí)現(xiàn)YOLO算法行人檢測(cè)和deepsort算法對(duì)人員定位的和軌跡跟蹤,需要的朋友可以參考下
    2021-09-09
  • 探索Python?random模塊隨機(jī)性神奇世界

    探索Python?random模塊隨機(jī)性神奇世界

    Python中的random模塊提供了豐富的工具和函數(shù),幫助我們生成隨機(jī)數(shù)、操作隨機(jī)序列,以及模擬隨機(jī)性事件,在本文中,我們將分享random模塊,了解它的基本用法、功能和應(yīng)用領(lǐng)域,并提供示例代碼來(lái)幫助你更好地理解隨機(jī)性的神奇世界
    2023-11-11
  • Python腳本實(shí)現(xiàn)小猿口算

    Python腳本實(shí)現(xiàn)小猿口算

    最近小猿口算已經(jīng)被不少大學(xué)生攻占,一個(gè)好好的給小學(xué)生的口算題已經(jīng)變成了大學(xué)生的計(jì)算機(jī)大戰(zhàn),下面我們就來(lái)看看如何使用Python腳本就行吧小猿口算
    2024-10-10
  • python3 scrapy框架的執(zhí)行流程

    python3 scrapy框架的執(zhí)行流程

    Scrapy的安裝有多種方式,它支持Python2.7版本及以上或Python3.3版本及以上。下面說(shuō)明python3 scrapy框架的常用命令及框架執(zhí)行流程,感興趣的朋友一起看看吧
    2021-07-07
  • Python 從subprocess運(yùn)行的子進(jìn)程中實(shí)時(shí)獲取輸出的例子

    Python 從subprocess運(yùn)行的子進(jìn)程中實(shí)時(shí)獲取輸出的例子

    今天小編就為大家分享一篇Python 從subprocess運(yùn)行的子進(jìn)程中實(shí)時(shí)獲取輸出的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-08-08
  • Pytest執(zhí)行unittest TestSuite(測(cè)試套件)的實(shí)現(xiàn)方法

    Pytest執(zhí)行unittest TestSuite(測(cè)試套件)的實(shí)現(xiàn)方法

    TestSuite一直是unittest的靈活與精髓之處,在繁多的測(cè)試用例中,可以任意挑選和組合各種用例集,這篇文章主要介紹了Pytest執(zhí)行unittest TestSuite(測(cè)試套件)的實(shí)現(xiàn)方法,需要的朋友可以參考下
    2021-08-08
  • 在pycharm中使用matplotlib.pyplot 繪圖時(shí)報(bào)錯(cuò)的解決

    在pycharm中使用matplotlib.pyplot 繪圖時(shí)報(bào)錯(cuò)的解決

    這篇文章主要介紹了在pycharm中使用matplotlib.pyplot 繪圖時(shí)報(bào)錯(cuò)的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-06-06
  • keras 如何保存最佳的訓(xùn)練模型

    keras 如何保存最佳的訓(xùn)練模型

    這篇文章主要介紹了keras 如何保存最佳的訓(xùn)練模型,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-05-05
  • Python?subprocess.Popen?實(shí)時(shí)輸出?stdout的解決方法(正確管道寫(xiě)法)

    Python?subprocess.Popen?實(shí)時(shí)輸出?stdout的解決方法(正確管道寫(xiě)法)

    這篇文章主要介紹了Python?subprocess.Popen實(shí)時(shí)輸出stdout正確管道寫(xiě)法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-07-07
  • python3處理含有中文的url方法

    python3處理含有中文的url方法

    今天小編就為大家分享一篇python3處理含有中文的url方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-05-05

最新評(píng)論

山东| 绥中县| 长春市| 宜昌市| 邵东县| 昌江| 昆明市| 清苑县| 格尔木市| 湖州市| 玉树县| 昌邑市| 革吉县| 建湖县| 黎城县| 洱源县| 乌拉特中旗| 巴青县| 集安市| 孝感市| 盈江县| 新闻| 应用必备| 宣化县| 青冈县| 高青县| 江油市| 长岭县| 扬州市| 南乐县| 武隆县| 双峰县| 茂名市| 龙门县| 宜宾市| 开江县| 黄山市| 新建县| 吴江市| 出国| 宁明县|