日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

python-day1

發(fā)布時(shí)間:2024/1/17 python 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python-day1 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

目錄:

  • python簡(jiǎn)介
  • python安裝與執(zhí)行
  • pycharm簡(jiǎn)單設(shè)置及使用
  • 注釋使用及.pyc文件
  • python變量
  • python用戶交互(輸入輸出)
  • if條件語(yǔ)句
  • 循環(huán)語(yǔ)句(while & for)
  • 運(yùn)算符
  • python數(shù)據(jù)類型初識(shí)(int,bool,str,list,dict)

?

一、python簡(jiǎn)介:

  python的創(chuàng)始人為吉多·范羅蘇姆(Guido van Rossum)。1989年的圣誕節(jié)期間,吉多·范羅蘇姆為了在阿姆斯特丹打發(fā)時(shí)間,決心開發(fā)一個(gè)新的腳本解釋程序,作為ABC語(yǔ)言的一種繼承。

  

  python的目前應(yīng)用領(lǐng)域:數(shù)據(jù)分析、組件集成、網(wǎng)絡(luò)服務(wù)、圖像處理、數(shù)值計(jì)算和科學(xué)計(jì)算等眾多領(lǐng)域

  python的目前公司常用領(lǐng)域:自動(dòng)化運(yùn)維自動(dòng)化測(cè)試大數(shù)據(jù)分析、爬蟲、Web 等。

  使用python的公司:Youtube、Dropbox、BT、Quora(中國(guó)知乎)、豆瓣、知乎、Google、Yahoo!、Facebook、NASA、百度、騰訊、汽車之家、美團(tuán)等

  ps:有上可知,python正越來(lái)越受到程序員們的廣泛認(rèn)可,那python的優(yōu)勢(shì)在哪里呢?

?

  1、python和其他語(yǔ)言對(duì)比:

    a.C 和 Python、GO、Java、C#等

      C語(yǔ)言: 代碼編譯得到 機(jī)器碼 ,機(jī)器碼在處理器上直接執(zhí)行,每一條指令控制CPU工作

      其他語(yǔ)言: 代碼編譯得到 字節(jié)碼 ,虛擬機(jī)執(zhí)行字節(jié)碼并轉(zhuǎn)換成機(jī)器碼再后在處理器上執(zhí)行

    b.Python 和 C ?Python這門語(yǔ)言是由C開發(fā)而來(lái)

      對(duì)于使用:Python的類庫(kù)齊全并且使用簡(jiǎn)潔,如果要實(shí)現(xiàn)同樣的功能,Python 10行代碼可以解決,C可能就需要100行甚至更多.

      對(duì)于速度:Python的運(yùn)行速度相較與C,絕逼是慢了

    c.python和GO語(yǔ)言

對(duì)于使用:Go語(yǔ)言是未來(lái)的語(yǔ)言,它屬于編譯型(有關(guān)解釋型語(yǔ)言和編譯型語(yǔ)言解釋,注1)語(yǔ)言,作為新型的語(yǔ)言,網(wǎng)絡(luò)傳輸方面目前所有語(yǔ)言第一,就是語(yǔ)法基礎(chǔ)等方面還有待于完善。

      對(duì)于速度:?與C相當(dāng),很牛逼的語(yǔ)言,身為小白的我,坐等它的成熟。

    d.Python 和 Java、C#等

      對(duì)于使用:Linux原裝Python,其他語(yǔ)言沒(méi)有;以上幾門語(yǔ)言都有非常豐富的類庫(kù)支持
      對(duì)于速度:Python在速度上可能稍顯遜色

    ps.所以,Python和其他語(yǔ)言沒(méi)有什么本質(zhì)區(qū)別,其他區(qū)別在于:擅長(zhǎng)某領(lǐng)域、人才豐富、先入為主。

?

  2、python的種類:

    a.CPython:

