Python初學者隨筆Week1

Python從入門到放棄python

  本文主要是描述的是做爲初學者對python學習的過程與經歷分享,包括一些歷程的分享與重要的時間節點記錄,對於python學習的筆記與心得。算法

  若是你也是初學者,咱們能夠一塊兒學習探討python的知識與技術,歡迎各位博主對個人批評與指導,若是涉及版權等違規的問題,望諒解,小白不懂事。api

  話很少說,如下開始分享本身我的學習的第一個總結!!!app

1.第一個python程序    函數

  編譯器的安裝與環境變量的配置我這裏不作贅述,網上不少。學習

  做爲第一個python程序,打印一個hello world是必須的,儀式感仍是要有的,哈哈。編碼

  python的打印是經過調用函數print進行的。加密

  打印Hello World的方式有不少種,如下只列舉幾種做爲例子,供你們參考,程序代碼以下:spa

print("Hello World!")#或者另一種標誌符

print('Hello World')

str = "Hello World"
print(str)

  以上爲三種Hello的打印方式,你們能夠試試。命令行

2.print函數的用法

str = "Hello World"#字符串打印類型,參數傳遞法
print(str)
print("%s"%str)#參數引入法

print("Hello World")#雙引號中間添加要打印的字符串
print('Hello World')#單引號和雙引號的用法同樣,沒有區別

Num = 5
print(Num)
print("%s"%Num)

msg = '''#要打印的內容
Hello World!
My Name is Wang.....
'''

print(msg)#這種方法能夠打印多行


name = input("name:")
age= input("age:")

#字符串中打印變量方案1
info1 = '''
-------------info of '''+name+'''------------
Name:'''+name+''' 
Age:'''+age

print(info1)

#字符串中打印變量方案2
info2 = '''
-------------info of  %s------------
Name:%s
Age:%s
''' %(name,name,age) 

print(info2)

#字符串中打印變量方案3
info3 = '''
-------------info of {_name}------------
Name:{_name}
Age:{_age}
''' .format(_name=name,
            _age=age) 

print(info3)

#字符串中打印變量方案4
info4 = '''
-------------info of {0}------------
Name:{0}
Age:{1}
''' .format(name,
            age) 

print(info4)           

 

  python爲用戶提供了多樣化的打印方案,包括多行打印和單行打印,用戶能夠根據本身的需求進行選擇。此處僅作一個概括,若有錯漏請多多包含與指正。

3.if elif else語句

  python中if else的語句用法相較其餘語言的用法相同,可是格式有必定差異請看如下例子進行分析  

_username ="wang"
_password = 123
username = input("username: ")
password = input("password: ")

if _username ==username  and password == password:#循環判斷條件不須要使用() 改爲: 同時子語句編譯器會自動進行換行縮進,若是沒用須要用戶本身進行縮進
    print("Welcome user {name} Login !").format(name = username))
else:
    print("Invalid username or password !")

4.while語句

  while循環語句與if循環語句的格式相同,沒有()用:替代,請看如下例子

i = 0
while i<10:
    print("Num is %s"%i)#打印數字0-9

5.模塊初識

  import關鍵詞用於模塊的導入

  import sys其中sys是標準庫中的函數能夠直接引入後調用

  sys模塊

    sys.path,尋找路徑即:若是當前目錄下有sys.py會到當前目錄下尋找,若是沒有當前目錄下沒有sys.path這個方法,在python2.0中會報錯

    標準庫在再lib裏,用戶自行安裝的庫在site-packages中

    sys.argv,打印腳本的相對路徑

  os模塊

    os.system('dir')打印cmd下的dir命令,此命令結果不能保存,直接輸出的顯示界面

    os.popen('dir')執行結果存到內存中的某塊地址,經過read()方法讀取數據

    cmd=os.popen('dir').read()此命令數據能夠保存到變量中

    os.mkdir(「new_dir」)本目錄下建立一個新的文件夾

  pyc文件

    python是一門面向對象的解釋型語言。。。當咱們在命令行輸入python.py時,實際上是激活了python的"解釋器",:告訴解釋器要開始解釋工做了,可是在解釋以前python會進行編譯。因此也能夠把python理解成先編譯後解釋的語言。

    PyCodeObject和pyc文件,PyCodeObject是python編譯器真正的編譯成果,python運行時先到目錄中去尋找PyCodeObject文件,若是有則運行此文件,若是沒有則生成此文件,程序運行結束時,python解釋器將PyCodeObject寫回到pyc文件中。程序第二次運行時,則會在硬盤中尋找pyc文件,找到直接載入,不然重複上述過程。

