歡迎關注公眾號【哈希大數(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ù)值型不需要)逊拍。
在上面的小應用中使用的是格式化動態(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程序谜喊。