Python的官方版本,使用C語(yǔ)言實(shí)現(xiàn),使用最為廣泛,CPython實(shí)現(xiàn)會(huì)將源文件(py文件)轉(zhuǎn)換成字節(jié)碼文件(pyc文件),然后運(yùn)行在Python虛擬機(jī)上。目前我們建議使用3.5版本。

      解釋器:CPython。為C語(yǔ)言開發(fā)

      運(yùn)行方式:命令行下使用python命令直接運(yùn)行。

    b.pypy:

      Python實(shí)現(xiàn)的Python,pypy采用JIT技術(shù),將Python的字節(jié)碼字節(jié)碼再編譯成機(jī)器碼。其目的就是一次編譯所有py變?yōu)閜yc,直接調(diào)用加快程序調(diào)用速度。

      解釋器:pypy。

      運(yùn)行方式:命令行下使用pypy命令運(yùn)行

    c.其他Python:

    • Jyhton:

      Jython是運(yùn)行在java平臺(tái)上的python解釋器,可以直接把python代碼編譯成java字節(jié)碼執(zhí)行。

    • IronPython:
      IronPython和Jython類似,只不過(guò)IronPython是運(yùn)行在微軟.net平臺(tái)上的python解釋器。可以直接把python代碼編譯成.net字節(jié)碼執(zhí)行。
    • RubyPython、Brython ..?    

ps.所以目前python對(duì)于所有主流語(yǔ)言都有很好的兼容,雖然如此,如果要和java或.net等平臺(tái)交互,最好的方式還是通過(guò)網(wǎng)絡(luò)調(diào)用交互,以此確保各各程序之間的獨(dú)立性。

    ps.PyPy,在Python的基礎(chǔ)上對(duì)Python的字節(jié)碼進(jìn)一步處理,從而提升執(zhí)行速度!

    

?

二、 python安裝與執(zhí)行

  前面說(shuō)了這么多,下面開始正式學(xué)習(xí)python了。

  1、安裝:

1、下載安裝包
https://www.python.org/downloads/
2、安裝
默認(rèn)安裝路徑:C:\python27
3、配置環(huán)境變量
【右鍵計(jì)算機(jī)】--》【屬性】--》【高級(jí)系統(tǒng)設(shè)置】--》【高級(jí)】--》【環(huán)境變量】--》【在第二個(gè)內(nèi)容框中找到 變量名為Path 的一行,雙擊】 --> 【Python安裝目錄追加到變值值中,用 ; 分割】
如:原來(lái)的值;C:\python27,切記前面有分號(hào)



2.linux安裝

查看默認(rèn)Python版本
python -V

1、安裝gcc,用于編譯Python源碼
yum install gcc
2、下載源碼包,https://www.python.org/ftp/python/
3、解壓并進(jìn)入源碼文件
4、編譯安裝
./configure
make all
make install
5、查看版本
/usr/local/bin/python2.7 -V
6、修改默認(rèn)Python版本
mv /usr/bin/python /usr/bin/python2.6
ln -s /usr/local/bin/python2.7 /usr/bin/python
7、防止yum執(zhí)行異常,修改yum使用的Python版本
vi /usr/bin/yum
將頭部 #!/usr/bin/python 修改為 #!/usr/bin/python2.6



 2、Hello world!程序

?   a.創(chuàng)建helloworld.py文件(pyhton程序,一般為.py結(jié)尾)

#!/usr/bin/env python
#解釋器調(diào)用路徑
# -*- coding:utf-8 -*-
#聲明解釋器編碼

#程序執(zhí)行
print('hello world!')

?b.執(zhí)行方式

    • windows
      • "D:\Program Files\Python35\python.exe" ?helloword.py ? #直接文件執(zhí)行(以后運(yùn)行程序多為此方式)
      • "D:\Program Files\Python35\python.exe" ?#進(jìn)入解釋器執(zhí)行print('helloword!')
    • linux ?
      • python helloword.py ? #直接文件執(zhí)行(以后運(yùn)行程序多為此方式)
      • ptyhon ? ? ? ? ? ? #進(jìn)入解釋器執(zhí)行print('helloword!')

    ps.文件頭部要加#!/user/bin/evn python及chmod +x helloword.py

      然后./helloword.py實(shí)行。