6.數據類型

  整形:type(2**32) ,type查看數據類型,在python中沒有長整型和整形的區分。

  浮點:小數包含浮點,8字節64位,52表示底,11位表示指數,1位符號位。

  布爾值:真或假,1或0

  字符串:「hello world」

  三元運算:a,b,c = 1,3,5  d = a if a > b else c

  進制:不作描述,呵呵(二進制,八進制,十進制,十六進制,不懂本身瞭解下)

  bytes類型:能夠理解成二進制數據類型,與字符串是兩回事。python3中對文本和二進制數據作了更清晰的區分,文本爲Unicode由str類型表示,二進制數據則有bytes類型表示

    轉換:'@20'.encode(encoding=’utf-8’)將utf-8類型的字符串轉換成二進制類型,二進制編碼.decode(encoding=utf-8')二進制編碼轉換成字符串類型

7.列表

  列表取值操做

    例子:Num=[1,2,3,4,5,6,7,8]

    print(Num)

    print(Num[0-N])#取值從0開始

    print(Num[1:5])#取到的值爲顧頭不顧尾,實際取到值爲下標1-4,4個數。切片操做

    print(Num[:-1])#打印從頭至尾的數據

  列表元素增長操做:

    Num.append(6)某未添加元素操做

  列表元素插入操做:

    Num.insert(0,1)

  列表元素修改操做:

    Num[2]=5

  列表元素刪除操做:

    Num.remove(6)

    del Num[3]

    Num.pop()不輸入下標則默認刪除最後一個元素,輸入下標則刪除下標相應位置的元素

  列表元素查找操做:

    Num.index(6)#輸入要查找的元素,返回元素位置的下標

  列表元素個數統計操做:

    Num.count(6)#統計元素6出現的次數

  列表清空操做:

    Num.clear()

  列表反轉操做:

    Num.reverse()

  列表排序操做:

    Num.sort()

  列表拼接操做:

    Num.extend([1,2,3])#列表的合併

  列表刪除操做:

    del Num

  列表copy:

    淺copy:

      列表的複製有兩種即,深copy和淺copy,淺cpoy只cpoy第一層,舉個例子:

      Num =[1,2,[1,2],3,4,5,6,7,8,9,5,6,7,8]

      Numcopy = copy.cpoy(Num) = Num.cpoy()=list(Num)=Num[:]

      Num[0]=2時,Numcopy =[1,2,[1,2],3,4,5,6,7,8,9,5,6,7,8]

      Num[2][0]=5時,Numcopy =[1,2,[5,2],3,4,5,6,7,8,9,5,6,7,8]

      能夠理解爲列表中嵌套的列表[1,2]cpoy到Numcopy的值爲指針。這種複製方式就叫作淺cpoy。

      淺cpoy:Numcopy = Num.copy()

注意這裏要與直接賦值做對比,直接賦值列表是通用一塊地址空間

例如:Nums=Num,Num[0]=0時,則Nums[0]=1

     深度cpoy:

      NumDeepCopy=copy.deepcopy(Num)#此方法會獨立的複製兩份列表,深copy的使用要注意,防止內存濫用,浪費內存空間。

  列表的循環操做:

    for i in Num:

      print(i)#打印全部列表元素

  列表按照步長切片:

    Num=[::2]#按照步長切片

7.元組

  Num=(‘wang’,‘xing’,‘wei’)

  元組的查詢操做

  Num.index('wang')#輸入要查找的元素,返回元素位置的下標

  Num.count(‘w’)#統計某個字符出現的次數

8.字符串的經常使用操做

 

name = "my name is wang"
print(name.capitalize())#字符串的字一個字母是否爲大寫
print(name.count('m'))#統計某個字符出現的個數
print(name.center(50,'-'))#數據長度小於50個字節,name放中間,兩邊補符號'-'
print(name.endswith('g'))#判斷是不是以某個字符串或字符結尾
print(name.expandtabs(0))#把/t用空格替代,默認爲8個空格

print(text.decode())#轉換成utf-8編碼類型
print(name.find('m',2))#查找某個字符第一次出現的位置,後面接的參數是第幾回出現
print(','.join(['1','2','3']))#列表中加上某個字符,組成字符串
print(name.rjust(50,'-'))#數據長度小魚50個字節,name放在左邊,右邊補符號'-'

print(name.ljust(50,'-'))
print(name.lower())#字符串全部的單詞大寫變小寫
print(name.lstrip())#去掉左邊的空格或者
print(name.maketrans())#用於加密的奇特算法
print(name.partition(' '))#字符串切分
print(name.rsplit(' '))#根據空格來切片
print(name.rfind('m'))#從右邊向左邊數,m出現的索引
print(name.replace('m','M'))#字符替換
print(name.rindex('m'))#反向查找
print(name.rpartition(' '))#反向切分
print(name.rstrip('\n'))#刪除字符串末尾的字符
print(name.rpartition(" "))
print(name.rindex('m'))#反向查找
print(name.rstrip('wang'))#刪除末尾字符串或者字符

print(name.swapcase())#全部字符大小寫反轉
print(name.splitlines())#按照\R\N \R\N分割
print(name.split())#空格換行字符表space \r\n \t
print(name.startswith('m'))#是否字符串是以什麼開頭的
print(name.endswith('wang'))#字符串是否以什麼結尾
print(name.strip('m'))#刪除首字母

print(name.title())#全部字符的頭部都變成大寫
print(name.upper())#全部字符所有換成大寫
print(name.zfill(50))#左邊補0

 

9.字典

 info={

  1:"wangxingwei",

  2:"koujie",

  3:"linwenchang"}

  字典的添加:

    info[3]="chenshaoyong"

  字典的刪除:

    del info[0]

    info.popitem()#隨機刪除

    info.pop(0)

  字典的修改:

    info[0]="chenshaoyong"

  字典的查詢:

    info[0]#當獲取的元素不存在時,編譯器報錯

    info.get(0)#輸入錯誤時,不會報錯

  判斷某個鍵是否存在於字典中:

    0 in info#若是存在則返回True不然返回False

  字典查詢全部鍵:

    info.keys()

  字典查詢全部鍵值:

    info.values()

  字典添加方法:

    info.setdefault()#先到字典中查詢,若是存在返回,不存在添加

  字典的update():

    合併,把一個字典合併到另一個字典中,若是有鍵重複,則覆蓋

  字典轉換成列表:

    info.items()

  字典循環:

    for i in info:

      for(i,info(i))# i 字典的鍵,字典的值info(i)

    for i,v in info.items():

      print(i,v)#把字典轉換成列表,而後在打印

  字典的fromkeys

    例子: c= dict.fromkeys([6,7,8],[1,{"name":"wangxingwei"},333])

    print(c)

    c[7][1]["name"] = "koujie"

    print(c)

    此時的鍵6,7,8三個name值所有改爲了koujie

    建立一個字典並賦予一個初始化的值,一份列表數據地址內存,所有賦值給三個鍵,使用多層字典時,須要注意。

相關文章
相關標籤/搜索