python OS/pdb 模組及資料類型基礎

來源:互聯網
上載者:User

       import time

       time.sleep(2) #暫停2秒

       OS模組: 

os.chkdir(path)  轉換到目錄path 下。

os.system('md a')  可以直接建立目錄。

os.name字串指示你正在使用的平台。比如對於Windows,它是'nt',而對於Linux/Unix使用者,它是'posix'。
● os.getcwd()函數得到當前工作目錄,即當前Python指令碼工作的目錄路徑。
● os.getenv()和os.putenv()函數分別用來讀取和設定環境變數。
● os.listdir()返回指定目錄下的所有檔案和目錄名。
● os.remove()函數用來刪除一個檔案。
● os.system()函數用來運行shell命令。
● os.linesep字串給出當前平台使用的行終止符。例如,Windows使用'\r\n',Linux使用'\n'而Mac使用'\r'。
● os.path.split()函數返回一個路徑的目錄名和檔案名稱。
>>> os.path.split('/home/swaroop/byte/code/poem.txt')
('/home/swaroop/byte/code', 'poem.txt')
● os.path.isfile()和os.path.isdir()函數分別檢驗給出的路徑是一個檔案還是目錄。類似地,os.path.exists()函數用來檢驗給出的路徑是否真地存在。

exec語句用來執行儲存在字串或檔案中的Python語句。例如,我們可以在運行時產生一個包
含Python代碼的字串,然後使用exec語句執行這些語句。下面是一個簡單的例子。
>>> exec 'print "Hello World"'
Hello World
eval語句用來計算儲存在字串中的有效Python運算式。下面是一個簡單的例子。
>>> eval('2*3')
6

 

       已有PY檔案new1.py ,在命令列下輸入:new1>new.txt 可以將new1啟動並執行結果輸出到檔案new.txt,這稱為流重新導向。

       1、dir() 函數  顯示內容列表,包括很多東西,其中有變數。

       2、del   命令   刪除變數,如del a.

       3、建立你自己的模組
                #!/usr/bin/python
                # Filename: mymodule.py
                def sayhi():
                       print 'Hi, this is mymodule speaking.'
                       version = '0.1'
                # End of mymodule.py

        4、引用上面模組

                 import mymodule
                 mymodule.sayhi()
                 print 'Version', mymodule.version

           運行結果:

                 # Filename: mymodule_demo.py

                 $ python mymodule_demo.py
                 Hi, this is mymodule speaking.
                 Version 0.1

             第二種引用方法:

                 # Filename: mymodule_demo2.py
                 from mymodule import sayhi, version
                  # Alternative:
                 # from mymodule import *
                 sayhi()
                 print 'Version', version

                 結果一樣。

           5、列表   列表成員由逗號分開,用列表的sort方法來對列表排序。這個方法影響列表本身,而不是返回一個修改後的列表——這與字串工作的方法不同。這就是我們所說的列表是可變的而字串是不可變的 。可以對成員賦值,可以將值傳入另一列表,但目標列表必須先初始化0,即分配好記憶體單元。字串不能給成員賦值。

             list.sort()分類函數,按大小排列。append添加列表成員,del 刪除成員,如  shoplist.append  ('成員'),del shoplist[成員所在下標]。  help(list.sort)

              • insert(i, x) ---- 在指定位置插入一項。第一自變數是要在哪一個元素前面插入,用下標表示。例如,a.insert(0, x)在列表前面插入,a.insert(len(a), x)等價於a.append(x) 。

              • append(x) ---- 等價於a.insert(len(a), x)

                 a.extend(list)    添加多個元素。

              • index(x) ---- 在列表中尋找值x 然後返回第一個值為x 的元素的下標。沒有找到時出錯。

              • remove(x) ---- 從列表中刪去第一個值為x 的元素,找不到時出錯。

              • sort() ---- 對列表元素在原位排序。注意這個方法改變列表,而不是返回排序後的列表。

              • reverse() ---- 把列表元素反序。改變列表。

              • count(x) ---- 返回x 在列表中出現的次數。
                list() and tuple()可以進行列表與元組之間相互轉換。

           6、數組和列表十分類似只不過數組和字串一樣是不可變的 即你不能修改數組。數組通過圓括弧中用逗號分割的項目定義。數組通常用在使語句或使用者定義的函數能夠安全地採用一組值的時候,即被使用的數組的值不會改變。

                含有0個或1個項目的元組。一個空的元組由一對空的圓括弧組成,如myempty = ()。然而含有單個元素的元組就不那麼簡單了。你必須在第一個(唯一一個)項目後跟一個逗號,這樣Python才能區分元組和運算式中一個帶圓括弧的對象。即如果你想要的是一個包含項目2的元組的時候,你應該指明singleton = (2 , )。

          

           7、在列印時,加逗號表示列印在同一行,即不換行。不加系統預設換行。

           8、 數組# Filename: print_tuple.py
                 age = 22
                 name = 'Swaroop'
                 print '%s is %d years old' % (name, age)
                 print 'Why is %s playing with that python?' % name

           9、字典  索引值對在字典中以這樣的方式標記:d = {key1 : value1, key2 : value2 }。注意它們的鍵/值對用冒