3、編碼格式(作用:聲明編碼格式)

 可以讓計(jì)算機(jī)直接認(rèn)識(shí)的語(yǔ)言,其實(shí)只有匯編語(yǔ)言,即0和1的代碼。且計(jì)算機(jī)是美國(guó)人發(fā)明的,因此,最早只有英文加特殊字符共127位字母與0和1代碼進(jìn)行一一對(duì)應(yīng)。而美國(guó)人覺得夠用了2^7 = 128不夠他們擴(kuò)展的,所以采用2^8 =256的內(nèi)存空間(單位為‘字節(jié)’, 即256字節(jié)),夠美國(guó)人用的了。

 這就是最早的編碼ASCII碼。顯然,256位字符不夠中文用的,中國(guó)人也想用,怎么辦呢?顯然聰明的中國(guó)人想到了辦法,通過(guò)在做一張新的表并把新表通過(guò)取ASCII碼的幾位映射到ASCII碼中使用。這就是GBK。有21003字符,2字節(jié)一個(gè)漢字。

 全世界人民都想使用電腦,于是個(gè)個(gè)國(guó)家的編碼應(yīng)運(yùn)而生,日本shift_JTS,韓國(guó)EUC-kr等等。中國(guó)身為共產(chǎn)主義多民族國(guó)家,不能只搞漢語(yǔ)啊,體現(xiàn)民族平等嘛,于是把滿文,回文等等的文字也寫了新的編碼GB2312.有27484字,2字節(jié)一個(gè)漢字

? ?國(guó)際標(biāo)準(zhǔn)組織一看,世界居然為了編碼亂搞,沖突不斷,亂碼叢生。因此unicode誕生了,把所有語(yǔ)言統(tǒng)一到一個(gè)字符編碼中,unicode也因此被稱為萬(wàn)國(guó)碼。最少用2個(gè)字節(jié)表示1個(gè)字符。

? ?這時(shí),美國(guó)不干了,為什么我建立的計(jì)算機(jī),被你們亂改一通,最后我一個(gè)字符搞定的事,被你們改成了2個(gè)字符,我本來(lái)存100MB的東西,莫名其妙變成了200MB。不行,于是utf-8誕生了,utf-8是對(duì)uniccode的優(yōu)化壓縮。英文字符占1個(gè)字符,歐洲字符占2個(gè)字符,中文占3個(gè)字符……, 故utf-8又稱可變字符編碼。

    ps.字符編碼總結(jié):

      

編碼名占用字節(jié)(1中文字符)python版本(默認(rèn))
ASCII沒(méi)有中文python2
GBK2個(gè)字節(jié)無(wú)
unciode3個(gè)字節(jié)無(wú)
utf-83個(gè)字節(jié)python3

    ps.二進(jìn)制換算:

    • 最小計(jì)算機(jī)表示單位為bit(位)
    • 8bit = 1byte(字節(jié),最小存儲(chǔ)字節(jié))
    • 1024byte = 1MB(兆) ?MB--〉GB--〉TB --〉PB    

三、pycharm簡(jiǎn)單設(shè)置及使用

?  1、使用:

    a、創(chuàng)建項(xiàng)目:file ---> new project

    b、新建文件夾:右擊要?jiǎng)?chuàng)建文件夾的項(xiàng)目或上級(jí)目錄?----〉new ---〉directory?

    c、新建文件:右擊要?jiǎng)?chuàng)建文件夾的項(xiàng)目或上級(jí)目錄?----〉new ---〉file

    d、運(yùn)行文件:要執(zhí)行的.py文件內(nèi)容---〉右擊---〉run xx.py

  ?2、文件編碼:

    file ---->default settings --->editor --->file encodings

  ?3、程序文件模版:

    file ---->default settings --->editor --->file and code templates?

  ?4、改變字體大小:

    file ----〉settings ----〉editor ---> General ---〉mouse

四、注釋使用及.pyc文件

  1、python文件注釋:

    # 單行注釋

    ''' '''' 多行注釋

? ? ?2、.pyc文件:

    .pyc文件存儲(chǔ)的是介于0101計(jì)算機(jī)語(yǔ)言和我們寫的文件之間的語(yǔ)言。是有python解釋器根據(jù)我們編寫的代碼自動(dòng)生成的文件。具體可查看, 注1

