Python_基礎_01

  • 2020 年 1 月 14 日
  • 筆記

Python特點:位元組碼,動態語義 

定義編碼:只要符合coding[:=]s*([-w.]+)即可。如 #coding= utf-8 # -*- coding: utf-8 -*-

"雙引號內寫腳本文檔"

#這裡以後都是單行注釋

"""

這裡是多行注釋

"""

pyc位元組碼文件,和java類似

id() 

sys.getrefcount()  引用默認就有3

反斜杠換行

print "assssssssss

sssssssssssssssssss"

思想:一切數據都是對象,一切變數都是對數據的一個引用

命名:用字母和_開頭,文件名小寫,變數小寫,函數名小寫,合理用_,大小寫敏感

賦值:具有動態語義特性,

type(abc):查看變數類型

help(time):查看具體幫助文檔

dir():查看有那些方法可以使用

python -V 查看當前版本

python -v進入Python命令行

-----------------------------------------------------------------------------------

#coding=utf-8

#@description:周末作業

#一.已經字元串 s = "i,am,lilei",請用兩種辦法取出之間的「am」字元。

print '第一題-----------------------------'

#方法1

s = "i,am,lilei"

print s[2:4]

##方法2

c = s.split(',')[1]

print c

print '第二題-----------------------------'

#二.在python中,如何修改字元串?

#答案:可以用字元串的replace方法.

ainfo = 'i love php'

replycontent = ainfo.replace('php','python')

print replycontent

print '第三題-----------------------------'

#三.bool("2012" == 2012) 的結果是什麼。

##答案:結果是fasle,==判斷對象的數據類型,儘管看起來數值是一樣的,但是他們的類型不同,一個是字元串,一個是數字

print '第四題-----------------------------'

##四.已知一個文件 test.txt,內容如下:

f = open('test.txt','r')

content = f.read()

dcontent = content.decode('utf-8')##轉換為unicode

##1.請輸出內容

print content

##2.請計算該文本的原始長度.

print len(dcontent)

##3.請去除該文本的換行

print content.replace('n','')

##4.請替換其中的字元"2012"為"2013"。

print content.replace('2012','2013')

##5.請取出最中間的長度為5的子串。

print dcontent[len(dcontent)/2:len(dcontent)/2+5].encode('utf-8')

##6.請取出最後2個字元。

print 'aaaa--------'

print dcontent[-2:].encode('utf-8')

print 'bbbb--------'

##7.請從字元串的最初開始,截斷該字元串,使其長度為11.

print dcontent[:11].encode('utf-8')

##8.請將{4}中的字元串保存為test1.py文本.

rinfo = content.replace('2012','2013')

f = open('test1.py','w')

f.write(rinfo)

f.close()##關閉文件

print '第五題-----------------------------'

##五.請用程式碼的形式描述python的引用機制。

import sys

cinfo = '1234'

print id(cinfo)

print sys.getrefcount('1234')   

binfo = '1234'

print id(binfo)

print sys.getrefcount('1234')

print '第六題-----------------------------'

##六.已知如下程式碼

a = "中文編程"  ##引用計數開始是3,然後a變數引用了字元串對象3 + 1 =4

print "a:%s" % id(a)

b = a

print "b:%s" % id(b)##4 + 1 = 5

c = a

print "c:%s" % id(c)## 5 + 1 = 6

print sys.getrefcount('中文編程')##輸出結果是6

print 'ssss'

a = "python編程"

print "a:%s" % id(a)###6-1 = 5##a引用另外一個字元串對象

b = u'%s' % a.decode('utf-8')

print "b:%s" % id(b)###5-1 = 4

print sys.getrefcount('中文編程')##輸出結果是4

d = "中文編程"

print "d:%s" % id(d)###新建一個變數,引用字元串 4 + 1 = 5

e = a

print "e:%s" % id(e)

c = b

print "c:%s" % id(c)### c引用另外一個字元串對象,5 - 1 = 4

print sys.getrefcount('中文編程')

b2 = a.replace("中","中")

print "b2:%s" % id(b2)

print 'result-----------------'

print sys.getrefcount('中文編程')

print sys.getrefcount('python編程')

print '第七題-----------------------------'

##七.已知如下變數

a = "字元串拼接1"

b = "字元串拼接2"

#

##請用四種以上的方式將a與b拼接成字元串c。並指出每一種方法的優劣

##方法1:在做大量的字元串對象拼接的時候不推薦

c = a + b

##方法2:

c = "%s%s" % (a,b)

###方法3:

print 'format'

c = "{a}{b}" .format (a=a,b=b)

##方法4:

c = "".join([a,b])

print c

##請將a與b拼接成字元串c,並用逗號分隔。

c = '%s,%s' % (a,b)

##.請計算出新拼接出來的字元串長度,並取出其中的第七個字元。

lennum = len(c.decode('utf-8'))

print c.decode('utf-8')[6].encode('utf-8')

print '第八題-----------------------------'

##八.請閱讀string模組,並且,根據string模組的內置方法輸出如下幾題的答案

import string

##1.包含0-9的數字。

#print help(string)

print string.digits

##2.所有小寫字母

print string.lowercase

##3.所有標點符號

print string.punctuation

##4:所有大寫字母和小寫字母。

print string.ascii_lowercase##小寫字母

print string.ascii_uppercase##大寫字母

print 'n'

##5:請使用你認為最好的辦法將{1}-{4}點中的字元串拼接成一個字元串。

strinfo = []

strinfo.append(string.digits)

strinfo.append(string.lowercase)

strinfo.append(string.punctuation)

strinfo.append(string.ascii_lowercase)

strinfo.append(string.ascii_uppercase)

print "".join(strinfo)

print 'n'

strinfo = "%s%s%s%s%s" % (string.digits,string.lowercase,string.punctuation,string.ascii_lowercase,string.ascii_uppercase)

print strinfo

print '第九題-----------------------------'

##九.已知字元串

a = "i,am,a,boy,in,china"

##1.假設boy和china是隨時可能變換的,例boy可能改成girl或者gay,而china可能會改成別的國家,你會如何將上面的字元串,變為可配置的。

ac = "i,am,a,%(sex)s,in,%(country)s"  % {'sex':'girl','country':'china'}

bc = "i,am,a,{sex},in,{country}" .format (sex='girl',country='india')

print ac

print bc

##2.請使用2種辦法取出其間的字元"boy"和"china"。

##方法1

print a[7:10]

print a[-5:]

##方法2

cinfo = a.split(',')

print cinfo[3]

print cinfo[-1]

##3.請找出第一個"i"出現的位置。

print a.find('i')##-1

print a.index('i')##報錯

##4.請找出"china"中的"i"字元在字元串a中的位置。

print a.find('i',a.find('china'))

print a.rfind('i')

##5.請計算該字元串一共有幾個逗號

print a.count(',')

print '第十題-----------------------------'

##十.請將模組string的幫助文檔保存為一個文件。

import sys

import string

f = open('test.log','w')

sys.stdout = f

help(string)

f.close()

Tags: