欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

前言:

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

1. 輸入 input

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

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

需要注意的是,input 函數(shù)返回的值是一個(gè)字符串,它包含用戶在提示字符串后面輸入的所有字符。如果需要將這個(gè)字符串轉(zhuǎn)換成其他類型,必須明確地提供類型轉(zhuǎn)換。在下面的語(yǔ)句中, 用戶輸入的字符串被轉(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é)果。通過設(shè)置 sep 這一實(shí)際參數(shù)可以改變分隔符。此外,每一次打印都默認(rèn)以換行符結(jié)尾。這一行為可以通過設(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)算符,什么類型的值會(huì)被插入到字符串中的相應(yīng)位置。在上面的例子中,%s 聲明了一個(gè)字符串,%d 則聲明了一個(gè)整數(shù)。其他可能的類型聲明還包括 i、u、 f、e、g、c 和%,

具體如下表所示:

可以在%和格式化字符之間加入一個(gè)格式化修改符。格式化修改符可以根據(jù)給定的寬度對(duì)值 進(jìn)行左對(duì)齊或者右對(duì)齊,也可以通過小數(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 通過多種方式支持這兩種控制結(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

#通過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)行詢問,然后根據(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

列表可以通過使用迭代結(jié)構(gòu)和分支結(jié)構(gòu)來(lái)創(chuàng)建。這種方式被稱為列表解析式。通過列表解析式,可以根據(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. 異常處理

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

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

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

  • 可以在 try 語(yǔ)句塊中調(diào)用 print 函數(shù)來(lái)處理這個(gè)異常。對(duì)應(yīng)的 except 語(yǔ)句塊“捕捉”到 這個(gè)異常,并且為用戶打印一條提示消息。
  • 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)與算法》
  • 《大話數(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)文章

  • QML使用Python的函數(shù)過程解析

    QML使用Python的函數(shù)過程解析

    這篇文章主要介紹了QML使用Python的函數(shù)過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • python創(chuàng)建列表和向列表添加元素的實(shí)現(xiàn)方法

    python創(chuàng)建列表和向列表添加元素的實(shí)現(xiàn)方法

    下面小編就為大家分享一篇python創(chuàng)建列表和向列表添加元素的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧
    2017-12-12
  • 在Python中使用全局日志時(shí)需要注意的問題

    在Python中使用全局日志時(shí)需要注意的問題

    這篇文章主要介紹了在Python中使用全局日志時(shí)需要注意的問題, 作者由uliweb使用時(shí)遇到的問題分析全局日志出現(xiàn)錯(cuò)誤時(shí)的解決方法,需要的朋友可以參考下
    2015-05-05
  • Python實(shí)現(xiàn)多條件篩選目標(biāo)數(shù)據(jù)功能【測(cè)試可用】

    Python實(shí)現(xiàn)多條件篩選目標(biāo)數(shù)據(jù)功能【測(cè)試可用】

    這篇文章主要介紹了Python實(shí)現(xiàn)多條件篩選目標(biāo)數(shù)據(jù)功能,結(jié)合實(shí)例形式總結(jié)分析了Python3使用內(nèi)建函數(shù)filter、pandas包以及for循環(huán)三種方法對(duì)比分析了列表進(jìn)行條件篩選操作相關(guān)實(shí)現(xiàn)技巧與運(yùn)行效率,需要的朋友可以參考下
    2018-06-06
  • django實(shí)現(xiàn)用戶注冊(cè)實(shí)例講解

    django實(shí)現(xiàn)用戶注冊(cè)實(shí)例講解

    在本篇文章里小編給大家整理的是關(guān)于django用戶注冊(cè)的相關(guān)實(shí)例內(nèi)容,有興趣的朋友們學(xué)習(xí)下。
    2019-10-10
  • Python繪制并保存指定大小圖像的方法

    Python繪制并保存指定大小圖像的方法

    今天小編就為大家分享一篇Python繪制并保存指定大小圖像的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧
    2019-01-01
  • python request post 列表的方法詳解

    python request post 列表的方法詳解

    這篇文章主要介紹了python request post 列表的方法詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • python生成任意頻率正弦波方式

    python生成任意頻率正弦波方式

    今天小編就為大家分享一篇python生成任意頻率正弦波方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧
    2020-02-02
  • 簡(jiǎn)單了解python關(guān)鍵字global nonlocal區(qū)別

    簡(jiǎn)單了解python關(guān)鍵字global nonlocal區(qū)別

    這篇文章主要介紹了簡(jiǎn)單了解python關(guān)鍵字global nonlocal區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • python爬取各類文檔方法歸類匯總

    python爬取各類文檔方法歸類匯總

    網(wǎng)絡(luò)爬蟲不僅需要能夠抓取HTML中的敏感信息,也需要有抓取其他類型文檔的能力這篇文章主要為大家匯總了python爬取各類文檔方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-03-03

最新評(píng)論