五、python變量(初識(shí))

  1、變量命名規(guī)則:

    a.字母

    b.數(shù)字(不能開頭)

    c.下劃線

?  ps.硬性規(guī)定,命名必須是字母,數(shù)字,下劃線,且不能以數(shù)字開頭。

    軟性規(guī)則,以下劃線分割

  2、實(shí)例:

    a.寫法: age_of_oldboy = 60

    b.命名潛規(guī)則:age_of_oldboy 普通變量

          Age_of_oldboy ?首字母大寫,一般為類

          AGE_OF_OLDBOY 一般為常量寫法

六、python用戶交互(輸入輸出):

  1、輸入

    v = input('>>>')?

    import getpass

    v = input('>>>')

  2、輸出

    print('input', v)

  3、實(shí)例:

'''
輸入,輸出
'''

#輸入終端隱藏,pycharm不好使
import getpass

#正常輸入,顯示
name = input('name:')
password = getpass.getpass('password:')
age = 18

#正常輸出
print(name, password, age)

七、if條件語(yǔ)句

1、if...else...結(jié)構(gòu)

    a.含義:

      if 條件:

        條件成功,執(zhí)行

      else:

        條件失敗,執(zhí)行

    b.實(shí)例:

#!/usr/bin/python
#-*- coding:utf-8 -*-
## 用戶登陸(三次機(jī)會(huì)重試)
user="tianyou.zhu"
password="tianyou123"
for i in range(3):
user_input= input("請(qǐng)輸入你的名字:")
pass_input=input("請(qǐng)輸入你的密碼:")
if user_input ==user and pass_input==password:
print ("登陸成功")
break
else:
print ("登陸失敗,請(qǐng)重新輸入")

2、if ...elif ... else ...結(jié)構(gòu)

     a.含義:

        if 條件:

          if條件成功,執(zhí)行

        elif 條件:

          elif條件成功,執(zhí)行

        elif 條件:

          elif條件成功,執(zhí)行

          ....

        else:

          上述條件都失敗,執(zhí)行

     b.實(shí)例:

username = input('>>>')
if username == 'tianyou.zhu':
  print('普通管理')
elif username == 'a':
  print('超級(jí)管理')
elif username == 'b':
  print('人')
elif username == 'c':
  print('裝逼犯')
else:
  print('再見...')

print('end')

八、循環(huán)語(yǔ)句(while & for)

  1、while循環(huán)

    a.結(jié)構(gòu)

      while 條件:

        continue #立即執(zhí)行下一個(gè)循環(huán)

        break ?#跳出當(dāng)前while的所有循環(huán)

      else: #while條件不成立執(zhí)行

        

    b.實(shí)例1:1,2,3,4,5,6, 8, 9, 10 打印

#!/usr/bin/python
#-*- coding:utf-8 -*-
#1、使用while循環(huán)輸入 1 2 3 4 5 6 8 9 10
#i=1
#while True:
# if i ==7:
# i=i+1
# continue
# print (i)
# i= i +1
# if i == 11:
# break
for i in range(11):
if i==7:
continue
print (i)

c.實(shí)例2:while 計(jì)算1到100的和 #!/usr/bin/python
#-*- coding:utf-8 -*-
#求1-100的所有數(shù)的和
val = 0
i=1
while i<101:
val = val+i
i= i +1
print (val)

a = 0
b = 1
for i in range(100):
a =a+b
b=b+1
print (a)

d.實(shí)例3:求1-2+3-4+5 ... 99的所有數(shù)的和 #!/usr/bin/python
#-*- coding:utf-8 -*-
#5、求1-2+3-4+5 ... 99的所有數(shù)的和
#value = 0
#i = 1
#while i<100:
# if i % 2 == 1:
# # value = value + i
# value += i
# else:
# # value = value - i
# value -= i
# i += 1 # i = i + 1
#print(value)
e.實(shí)例4:用戶登陸(三次機(jī)會(huì)重試) #!/usr/bin/python
#-*- coding:utf-8 -*-
## 用戶登陸(三次機(jī)會(huì)重試)
user="tianyou.zhu"
password="tianyou123"
for i in range(3):
user_input= input("請(qǐng)輸入你的名字:")
pass_input=input("請(qǐng)輸入你的密碼:")
if user_input ==user and pass_input==password:
print ("登陸成功")
break
else:
print ("登陸失敗,請(qǐng)重新輸入")

