Python面向對象編程之區(qū)間的插入詳解
一、面向對象編程的Python實例描述
Python實例-區(qū)間插入的描述
給出一個無重疊的,按照區(qū)間起始端點排序的列表。
在列表中插入一個新的區(qū)間,可以確保列表中的區(qū)間。
新的列表區(qū)間仍然有序且不重疊(如果有必要的話,可以合并區(qū)間)。
二、面向對象編程的Python實例的示例
Python實例:區(qū)間的插入示例如下所示
示例一
- 輸入:(2, 5)
- 插入:[(1, 2),(5, 9)]
- 輸出:[(1,9)]
示例二
- 輸入:(3, 4)
- 插入:[(1, 2),(5, 9)]
- 輸出:[(1,2), (3,4), (5,9)]
三、面向對象編程的Python實例的編寫過程
3.1 本文的集成編譯環(huán)境
本文的編譯環(huán)境使用的是集成開發(fā)環(huán)境是: PyCharm 2021.1.1 x64

pycharm具有的特點如下所示
1.編碼協(xié)助
其提供了一個帶編碼補全,代碼片段,支持代碼折疊和分割窗口的智能、可配置的編輯器,可幫助用戶更快更輕松的完成編碼工作。
2.項目代碼導航
該IDE可幫助用戶即時從一個文件導航至另一個,從一個方法至其申明或者用法甚至可以穿過類的層次。
若用戶學會使用其提供的快捷鍵的話甚至能更快。

3.代碼分析
用戶可使用其編碼語法,錯誤高亮,智能檢測以及一鍵式代碼快速補全建議,使得編碼更優(yōu)化。
4.Python重構
有了該功能,用戶便能在項目范圍內輕松進行重命名,提取方法/超類,導入域/變量/常量,移動和前推/后退重構。
5.支持Django
有了它自帶的HTML,CSS和 JavaScript編輯器 ,用戶可以更快速的通過Django框架進行Web開發(fā)。
此外,其還能支持CoffeeScript, Mako 和 Jinja2。
6.支持Google App引擎
用戶可選擇使用Python 2.5或者2.7運行環(huán)境,為Google App引擎進行應用程序的開發(fā),并執(zhí)行例行程序部署工作。

7.集成版本控制
登入,錄出,視圖拆分與合并–所有這些功能都能在其統(tǒng)一的VCS用戶界面(可用于Mercurial, Subversion, Git, Perforce 和其他的 SCM)中得到。
8.圖形頁面調試器
用戶可以用其自帶的功能全面的調試器對Python或者Django應用程序以及測試單元進行調整,該調試器帶斷點,步進,多畫面視圖,窗口以及評估表達式。

9.集成的單元測試
用戶可以在一個文件夾運行一個測試文件,單個測試類,一個方法或者所有測試項目。
可自定義&可擴展
可綁定了 Textmate, NetBeans, Eclipse & Emacs 鍵盤主盤,以及 Vi/Vim仿真插件。
3.2 編寫Interval類
class Interval(object):
def __init__(self, start, end):
self.start = start
self.end = end
def get(self):
String = '(' + str(self.start) + ',' + str(self.end) + ')'
return String
def equals(self, Intervalx):
if self.start == Intervalx.start and self.end == Intervalx.end:
return 1
else:
return 0

3.3 編寫Solution類
class Solution:
def insert(self, intervals, newInterval):
results = []
insterPos = 0
for interval in intervals:
if interval.end < newInterval.start:
results.append(interval)
insterPos += 1
elif interval.start > newInterval.end:
results.append(interval)
else:
newInterval.start = min(interval.start, newInterval.start)
newInterval.end = max(interval.end, newInterval.end)
results.insert(insterPos, newInterval)
return results
3.4 編寫textOutput函數(shù)
def textOutput():
print('- 給出一個無重疊的,按照區(qū)間起始端點排序的列表。')
print('在列表中插入一個新的區(qū)間,可以確保列表中的區(qū)間。'
print('新的列表區(qū)間仍然有序且不重疊(如果有必要的話,可以合并區(qū)間)。')

3.5 編寫Main函數(shù)
def Main():
textOutput()
solution = Solution()
interval1 = Interval(1, 2)
interval2 = Interval(5, 9)
interval3 = Interval(2, 5)
results = solution.insert([interval1, interval2], interval3)
print('輸入: [', interval1.get(), ',', interval2.get(), ']', ' ', interval3.get())
print('輸出: [', results[0].get(), ']')
3.6 編寫調用Main的代碼
if __name__ == '__main__':
Main()
3.7 面向對象編程實例的運行結果

Python實例: 插入?yún)^(qū)間
給出一個無重疊的,按照區(qū)間起始端點排序的列表。
在列表中插入一個新的區(qū)間,可以確保列表中的區(qū)間。
新的列表區(qū)間仍然有序且不重疊(如果有必要的話,可以合并區(qū)間)。
Python實例-區(qū)間的插入運行結果
輸入: [ (1,2) , (5,9) ] (1,9)
輸出: [ (1,9) ]
Process finished with exit code 0
四、面向對象編程的Python實例的總結
本文主要講解了面向對象編程的Python實例:區(qū)間的插入
區(qū)間使用一個列表表示
列表是有序的
定義了Interval、Solution類
在類中定義了相關的方法、構造函數(shù)
在程序中編寫了相應的自定義的主函數(shù)
到此這篇關于Python面向對象編程之區(qū)間的插入詳解的文章就介紹到這了,更多相關Python區(qū)間插入內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

