最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python從入門到精通(DAY 1)

 更新時間:2015年12月20日 09:45:51   投稿:hebedich  
本文是此次python從入門到精通系列文章的第一篇,給大家匯總一下常用的Python的基礎知識,非常的簡單,但是很全面,有需要的小伙伴可以參考下

1、要點

   (1) 在C語言中沒有字符串,只有字符,

   在python中的字符串hello,在C語言中是以字符數(shù)組在內(nèi)存存放['h','e','l','l','o'],如果對字符串修改,則是在內(nèi)存中新開辟了一段空間進行存放。

   字符串特性:一旦修改,需要重新創(chuàng)建。

   例: "hello" + "ni" + "hao"      內(nèi)存中:['h','e','l','l','o'] + ['n','i'] + ['h','a','o']

   萬惡的“+”,“+”號越多,在內(nèi)存中多次重復創(chuàng)建,浪費空間。

   C語言需要手動回收,而python,C#等高級語言自帶虛擬機會進行GC垃圾回收沒有被調(diào)用的內(nèi)存訪問空間。

   (2) python字符串的格式化(占位符)可以節(jié)省內(nèi)存空間,有如下二種方式,例:

 說明:第二種format方式的效果會更好,性能更好,其實變量a的值沒有變,在格式化賦值時會在內(nèi)存中新開辟空間存放。在python2.7和python3.4中測試結果相同

 >>> a = 'i am %s,age is %d'
>>> a % ('wangkai',33)
'i am wangkai,age is 33'
>>> print(a)
i am %s,age is %d

>>> a = 'i am {0},age is {1}' 
>>> a.format('wangkai',33) 
'i am wangkai,age is 33'
>>> print(a)
i am {0},age is {1}

(3) 在python中會生成一個緩存池來節(jié)省內(nèi)存空間,主要存放經(jīng)常用到的字符串及數(shù)字,所以在一定范圍內(nèi)對變量賦同樣的值,他們的id值是一樣的,當超出這個池的時候,id值則會不同

       分別在python2.7和python3.4版本中進行測試,測試結果如下:(經(jīng)測試在python2.7和python3.4中效果一樣)

       針對字符串,無限制

>>> a = 'asdfsafsafasfsafasdfasfasfasf'
>>> b = 'asdfsafsafasfsafasdfasfasfasf'
>>> id(a),id(b)
(140704388394128, 140704388394128)
>>> a = 'ni'
>>> b = 'ni'
>>> id(a),id(b)
(140704388417416, 140704388417416)

       針對數(shù)字,范圍:小于-5,大于256

>>> a = -5
>>> b = -5
>>> id(a),id(b)
(8745920, 8745920)

>>> a = -6
>>> b = -6
>>> id(a),id(b)
(140718131946128, 140718131946320)

>>> aa=256
>>> bb=256
>>> id(aa),id(bb)
(8754272, 8754272)

>>> aa = 257   
>>> bb = 257    
>>> id(aa),id(bb)
(19083048, 18637656)

        具體python源碼對數(shù)字的定義如下:

    (4) python內(nèi)部執(zhí)行過程:

    (5) print說明:

     Python 2中的print語句被Python 3中的print()函數(shù)取代,這意味著在Python 3中必須用括號將需要輸出的對象括起來。

     特別說明:經(jīng)測試在python2.6、python2.7,print作為語句,但已支持括號方式,例:a = 1 print a print(a)均可;

                   在python3.4版本中,print作為函數(shù),只支持括號方式。

      建議:為了代碼在python2和3上的兼容性,請直接使用print函數(shù)括號方式。

2、編碼轉(zhuǎn)換

   一般硬盤存儲為utf-8,讀入內(nèi)存中為unicode,二者如何轉(zhuǎn)換

      a = '你好'              '\xe4\xbd\xa0\xe5\xa5\xbd'     <type 'str'>

      b = u'你好'             u'\u4f60\u597d'                <type 'unicode'>

      a.decode('utf-8')       u'\u4f60\u597d'   (utf-8格式解碼為unicode)

      b.encode('utf-8')       '\xe4\xbd\xa0\xe5\xa5\xbd'  (unicode格式加密為utf-8)

    注:在python2.7版本中需要如上轉(zhuǎn)換,在腳本中如要顯示中文,

        只要在文件開頭加入 # _*_ coding: UTF-8 _*_ 或者 #coding=utf-8 就行了

        在python3.4以后版本,無需轉(zhuǎn)換

 3、調(diào)用系統(tǒng)命令,并存入變量:

    1.import os

    a = os.system('df -Th')

    b = os.popen('df -Th','r') 返回一個文件對象

    2.import commands

    c = commands.getoutput('df -Th')  返回一個字符串