九、運(yùn)算符

?  1、算術(shù)運(yùn)算符:

    

  2、比較運(yùn)算:

    

  3、賦值運(yùn)算:

    

  4、邏輯運(yùn)算:

    

  5、成員運(yùn)算:

    

  6、身份運(yùn)算:

    

  7、位運(yùn)算:

    

a = 60 # 60 = 0011 1100
b = 13 # 13 = 0000 1101
c = 0

c = a & b; # 12 = 0000 1100
print "Line 1 - Value of c is ", c

c = a | b; # 61 = 0011 1101
print "Line 2 - Value of c is ", c

c = a ^ b; # 49 = 0011 0001 #相同為0,不同為1
print "Line 3 - Value of c is ", c

c = ~a; # -61 = 1100 0011
print "Line 4 - Value of c is ", c

c = a << 2; # 240 = 1111 0000
print "Line 5 - Value of c is ", c

c = a >> 2; # 15 = 0000 1111
print "Line 6 - Value of c is ", c

補(bǔ)充要點(diǎn):

    a. i += 1 等同于 i = i + 1。同理*= -= 等賦值運(yùn)算符都為該系列。

    b.?邏輯運(yùn)算,從左往右一個(gè)一個(gè)看,先算()內(nèi)的數(shù)值。

#!/usr/bin/env python
# -*- coding:utf-8 -*-

'''
邏輯運(yùn)算
'''

#1正確
if 1 == 1 or 1 > 2 and 1 == 4:
  print('正確')
else:
  print('錯(cuò)誤')

#2錯(cuò)誤
if 1 == 1 and 1 > 2 or 1 == 4:
  print('正確')
else:
  print('錯(cuò)誤')

#3錯(cuò)誤
if 1 == 0 and 1 > 2 or 1 == 4:
  print('正確')
else:
  print('錯(cuò)誤')

#4錯(cuò)誤
if 1 == 0 and (1 < 2 or 1 == 4):
  print('正確')
else:
  print('錯(cuò)誤')

#5錯(cuò)誤
if 1 == 0 and 1 > 2 or 1 == 4:
  print('正確')
else:
  print('錯(cuò)誤')

c.成員運(yùn)算

#!/usr/bin/env python
# -*- coding:utf-8 -*-

'''
成員運(yùn)算符
'''
content = "Alex 前幾天去泰國(guó)玩姑娘,一不小心染上了病,他的內(nèi)心活動(dòng)是,真該多來(lái)幾個(gè)"

if "前幾天去" in content:
  print('包含敏感字符')
else:
  print(content)

十、python數(shù)據(jù)類型初識(shí)(int,bool,str,list,dict)

  type()查看變量類型。

  1、int(整形)

    a.創(chuàng)建

    b.轉(zhuǎn)換

#!/usr/bin/env python
# -*- coding:utf-8 -*-

'''
int(整形)
a.創(chuàng)建
b.轉(zhuǎn)換
'''

#創(chuàng)建
age = 19
age1 = int(19)
print(age,age1)

#轉(zhuǎn)換
age2 = '19'
print(type(age2))
#isdigit()判斷是否是一個(gè)數(shù)字,int()只能轉(zhuǎn)數(shù)字,不能轉(zhuǎn)字母、中文等。會(huì)報(bào)錯(cuò)
if age2.isdigit(age2):
int(age2)
print(('tpye:%s age2:%d') % (type(age2), age2))

?

 2、bool(布爾值)

    a.創(chuàng)建

    b.轉(zhuǎn)換

#!/usr/bin/env python
# -*- coding:utf-8 -*-

'''
bool(布爾值)
a.創(chuàng)建
b.轉(zhuǎn)換
'''

#創(chuàng)建
a = True
b = False

