白話python連載(3)巧妙使用輸入輸出

歡迎關注公眾號【哈希大數(shù)據(jù)】

〖 python小應用 〗

問題描述:在有序的數(shù)組中新插入一個不存在的數(shù)杯活,并且保持該數(shù)組仍然有序

import random
def ori_data(start, stop, length): 
#準確指定起始范圍由小到大 start,stop = (int(start),int(stop)) if start <= stop else (int(stop),int(start))
 length = int(abs(length)) if length else 0
 if int(abs(start-stop)) < length: print('所選范圍不符合要求橡庞,請重新指定')
 return None 
else: #利用隨機函數(shù)生成隨機數(shù)組,并且保證數(shù)值唯一
 random_list = []
 for i in range(length): 
one_number = random.randint(start, stop)
 while one_number in random_list: one_number = random.randint(start,stop)
 print('有重復拔鹰,已經(jīng)重新生成') random_list.append(one_number) random_list = sorted(random_list) return random_list
if __name__ == '__main__': ori_data = ori_data(38,22,10) print('新生成的數(shù)組為:{}'.format(ori_data))

運行結果

D:/vernacular/coding_ziyi/InsertAndSort.py

有重復,已經(jīng)重新生成

有重復例书,已經(jīng)重新生成

有重復决采,已經(jīng)重新生成

新生成的數(shù)組為:[23, 25, 26, 31, 32, 34, 35, 36, 37, 38]

問題描述:按格式輸出九九乘法表

#!/usr/bin/python
# -*- coding: utf-8 -*-
for i in range(1,10): for j in range(1,i+1):
 multip = i * j print('{}*{}={}'.format(j,i,multip),end=' ')
 print('')

運行結果

D:/vernacular/coding_ziyi/multiplication_table.py

11=1*

12=2 22=4

13=3 23=6 33=9*

14=4 24=8 34=12 44=16

15=5 25=10 35=15 45=20 55=25*

16=6 26=12 36=18 46=24 56=30 66=36

17=7 27=14 37=21 47=28 57=35 67=42 77=49*

18=8 28=16 38=24 48=32 58=40 68=48 78=56 88=64

19=9 29=18 39=27 49=36 59=45 69=54 79=63 89=72 99=81*

問題描述:使用遞歸調(diào)用的方法計算某個數(shù)的階乘

#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
def Factorial(num): 
if num == 1 : return 1 
else: result = num * Factorial(num-1) 
return result
if __name__ == '__main__' : print('請輸出你要計算的數(shù): ') first_num = int(sys.stdin.readline( )) # first_num = int(input('請輸入你要計算的數(shù): '))
 result = Factorial(first_num) sys.stdin.write('{}的階乘是:{}'.format(first_num, result))

運行結果

D:/vernacular/coding_ziyi/recursive.py

請輸入你要計算的數(shù): 5

5的階乘是:120

上述三個小實例,演示了利用python進行輸入和輸出具體交互孝偎∫露埽可以在特定位置指定輸出內(nèi)容势决,進一步了解程序運行過程果复;完成格式化輸出虽抄,更加清晰展示運行結果极颓。最重要的是菠隆,可以輸入不同內(nèi)容而完成特定的功能。

接下來我們就來具體了解一下python的輸入和輸出的應用和實現(xiàn)破衔。

〖 python的輸入輸出 〗

input----****根據(jù)實際需求指定輸入內(nèi)容的類型

python的內(nèi)置函數(shù)input()可以接受用戶輸入的相關內(nèi)容嫡丙,提供給計算機程序所需的信息曙博,更好的完成特定的任務父泳。在python3.x中raw_input( )和input( )進行了整合惠窄,去除了raw_input( ),僅保留了input( )函數(shù)近刘,其接收任意任性輸入,將所有輸入默認為字符串處理案淋,并返回字符串類型踢京。

#案例三first_num = int(input('請輸入你要計算的數(shù): '))

以第三個案例為例,就是為了獲得用戶想要計算階乘的一個數(shù)字蹈丸,但是input函數(shù)是以字符串的格式存儲用戶輸入的內(nèi)容的逻杖,因此需要在只輸入之前強制轉(zhuǎn)化一下數(shù)據(jù)的類型。而常用的類型轉(zhuǎn)換函數(shù)還有str够话、float霎箍、list以及一些第三方包numpy和pandas中特有的類型array漂坏、DataFrame、series等等驯绎。

有了輸入剩失,計算機程序可以更好的按照需求完成相關任務。但是程序也需要將運行結果輸出,讓用戶更好地明確程序的準確性芒粹。同樣python的內(nèi)置函數(shù)print()就可以很好的完成這一要求。按照常規(guī)套路,在安裝教程中通常都會執(zhí)行print(‘hello world’)來驗證開發(fā)環(huán)境是否安裝成功疙教。因此輸出函數(shù)是輔助調(diào)試程序的很好地助手。養(yǎng)成良好的格式化輸出習慣祟同,對于調(diào)整復雜程序或許能起到事半功倍的效果。

print----****建立良好的輸出習慣