4、sys調(diào)用

    import sys

    sys.exit

    print sys.argv

    sys.path

5、導入模板方法:

      1.import sys [as newname] 

    多次重復使用import語句時,不會重新加載被指定的模塊,只是把對該模塊的內(nèi)存地址給引用到本地變量環(huán)境。

      2.from sys import argv或(*)

      3.reload()

    reload會重新加載已加載的模塊,但原來已經(jīng)使用的實例還是會使用舊的模塊,而新生產(chǎn)的實例會使用新的模塊;reload后還是用原來的內(nèi)存地址;不能支持from。。import。。格式的模塊進行重新加載。

   建議使用第一種,第二種導入的對象或變量會與當前的變量會沖突。

6、用戶交互:

     在python2.7版本中

        raw_input:交互輸入內(nèi)容轉(zhuǎn)化為字符串;

        input:交互輸入內(nèi)容不進行轉(zhuǎn)化;

     在python3.4版本中只有input,想要獲取數(shù)字,需要進行int轉(zhuǎn)變。

     舉例:

#_*_ coding:utf-8 _*_

info = 'This var will be printed out ...'
name = raw_input('Please input your name:')
age = int(raw_input('age:'))  
#age = input('age:')
job = raw_input('Job:')
salary = input('Salary:')
print type(age)

print '''
Personal information of %s:
     Name: %s 
     Age : %d
     Job : %s
    Salary: %d
--------------------------
''' % (name,name, age,job,salary)

7、用戶輸入內(nèi)容隱藏:

    輸入密碼時,如果想要不可見,需要利用getpass 模塊中的 getpass方法,即:

>>> import getpass
>>> pwd = getpass.getpass("please input the passwd:")
please input the passwd:
>>> print(pwd)
asdfasdfa

8、文件操作:  

   python2.7版本中可以用file和open打開文件,  python3.4版本中只有open

       f = open('file_name','r')

       g = file('file_name','r') 

   其中打開模式有'r','w,','a','b','+'

       w:替換重寫   a:追加 

       b:二進制文件,主要用于跨平臺,來解決window和linux的回車換行區(qū)別

       +:用于同時讀寫

   * 一般會對文件讀到的第一行去掉末尾的換行符      f.readline().strip('\n')

   * xreadlines:針對大文件,一行一行讀,默認是把全文件讀入內(nèi)存。

   * r+ :讀寫,默認從文件尾寫入,可以由seek跳到指定位置,然后替換文件內(nèi)容。

   初始文件aa.txt

kevin:123:1
wang:22:2
kai:311:3

 對python2.7和python3.4測試結果一樣。

# _*_ coding: UTF-8 _*_

import sys,os
file = sys.argv[1]

f = open(file,'r+')
line_list = f.readlines()

new_list = []
for line in line_list:
  #去掉行尾的換行符
  line = line.strip('\n')
  #對行信息按分隔符進行分列
  value_list = line.split(':')

  #獲取最后一字段并數(shù)字化
  last_value = int(value_list[-1])
  #對最后一字段進行數(shù)字計算
  last_value *= 13

  value_list[-1] = str(last_value)
  #將列表轉(zhuǎn)變?yōu)樽址?
  new_str = ':'.join(value_list)
  #將循環(huán)的改變后的行追加到新的列表
  new_list.append(new_str)
'''
  ######第一種方法按行追加到文件#####
  #按修改后的行追加到文件中
  #f.writelines(new_str + '\n')
'''
'''
#####第二種方法將所有行統(tǒng)一追加到文件#####
#將所有修改后的新列表轉(zhuǎn)化為字符串
my_str = '\n'.join(new_list)
#將指標移到行首
f.seek(0)
#將寫回到文件
f.write(my_str + '\n')
'''
f.close()

9、類型轉(zhuǎn)變:

Python 有辦法將任意值轉(zhuǎn)為字符串:將它傳入repr() 或str() 函數(shù)。