#轉(zhuǎn)換
#數(shù)字轉(zhuǎn)換,只有0是False,其他True
#字符串, 只有""是False,其他True
#其他,待續(xù)……
a1 = 0
a2 = 100
a3 = -100
a1_bool = bool(a1)
a2_bool = bool(a2)
a3_bool = bool(a3)
print('a1 %s:%s bool_type:%s'%(a1,a1_bool, type(a1_bool)))
print('a2 %s:%s bool_type:%s'%(a2,a2_bool, type(a1_bool)))
print('a3 %s:%s bool_type:%s'%(a3,a2_bool, type(a1_bool)))


b1 = ''
b2 = 'fafa'
b3 = 'AFSD@'
b1_bool = bool(b1)
b2_bool = bool(b2)
b3_bool = bool(b3)
print('b1 %s:%s bool_type:%s'%(b1,b1_bool, type(a1_bool)))
print('b2 %s:%s bool_type:%s'%(b2,b2_bool, type(a1_bool)))
print('b3 %s:%s bool_type:%s'%(b3,b3_bool, type(a1_bool)))

'''
結(jié)果:
a1 0:False bool_type:<class 'bool'>
a2 100:True bool_type:<class 'bool'>
a3 -100:True bool_type:<class 'bool'>
b1 :False bool_type:<class 'bool'>
b2 fafa:True bool_type:<class 'bool'>
b3 AFSD@:True bool_type:<class 'bool'>
'''

?

3、str(字符串)

    a.創(chuàng)建

    b.轉(zhuǎn)換

    c.拼接

    d.格式化

    e.是否在子序列中

    f.移除空白.strip()

    g.分割.split('分割符',步長(zhǎng))

    h.長(zhǎng)度len()

    i.索引[]

    j.切片[開始:結(jié)束:步長(zhǎng)]

#!/usr/bin/env python
# -*- coding:utf-8 -*-

'''
str(字符串)
a.創(chuàng)建 b.轉(zhuǎn)換 c.拼接 d.格式化 e.是否在子序列中 f.移除空白
g.分割 h.長(zhǎng)度 i.索引 j.切片
'''

#創(chuàng)建
name = 'tianyou.zhu'
name1 = str('tianyou.zhu')
print('name: %s tpye:%s \n name1:%s tpye:%s\n' %(name,type(name),name1,type(name1)))

#轉(zhuǎn)換
age = 19
age_str = str(age)
print('age_str:%s tpye:%s' % (age, age_str))

#字符串拼接
name2 = 'alex'
gender = '女'
new_str = name2 + gender
print(new_str)

#字符串格式化,使用占位符%s(待續(xù)...)
name3 = '我叫李杰,性別:%s,我今年%s歲,我在說(shuō)謊!'
new_str2 = name3 %('男',19,)
print(new_str2)
name4 = '我叫李杰,性別:%s,我今年%s歲,我在說(shuō)謊!' %('男',19)
print(name4)

#判斷子序列是否在其中
content = "Alex 前幾天去泰國(guó)玩姑娘,一不小心染上了病,他的內(nèi)心活動(dòng)是,真該多來(lái)幾個(gè)"
if "前幾天去" in content:
print('包含敏感字符')
else:
print(content)

#移除空白
val = " alex "
print(val)
new_val = val.strip() # 左右去
# new_val = val.lstrip()# 左邊去
# new_val = val.rstrip() # 右邊去
print(new_val)

#分割.split('分隔符',步長(zhǎng))
user_info = "alex|sb123|9"
v = user_info.split('|')
# v = user_info.split('|',1)
# v = user_info.rsplit('|',1) #右分割
# v = user_info.lsplit('|',1) #左分割
print(v)

#長(zhǎng)度(字符)python2,中文按2字節(jié)算,python按,中文按1字符算
val = "李杰nb"
v = len(val)
print(v)

'''
結(jié)果:
4
'''

#索引
val = "李杰mb"
v = val[0]
print(v)

val = input('>>>')
i = 0
while i < len(val):
print(val[i])
i += 1

'''
輸入:dd
結(jié)果:
d
d
'''
#切片
name = '我叫李杰,性別我今年歲,我在說(shuō)謊!'
print(name[0])
print(name[0:2])
print(name[3:9])
print(name[7:])
print(name[4:-2])
print(name[-2:])

