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

一文帶你搞懂 Python 的輸入輸出

開發(fā) 后端
本文基于Python基礎(chǔ),介紹了常見的幾種輸入和輸出的幾種方式,通過一個個項(xiàng)目的實(shí)際操作,能夠更好的理解輸入和輸出語句的用法。在項(xiàng)目實(shí)踐過程中遇到的難點(diǎn),需要注意的點(diǎn)做了詳細(xì)講解。

[[437875]]

Hey,大家好呀,我是Go進(jìn)階者。

一、為什么要輸入和輸出?

無論是從 一開始的“hello world”,還是前面的各種例子,基本都是些“自說自話”,展示類的代碼片段。只有能夠接收用戶輸入,根據(jù)輸入代碼生成結(jié)果,并輸出到屏幕上展示出來,才算一個較為完整,簡單的程序。

二、 input輸入函數(shù)

獲取用戶輸入,保存成一個字符串。重要的話,說兩遍,input函數(shù)的返回值是一個字符串類型。哪怕你輸入的是個數(shù)字1,返回給你的只會是字符串“1”,而不是整數(shù)1。下面是一些簡單的展示例子:

  1. #第一個例子 
  2. >>> inp  = input("please input your name: "
  3. please input your name: jack 
  4. >>> inp 
  5. 'jack' 
  6. >>> type(inp) 
  7. <class 'str'
  8.  
  9. #第二個例子 
  10. age  = input("please input your age: "
  11. please input your age: 18 
  12.  print(age) 
  13. '18' 
  14.  
  15. #第三個例子 
  16. >>> type(age) 
  17. <class 'str'
  18.  
  19. #第四個例子 
  20.  
  21. >>> a = input("請輸入一個字符:"
  22. '請輸入一個字符:前后帶有空白'  
  23. >>> a 
  24. '   前后帶有空白   ' 

第一個例子中,inp = input("please input your name: "),input函數(shù)里可以提供一個字符串,用來給用戶進(jìn)行輸入提示。input函數(shù)的返回值賦值給inp這個變量后,inp里就保存了用戶輸入的值。

type是Python內(nèi)置的函數(shù)之一,非常有用,用于查看對象的數(shù)據(jù)類型。

第二個例子, 輸入了年齡18,但age里保存的是一個“18”的字符串。

第三個例子,什么都沒輸入,返回的是一個空字符串。

第四個例子,有效輸入的前后空白被保留在了返回的字符串中。

從上面例子的展示中,不難發(fā)現(xiàn),input函數(shù)將用戶的輸入原樣不動的返回給了變量 ,并包裝成一個字符串。這肯定是不行的,會帶來很多問題,所以通常都需要對用戶輸入進(jìn)行處理和判定。

對空輸入進(jìn)行處理:

  1. inp = input("請輸入你的姓名:  "
  2.  
  3. if inp == "":     
  4.     inp = input("姓名不能為空,請重新輸入:  "

將字符串轉(zhuǎn)換成數(shù)字類型:

  1. age = input("請輸入你的年齡:"
  2.  
  3. age = int(age)   # 將字符串轉(zhuǎn)化為整數(shù) 
  4.  
  5. if age > 18: 
  6.     print("你已經(jīng)成年!"
  7. else
  8.     print("還沒斷奶?"

去除開頭的空白lstrip,去除結(jié)尾的空白rstrip以及去除兩端的空白strip

  1. inp = input("請輸入你的姓名:  "
  2.  
  3. inp = inp.strip()  # strip的用法在字符串?dāng)?shù)據(jù)類型有講述 
  4.  
  5. print(inp) 

判斷輸入的字符類型

前面在將字符串轉(zhuǎn)化為整數(shù)用的是int()函數(shù),這種方式有危險的,看下面的例子:

  1. s = "123" 
  2. a = int(s) 
  3. print(a) 
  4.  
  5. s = "something" 
  6. a = int(s) 

對于形如“123”, “283242”的字符串,轉(zhuǎn)化沒問題,但是對于包含字符、特殊字符的字符串就沒辦法轉(zhuǎn)化了,會彈出異常錯誤。所以在使用int函數(shù)之前,要先對輸入進(jìn)行判斷。

修改一下上面的例子:

  1. age = input("請輸入你的年齡:"
  2.  
  3. if age.isdigit():   # 使用isdigit函數(shù)判斷輸入是否全是數(shù)字格式 
  4.     age = int(age)   # 將字符串轉(zhuǎn)化為整數(shù) 
  5.     print("你的年齡是:", age) 
  6. else
  7.     print("輸入不合法!"

input函數(shù)有時可以巧妙地用于阻塞或暫停程序

  1. print("程序前面部分執(zhí)行完畢......"
  2.  
  3. input("請按回車?yán)^續(xù)......")       # 在這里程序會暫停,等待你的回車動作 
  4.  
  5. print("繼續(xù)執(zhí)行程序的后面部分......"

此時的input函數(shù)不會將輸入保存下來,只是用作暫停程序動作。

三、 print輸入函數(shù)

print函數(shù)用于將內(nèi)容格式化顯示在標(biāo)準(zhǔn)輸出上,主要指的是屏幕顯示器。

print可以接受多個字符串,字符串類型的變量或者可print的對象。每個字符串用逗號“,”隔開,連成一串輸出。print會依次打印每個字符串,同時,每遇到一個逗號“,”就輸出一個空格。

  1. a = "i am" 
  2. b = "student" 
  3. print(a,"a", b) 
  4. # 自動以空格分隔 
  5. print(a+"a"+b) 

對于形如print(a+"a"+b)的語句,其實(shí)是先計(jì)算a+"a"+b的值,然后再通過print打印它。print()會自動執(zhí)行內(nèi)部的語句,輸出想要的結(jié)果。再看一個例子:

  1. >>> a = 10 
  2. >>> b = 2 
  3. >>> print(sum((a, a*b)))        # 先求a*b,再求和,再打印 
  4. 30   #結(jié)果 

看一下print函數(shù)的原型:print(self, *args, sep=' ', end='\n', file=None)

sep參數(shù): 分隔的符號,默認(rèn)是一個空格;

end參數(shù): 打印后的結(jié)束方式,默認(rèn)為換行符\n。如果,設(shè)置end='',則可以不換行,讓print在一行內(nèi)連續(xù)打印?;钣胮rint的參數(shù),可以實(shí)現(xiàn)靈活的打印控制。

  1. >>> a = "i am" 
  2. >>> b = "student" 
  3. >>> print(a,"a" , b, sep="*"
  4. i am*a*student #輸出結(jié)果 

四、 print格式化輸出

在Python2.6以后,有兩種格式化輸出的方式。

一種就是類似C語言的printf的%百分號格式化輸出,也是Python最基礎(chǔ)最常用的格式化輸出方式。另一種就是str.format()的方式。

這里 重點(diǎn)講述一下傳統(tǒng)的%百分號格式化輸出方式,

以下面的語句為例:

  1. print ("我叫 %s 今年 %d 歲!" % ('小明', 10)) 

首先構(gòu)造一個字符串"我叫 %s 今年 %d 歲!",將其中需要用別的變量或值替代的部分,用%百分符加一個數(shù)據(jù)類型代號,比如%s、%d來代替。然后在字符串的后面用%加一個同樣數(shù)量變量或值的元組。

也就是前面有多少個%符號,后面就要提供多少個參數(shù)值,每個參數(shù)值之間用逗號隔開,所有參數(shù)用圓括號括起來。每個參數(shù)與前面的%一一對應(yīng),并且數(shù)據(jù)類型也要能夠合法對應(yīng)。

這是基本用法,更多的格式見下圖,然后掌握格式的搭配方法。

格式化符號:(圖片來源于百度,侵權(quán)請聯(lián)系刪除)

格式化操作符輔助指令:(圖片來源于百度,侵權(quán)請聯(lián)系刪除)

經(jīng)典案例:

  1. s = "i am %s" % "jack" 
  2. print(s) 
  3.  
  4. s = "i am %s age %d" % ("jack", 18) 
  5. print(s) 
  6.  
  7. s = "i am %(name)s age %(age)d" % {"name""jack""age": 18} 
  8. print(s) 
  9. s = "percent %.2f" % 99.97623 
  10. print(s) 
  11. s = "i am %(pp).2f" % {"pp": 123.425556, } 
  12. print(s) 
  13. s = "i am %.2f %%" % 123.425556 
  14. print(s) 

需要特別說明的是,如果你想在print中打印一個%百分符號本身,那么你需要使用%%,兩個百分符轉(zhuǎn)義出一個百分符,也就是print("%%")。

如果你對print復(fù)雜的格式化控制無愛,對美觀也沒有要求,那么簡單傻瓜式的一路用%s作為占位符,是種省事的做法。例如:

  1. print("%s %s %s %s %s" % (a, b, c, d, e)) 

五、總結(jié)

本文基于Python基礎(chǔ),介紹了常見的幾種輸入和輸出的幾種方式,通過一個個項(xiàng)目的實(shí)際操作,能夠更好的理解輸入和輸出語句的用法。在項(xiàng)目實(shí)踐過程中遇到的難點(diǎn),需要注意的點(diǎn)做了詳細(xì)講解。

希望能夠幫助讀者更好的學(xué)習(xí)Python。我是Go進(jìn)階者,如果覺得還不錯,記得動手點(diǎn)贊一下哈。

本文轉(zhuǎn)載自微信公眾號「Go語言進(jìn)階學(xué)習(xí)」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請聯(lián)系Go語言進(jìn)階學(xué)習(xí)公眾號。

 

責(zé)任編輯:武曉燕 來源: Go語言進(jìn)階學(xué)習(xí)
相關(guān)推薦

2021-09-11 10:41:27

PythonPickle模塊

2023-03-06 21:29:41

mmap技術(shù)操作系統(tǒng)

2021-09-07 09:46:40

JavaScriptGenerator函數(shù)

2024-11-19 13:20:55

2021-11-06 10:18:30

Python變量常量

2021-06-24 10:24:57

Linux輸入輸出設(shè)備Interface

2021-08-05 06:54:05

觀察者訂閱設(shè)計(jì)

2021-11-20 10:27:43

Python數(shù)據(jù)類型

2021-11-22 06:21:31

Python數(shù)據(jù)類型Python基礎(chǔ)

2024-04-12 12:19:08

語言模型AI

2022-03-24 08:51:48

Redis互聯(lián)網(wǎng)NoSQL

2021-09-28 07:12:10

avaScriptCurrying柯里化

2020-05-11 14:35:11

微服務(wù)架構(gòu)代碼

2021-07-21 09:24:25

MongoDB數(shù)據(jù)庫 Python

2021-03-22 10:05:59

netstat命令Linux

2023-09-08 08:20:46

ThreadLoca多線程工具

2023-09-15 12:00:01

API應(yīng)用程序接口

2020-02-21 20:10:13

搞懂事務(wù)隔離級別

2021-03-06 08:04:46

NginxHttpHttps

2022-02-14 21:17:21

RPC框架協(xié)議
點(diǎn)贊
收藏

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