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()