print(‘hello world’)是輸出單個字符串,如果要輸出多個字符串,可以以逗號分隔每個字符串并且在同一行完成一條print操作蹄皱,執(zhí)行完一條print操作會默認執(zhí)行換行操作压鉴,因此如果想要多語句同時輸出到同一行,則可以指定參數(shù)end=‘盔几,’完成連接多行輸出晴弃。而且也可以直接在輸出中完成數(shù)值運算操作(字符串格式的內(nèi)容必須寫入引號中,數(shù)值型不需要)逊拍。

5.png

在上面的小應用中使用的是格式化動態(tài)輸出變量的方法,這是python2.6之后推出新的格式化方法际邻。按照指定位置(或設置參數(shù))完成變量的格式化輸出芯丧。format中有豐富的格式限定符,有很多格式限定方法世曾,使用更加靈活缨恒,兩種格式化方式如下:

#指定參數(shù)名稱
print('新生成的數(shù)組為:{name}'.format(name=ori_data))#
使用位置參數(shù)print('{0}*{1}={2}'.format(j,i,multip),end=' '),

傳統(tǒng)的格式化方法【print(‘%s*%s=%s’%j轮听,%i骗露,%multip)】也依舊是可以應用的,但是更多的是推薦使用新的格式化方法血巍。

stdin&&stdout----python的標準輸入輸出

除了python內(nèi)置的輸入輸出函數(shù)input和print萧锉,sys.stdin與sys.stdout(python的標準輸入輸出)也可以等價的完成類似的功能。因為input和print在原則就是通過調(diào)用sys.stdin的readline()方法和sys.stdout的write()方法上述兩種方法而完成輸入輸出的述寡,python內(nèi)置的input和print操作也更便捷柿隙,input可以直接內(nèi)置提示語叶洞,不需要另外輸出提示語。但是sys.stdin與sys.stdout也有其他不同的功能衩辟,要根據(jù)實際需求看是否要應用標準的文件格式的輸入輸出操作波附。

〖 總結 〗

總之封寞,一個完善的python應用的形成不會是一蹴而就的,因此每次在編寫應用程序時谦炒,需要不斷的進行代碼的調(diào)試宁改。這時為了很好的找到問題的癥結所在,就需要很好地借助python的輸入輸出函數(shù)來完善python程序谜喊。

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市诵次,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌遵堵,老刑警劉巖汪茧,帶你破解...
    沈念sama閱讀 219,039評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件弥虐,死亡現(xiàn)場離奇詭異霜瘪,居然都是意外死亡捻撑,警方通過查閱死者的電腦和手機顾患,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評論 3 395
  • 文/潘曉璐 我一進店門徙歼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來魄梯,“玉大人彭谁,你說我怎么就攤上這事允扇《链Γ” “怎么了?”我有些...
    開封第一講書人閱讀 165,417評論 0 356
  • 文/不壞的土叔 我叫張陵粥脚,是天一觀的道長冤留。 經(jīng)常有香客問我天通,道長,這世上最難降的妖魔是什么像寒? 我笑而不...
    開封第一講書人閱讀 58,868評論 1 295
  • 正文 為了忘掉前任烘豹,我火速辦了婚禮,結果婚禮上萝映,老公的妹妹穿的比我還像新娘吴叶。我一直安慰自己,他們只是感情好序臂,可當我...
    茶點故事閱讀 67,892評論 6 392
  • 文/花漫 我一把揭開白布蚌卤。 她就那樣靜靜地躺著,像睡著了一般奥秆。 火紅的嫁衣襯著肌膚如雪逊彭。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,692評論 1 305
  • 那天构订,我揣著相機與錄音侮叮,去河邊找鬼。 笑死悼瘾,一個胖子當著我的面吹牛囊榜,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播亥宿,決...
    沈念sama閱讀 40,416評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼卸勺,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了烫扼?” 一聲冷哼從身側(cè)響起曙求,我...
    開封第一講書人閱讀 39,326評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后悟狱,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體静浴,經(jīng)...
    沈念sama閱讀 45,782評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,957評論 3 337
  • 正文 我和宋清朗相戀三年挤渐,在試婚紗的時候發(fā)現(xiàn)自己被綠了苹享。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,102評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡挣菲,死狀恐怖富稻,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情白胀,我是刑警寧澤椭赋,帶...
    沈念sama閱讀 35,790評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站或杠,受9級特大地震影響哪怔,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜向抢,卻給世界環(huán)境...
    茶點故事閱讀 41,442評論 3 331
  • 文/蒙蒙 一认境、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧挟鸠,春花似錦叉信、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至覆享,卻和暖如春佳遂,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背撒顿。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評論 1 272
  • 我被黑心中介騙來泰國打工丑罪, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人凤壁。 一個月前我還...
    沈念sama閱讀 48,332評論 3 373
  • 正文 我出身青樓吩屹,卻偏偏與公主長得像,于是被迫代替她去往敵國和親拧抖。 傳聞我的和親對象是個殘疾皇子祟峦,可洞房花燭夜當晚...
    茶點故事閱讀 45,044評論 2 355

推薦閱讀更多精彩內(nèi)容