'''
結(jié)果:

我叫
杰,性別我今
我今年歲,我在說(shuō)謊!
,性別我今年歲,我在說(shuō)
謊!
'''

4、list(列表)

    a.創(chuàng)建

    b.in判斷

    c.索引[]

    d.追加.append()

    e.插入.insert()

    f.刪除del .remove()

    g.更新

    h.輸出

    i.長(zhǎng)度len()

    j.切片[開始:結(jié)束:步長(zhǎng)]

創(chuàng)建:
a = ['alex','狗','eric',123]
a = list(['alex','狗','eric',123])

in判斷:

if 'al' in a:
pass

if 'al' in a[0]:
pass

索引:
val = a[0]

長(zhǎng)度:
val = len(a)

切片:
a = ['alex','狗','eric',123]
v = a[0::2]
print(v)

追加:
a = ['alex','狗','eric',123]
a.append('xxoo')
print(a)
插入:
a = ['alex','狗','eric',123]
a.insert(0,'牛')
print(a)
刪除:
a = ['alex','eric','狗','eric',123]
# a.remove('eric')
del a[0]
print(a)

更新:
a = ['alex','eric','狗','eric',123]
a[1] = '阿斯頓發(fā)送到'
print(a)

For循環(huán):
a = ['alex','eric','狗','eric',123]
for item in a:
print(item)
# break
# continue

5、dict(字典)

    a.創(chuàng)建

    b.索引

    c.增加&更新

    d.刪除

    e.輸出

- 創(chuàng)建

v = {
'name': 'alex',
'password': '123123'
}

# 常用操作

# 索引獲取值
# n = v['name']
# print(n)

# 增加,無(wú),增加;有,修改
# v['age'] = 19
# print(v)

# 刪除
# del v['name']
# print(v)

# 循環(huán)
# for item in v.keys():
# print(item)
# for item in v.values():
# print(item)
# for key,val in v.items():
# print(key,val)


print(len(user_dict))

PS: 相互嵌套
user_dict = {
'k1': 'v1',
'k2': {'kk1':'vv1','kk2':'vv2'},
'k3': 123,
'k4': ['alex','eric',['a','b','c'],'李杰',{'k11':'vv1'}],
}
user_dict['k4'][2].append('123')
user_dict['k4'][4]['n'] = '過(guò)啥龍'


應(yīng)用:

user_list = [
{'name':'alex','pwd':'123123','times':1},
{'name':'eric','pwd':'123123','times':1},
{'name':'tony','pwd':'123123','times':1},
]
user = input('用戶名:')
pwd = input('密碼:')
for item in user_list:
  if user == item['name'] and pwd == item['pwd']:
    print('登錄成功')
    break

list & dict嵌套

   a.實(shí)例1:相互嵌套

#!/usr/bin/env python2 # -*- coding:utf-8 -*-
3 4 5 '''6 dict&list相互嵌套實(shí)例17 '''8 9 user_dict = { 10 'k1': 'v1', 11 'k2':{'kk1':'vv1', 'kk2':'vv2'}, 12 'k3':123, 13 'k4':[ 'jack', ['a', 'b', 'c'], '李杰',{'k1':'v1'}] 14 } 15 print('dict: %s' % user_dict) 16 17 #添加dict --〉 list的元素 18 user_dict['k4'][2].append('123') 19 print('add_dict_list: %s' % user_dict) 20 21 #添加dict ---〉 dict的元素 22 user_dict['k4'][4]['k2'] = 'v1' 23 print('add_dict_dict: %s' % user_dict)
b.實(shí)例2:多用戶密碼登陸

#!/usr/bin/env python
# -*- coding:utf-8 -*-

'''
dict_list多用戶登陸
'''

user_list = [
{'name':'alex','pwd':'123123','times':1},
{'name':'eric','pwd':'123123','times':1},
]
user = input('用戶名:')
pwd = input('密碼:')

for item in user_list:
  if user == item['name'] and pwd == item['pwd']:
    print('登錄成功')