號分割,而各個對用逗號分割,所有這些都包括在花括弧中。help(dict)查詢。

            # Filename: using_dict.py
# 'ab' is short for 'a'ddress'b'ook
            ab = { 'Swaroop' : 'swaroopch@byteofpython.info',
                           'Larry' : 'larry@wall.org',
                          'Matsumoto' : 'matz@ruby-lang.org',
                          'Spammer' : 'spammer@hotmail.com'
                       }
          print "Swaroop's address is %s" % ab['Swaroop']
          # Adding a key/value pair
          ab['Guido'] = 'guido@python.org'
          # Deleting a key/value pair
          del ab['Spammer']
          print '\nThere are %d contacts in the address-book\n' % len(ab)
          for name, address in ab.items():
                print 'Contact %s at %s' % (name, address)
          if 'Guido' in ab: # OR ab.has_key('Guido')
                print "\nGuido's address is %s" % ab['Guido']

          10、序列

             列表、數組和字串都是序列,序列的兩個主要特點是索引操作符和切片操作符。索引操作符讓我們可以從序列中抓取一個特定項目。切片操作符讓我們能夠擷取序列的一個切片,即一部分序列。

          11、引用與對象

                對兩個序列a,b. a=b與a=b[:]是不同的,後者是拷貝,前者是兩個變數指向同一個對象。

                字串的方法
                #!/usr/bin/python
                # Filename: str_methods.py
                name = 'Swaroop' # This is a string object
                if name.startswith('Swa'):
                print 'Yes, the string starts with "Swa"'
                if 'a' in name:
                print 'Yes, it contains the string "a"'
                if name.find('war') != -1:
                print 'Yes, it contains the string "war"'
                delimiter = '_*_'
                mylist = ['Brazil', 'Russia', 'India', 'China']
                print delimiter.join(mylist)
輸出
$ python str_methods.py
Yes, the string starts with "Swa"
Yes, it contains the string "a"
Yes, it contains the string "war"
Brazil_*_Russia_*_India_*_China

 PDB 模組:

用pdb進行python調試
epdb1.py.

    # epdb1.py -- experiment with the Python debugger, pdb
a = "aaa"
b = "bbb"
c = "ccc"
final = a + b + c
print final
比如要對這個程式進行調試:
1:在檔案前面加上這一句,引入調試的模組。
import pdb
2:在要開始調試的一行加上pdb.set_trace()

           檔案變成:
         

 # epdb1.py -- experiment with the Python debugger, pdb
import pdb
a = "aaa"
pdb.set_trace()
b = "bbb"
c = "ccc"
final = a + b + c
print final

可以運行這個程式,到斷點出會停下來,和gdb類似,
可以執行命令:
直接斷行符號是重複前一條命令!
p(print) 查看一個變數值
n(next) 下一步
s(step) 單步,可進入函數
c(continue)繼續前進
l(list)看原始碼
You can do anything at all at the (Pdb) prompt ...

還可以修改變數的值,但是要注意,前面加上!
比如要修改final的值,應該這樣!final="newvalue"

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.