函數(shù)str() 用于將值轉(zhuǎn)化為適于人閱讀的形式,而repr() 轉(zhuǎn)化為供解釋器讀取的形式(如果沒有等價的
語法,則會發(fā)生SyntaxError 異常) 某對象沒有適于人閱讀的解釋形式的話, str() 會返回與repr()等同的值。很多類型,諸如數(shù)值或鏈表、字典這樣的結構,針對各函數(shù)都有著統(tǒng)一的解讀方式。字符串和浮點數(shù),有著獨特的解讀方式。
Some examples:

下面有些例子

>>> s = 'Hello, world.'
>>> str(s)
'Hello, world.'
>>> repr(s)
"'Hello, world.'"
>>> str(1.0/7.0)
'0.142857142857'
>>> repr(1.0/7.0)
'0.14285714285714285'

相關文章

  • Python圖像處理之識別圖像中的文字(實例講解)

    Python圖像處理之識別圖像中的文字(實例講解)

    今天小編就為大家分享一篇Python圖像處理之識別圖像中的文字(實例講解),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • 解決python中的冪函數(shù)、指數(shù)函數(shù)問題

    解決python中的冪函數(shù)、指數(shù)函數(shù)問題

    今天小編就為大家分享一篇解決python中的冪函數(shù)、指數(shù)函數(shù)問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • python淺拷貝與深拷貝使用方法詳解

    python淺拷貝與深拷貝使用方法詳解

    淺拷貝,指的是重新分配一塊內(nèi)存,創(chuàng)建一個新的對象,但里面的元素是原對象中各個子對象的引用。深拷貝,是指重新分配一塊內(nèi)存,創(chuàng)建一個新的對象,并且將原對象中的元素,以遞歸的方式,通過創(chuàng)建新的子對象拷貝到新對象中。因此,新對象和原對象沒有任何關聯(lián)
    2022-11-11
  • 詳解python uiautomator2 watcher的使用方法

    詳解python uiautomator2 watcher的使用方法

    這篇文章主要介紹了python uiautomator2 watcher的使用方法,該方是基于uiautomator2如下版本進行驗證,本文給大家介紹的非常詳細,需要的朋友可以參考下
    2019-09-09
  • 解讀Python條件判斷邏輯演繹優(yōu)化編程思維

    解讀Python條件判斷邏輯演繹優(yōu)化編程思維

    條件判斷是編程中的重要概念,Python語言提供了多種方式來進行條件判斷,例如if、else、elif等,本文將深入探討Python中條件判斷的靈活應用,結合豐富的示例代碼展示其全面性
    2024-01-01
  • 基于tensorflow權重文件的解讀

    基于tensorflow權重文件的解讀

    這篇文章主要介紹了關于tensorflow權重文件的解讀,具有很好的參考價值,希望對大家有所幫助。
    2021-05-05
  • python enumerate函數(shù)的使用方法總結

    python enumerate函數(shù)的使用方法總結

    這篇文章主要介紹了python enumerate使用方法總結,enumerate函數(shù)用于遍歷序列中的元素以及它們的下標,有興趣的可以了解一下
    2017-11-11
  • anaconda升級sklearn版本的實現(xiàn)方法

    anaconda升級sklearn版本的實現(xiàn)方法

    這篇文章主要介紹了anaconda升級sklearn版本的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-02-02
  • Django基于Token的驗證使用的實現(xiàn)

    Django基于Token的驗證使用的實現(xiàn)

    本文主要介紹了Django基于Token的驗證使用的實現(xiàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • 關于jupyter打開之后不能直接跳轉(zhuǎn)到瀏覽器的解決方式

    關于jupyter打開之后不能直接跳轉(zhuǎn)到瀏覽器的解決方式

    這篇文章主要介紹了關于jupyter打開之后不能直接跳轉(zhuǎn)到瀏覽器的解決方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04

最新評論

阿图什市| 泊头市| 龙门县| 宾川县| 昭平县| 萨迦县| 八宿县| 藁城市| 青海省| 天峻县| 镇沅| 安徽省| 遵义县| 高邮市| 九寨沟县| 喜德县| 睢宁县| 潜江市| 长治县| 文昌市| 丹凤县| 盐城市| 平湖市| 威信县| 鸡东县| 许昌市| 沛县| 海门市| 邳州市| 永济市| 瑞金市| 贡山| 贵南县| 南充市| 中方县| 紫金县| 汉川市| 儋州市| 墨玉县| 雷波县| 上饶市|