1、注解1:

    a.?解釋型語(yǔ)言和編譯型語(yǔ)言  

  ?計(jì)算機(jī)是不能夠識(shí)別高級(jí)語(yǔ)言的,所以當(dāng)我們運(yùn)行一個(gè)高級(jí)語(yǔ)言程序的時(shí)候,就需要一個(gè)“翻譯機(jī)”來(lái)從事把高級(jí)語(yǔ)言轉(zhuǎn)變成計(jì)算機(jī)能讀懂的機(jī)器語(yǔ)言的過(guò)程。這個(gè)過(guò)程分成兩類,第一種是編譯,第二種是解釋。

  編譯型語(yǔ)言在程序執(zhí)行之前,先會(huì)通過(guò)編譯器對(duì)程序執(zhí)行一個(gè)編譯的過(guò)程,把程序轉(zhuǎn)變成機(jī)器語(yǔ)言。運(yùn)行時(shí)就不需要翻譯,而直接執(zhí)行就可以了。最典型的例子就是C語(yǔ)言。

      解釋型語(yǔ)言就沒(méi)有這個(gè)編譯的過(guò)程,而是在程序運(yùn)行的時(shí)候,通過(guò)解釋器對(duì)程序逐行作出解釋,然后直接運(yùn)行,最典型的例子是Ruby。

  ?通過(guò)以上的例子,我們可以來(lái)總結(jié)一下解釋型語(yǔ)言和編譯型語(yǔ)言的優(yōu)缺點(diǎn),因?yàn)榫幾g型語(yǔ)言在程序運(yùn)行之前就已經(jīng)對(duì)程序做出了“翻譯”,所以在運(yùn)行時(shí)就少掉了“翻譯”的過(guò)程,所以效率比較高。但是我們也不能一概而論,一些解釋型語(yǔ)言也可以通過(guò)解釋器的優(yōu)化來(lái)在對(duì)程序做出翻譯時(shí)對(duì)整個(gè)程序做出優(yōu)化,從而在效率上超過(guò)編譯型語(yǔ)言。

      此外,隨著Java等基于虛擬機(jī)的語(yǔ)言的興起,我們又不能把語(yǔ)言純粹地分成解釋型和編譯型這兩種。

      用Java來(lái)舉例,Java首先是通過(guò)編譯器編譯成字節(jié)碼文件,然后在運(yùn)行時(shí)通過(guò)解釋器給解釋成機(jī)器文件。所以我們說(shuō)Java是一種先編譯后解釋的語(yǔ)言。

    b.圖例:

      

     

    c.編譯型vs解釋型

編譯型
優(yōu)點(diǎn):編譯器一般會(huì)有預(yù)編譯的過(guò)程對(duì)代碼進(jìn)行優(yōu)化。因?yàn)榫幾g只做一次,運(yùn)行時(shí)不需要編譯,所以編譯型語(yǔ)言的程序執(zhí)行效率高。可以脫離語(yǔ)言環(huán)境獨(dú)立運(yùn)行。
缺點(diǎn):編譯之后如果需要修改就需要整個(gè)模塊重新編譯。編譯的時(shí)候根據(jù)對(duì)應(yīng)的運(yùn)行環(huán)境生成機(jī)器碼,不同的操作系統(tǒng)之間移植就會(huì)有問(wèn)題,需要根據(jù)運(yùn)行的操作系統(tǒng)環(huán)境編譯不同的可執(zhí)行文件。

解釋型
優(yōu)點(diǎn):有良好的平臺(tái)兼容性,在任何環(huán)境中都可以運(yùn)行,前提是安裝了解釋器(虛擬機(jī))。靈活,修改代碼的時(shí)候直接修改就可以,可以快速部署,不用停機(jī)維護(hù)。

缺點(diǎn):每次運(yùn)行的時(shí)候都要解釋一遍,性能上不如編譯型語(yǔ)言。

?

?    d.更多解釋詳見

      http://www.cnblogs.com/alex3714/articles/5465198.html

      http://www.cnblogs.com/wupeiqi/articles

?




轉(zhuǎn)載于:https://www.cnblogs.com/you0329/p/6761569.html

總結(jié)

以上是生活随笔為你收集整理的python-day1的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。