歡迎關(guān)注公眾號(hào)【哈希大數(shù)據(jù)】
〖 python小應(yīng)用 〗
問題描述:在有序的數(shù)組中新插入一個(gè)不存在的數(shù),并且保持該數(shù)組仍然有序
import random
def ori_data(start, stop, length):
#準(zhǔn)確指定起始范圍由小到大 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('所選范圍不符合要求,請(qǐng)重新指定')
return None
else: #利用隨機(jī)函數(shù)生成隨機(jī)數(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('有重復(fù),已經(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))
運(yùn)行結(jié)果
D:/vernacular/coding_ziyi/InsertAndSort.py
有重復(fù),已經(jīng)重新生成
有重復(fù),已經(jīng)重新生成
有重復(fù),已經(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('')
運(yùn)行結(jié)果
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)用的方法計(jì)算某個(gè)數(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('請(qǐng)輸出你要計(jì)算的數(shù): ') first_num = int(sys.stdin.readline( )) # first_num = int(input('請(qǐng)輸入你要計(jì)算的數(shù): '))
result = Factorial(first_num) sys.stdin.write('{}的階乘是:{}'.format(first_num, result))
運(yùn)行結(jié)果
D:/vernacular/coding_ziyi/recursive.py
請(qǐng)輸入你要計(jì)算的數(shù): 5
5的階乘是:120
上述三個(gè)小實(shí)例,演示了利用python進(jìn)行輸入和輸出具體交互。可以在特定位置指定輸出內(nèi)容,進(jìn)一步了解程序運(yùn)行過程;完成格式化輸出,更加清晰展示運(yùn)行結(jié)果。最重要的是,可以輸入不同內(nèi)容而完成特定的功能。
接下來我們就來具體了解一下python的輸入和輸出的應(yīng)用和實(shí)現(xiàn)。
〖 python的輸入輸出 〗
input----****根據(jù)實(shí)際需求指定輸入內(nèi)容的類型
python的內(nèi)置函數(shù)input()可以接受用戶輸入的相關(guān)內(nèi)容,提供給計(jì)算機(jī)程序所需的信息,更好的完成特定的任務(wù)。在python3.x中raw_input( )和input( )進(jìn)行了整合,去除了raw_input( ),僅保留了input( )函數(shù),其接收任意任性輸入,將所有輸入默認(rèn)為字符串處理,并返回字符串類型。
#案例三first_num = int(input('請(qǐng)輸入你要計(jì)算的數(shù): '))
以第三個(gè)案例為例,就是為了獲得用戶想要計(jì)算階乘的一個(gè)數(shù)字,但是input函數(shù)是以字符串的格式存儲(chǔ)用戶輸入的內(nèi)容的,因此需要在只輸入之前強(qiáng)制轉(zhuǎn)化一下數(shù)據(jù)的類型。而常用的類型轉(zhuǎn)換函數(shù)還有str、float、list以及一些第三方包numpy和pandas中特有的類型array、DataFrame、series等等。
有了輸入,計(jì)算機(jī)程序可以更好的按照需求完成相關(guān)任務(wù)。但是程序也需要將運(yùn)行結(jié)果輸出,讓用戶更好地明確程序的準(zhǔn)確性。同樣python的內(nèi)置函數(shù)print()就可以很好的完成這一要求。按照常規(guī)套路,在安裝教程中通常都會(huì)執(zhí)行print(‘hello world’)來驗(yàn)證開發(fā)環(huán)境是否安裝成功。因此輸出函數(shù)是輔助調(diào)試程序的很好地助手。養(yǎng)成良好的格式化輸出習(xí)慣,對(duì)于調(diào)整復(fù)雜程序或許能起到事半功倍的效果。
print----****建立良好的輸出習(xí)慣
print(‘hello world’)是輸出單個(gè)字符串,如果要輸出多個(gè)字符串,可以以逗號(hào)分隔每個(gè)字符串并且在同一行完成一條print操作,執(zhí)行完一條print操作會(huì)默認(rèn)執(zhí)行換行操作,因此如果想要多語句同時(shí)輸出到同一行,則可以指定參數(shù)end=‘,’完成連接多行輸出。而且也可以直接在輸出中完成數(shù)值運(yùn)算操作(字符串格式的內(nèi)容必須寫入引號(hào)中,數(shù)值型不需要)。

在上面的小應(yīng)用中使用的是格式化動(dòng)態(tài)輸出變量的方法,這是python2.6之后推出新的格式化方法。按照指定位置(或設(shè)置參數(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)】也依舊是可以應(yīng)用的,但是更多的是推薦使用新的格式化方法。
stdin&&stdout----python的標(biāo)準(zhǔn)輸入輸出
除了python內(nèi)置的輸入輸出函數(shù)input和print,sys.stdin與sys.stdout(python的標(biāo)準(zhǔn)輸入輸出)也可以等價(jià)的完成類似的功能。因?yàn)閕nput和print在原則就是通過調(diào)用sys.stdin的readline()方法和sys.stdout的write()方法上述兩種方法而完成輸入輸出的,python內(nèi)置的input和print操作也更便捷,input可以直接內(nèi)置提示語,不需要另外輸出提示語。但是sys.stdin與sys.stdout也有其他不同的功能,要根據(jù)實(shí)際需求看是否要應(yīng)用標(biāo)準(zhǔn)的文件格式的輸入輸出操作。
〖 總結(jié) 〗
總之,一個(gè)完善的python應(yīng)用的形成不會(huì)是一蹴而就的,因此每次在編寫應(yīng)用程序時(shí),需要不斷的進(jìn)行代碼的調(diào)試。這時(shí)為了很好的找到問題的癥結(jié)所在,就需要很好地借助python的輸入輸出函數(shù)來完善python程序。