国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

python初學--day1

2019-11-14 16:56:58
字體:
來源:轉載
供稿:網友

第一個PYTHON代碼

交互式編程它不需要創建腳本文件,是直接通過 Python 的解釋器的交互模式進來編寫代碼。如下圖所示(Win7操作)

下圖為一個Python代碼內部執行圖,可以有助于理解python整個過程

 1 C:/Users/miao>python -V 2 Python 2.7.10 3  4 C:/Users/miao>python 5 Python 2.7.10 (default, May 23 2015, 09:40:32) [MSC v.1500 32 bit (Intel)] on wi 6 n32 7 Type "help", "copyright", "credits" or "license" for more information. 8 >>> PRint 'Hello,World!' 9 Hello,World!10 >>>exit()

通過創建腳本文件,先編譯一個文本文件,文件后綴名為.py (注:txt結尾的文件也是可以運行的,但是它在運行后不會生成pyc格式的文件,這樣的話如果用戶想調用這個程序就不能了)

.pyc速度快,如果.py內容修改,則先執行.py.然后生成.pyc執行

編寫內容如下:

1 #!/usr/bin python2 #-*- coding:utf-8 -*-3 4 print 'hello,world'5 print '你好,世界!'

執行結果如下:

1 E:/軟件/python/class_test/days1>python hello.py2 hello,world3 你好,世界!

python引導/注釋

 

Python 中字符串可以使用單引號( ' ) ,雙引號( " ),三引號('''  ''') 來表示,引號的開始與結束必須使用相同的類型。
其中三引號也可以做為注釋使用。

1 #!/usr/bin python2 #-*- coding:utf-8 -*-3 4 print 'hello,world'5 print "hello,world"6 7 '''8 print '你好,世界!' 9 '''

執行結果如下:

1 E:/軟件/python/class_test/days1>python hello.py2 hello,world3 hello,world

從上面可以看出因為我們注釋掉了"你好,世界!",所以程序在執行時,沒有把它打印出來

三個引號也可以做為換行使用,如下:

 1 >>> print ''' 2 ... a 3 ... b 4 ... c 5 ... d 6 ... ''' 7  8 a 9 b10 c11 d12 13 >>>

字節碼

三種編碼類型:ASCII,UNICODE,UTF-8

PYTHON3.0以前默認使用ASCII,如果里面含有漢字,我們在寫代碼時,可以在上面頂行寫一個編碼聲明:

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

PYTHON3.0以后,默認使用UTF-8

變量聲明與賦值

1 #!/usr/bin/env python2 # -*- coding: utf-8 -*-3  4 name = "alex"

如下面這個例子:

 1 >>> name1='wupeiqi' 2 >>> name2=name1 3 >>> name1 4 'wupeiqi' 5 >>> name2 6 'wupeiqi' 7 >>> name1='123' 8 >>> name1 9 '123'10 >>> name211 'wupeiqi'12 >>>

變量name1,我們賦予它值'alex'后,它會在內存中開辟一塊區域用來存儲這個字符串,如果我把變量name2的值賦予name1,雖然它們的結果是一樣的,其實它們應該在內存是兩塊區域,只是PYTHON對它們進行了一個優化,設了一個共享池,它會把同樣的值,用的頻率高的值放到一個小池子里,方便用戶對它的調用.而不用每次讀取磁盤.同時還可以加快響應速度

如果是集合的話,name是會跟著變的
C語言里面是沒有字符串的,有字符
hello --五個字符組成
C語言中是由字符數組['h','e',...'o']
字符串特性:一旦修改,重新創建
 
'hello'+'sb'+'alex'
'hello'+
'hello'+'sb'+
'hello'+'sb'+'alex'
 
python有一個垃圾回收機制,python虛擬機,它會自動清理,我們不用關心

用戶交互

這里用到一個參數:raw_input,我們來看下面的例子

1 #!/usr/bin env python2 #-*- coding:utf-8 -*-3 4 name = raw_input("請輸入用戶名: ") 

我們執行這個文件,看一下結果

 

1 E:/軟件/python/class_test/days1>python flow_control_1.py2 請輸入你的名字: 你好

模塊調用

import 

看如下兩個例子:

例一:#!/usr/bin env python#-*- coding:utf-8 -*-import sys#捕獲參數print sys.argv執行E:/軟件/python/class_test/days1>python capture_parameter.py localhost:8001['capture_parameter.py', 'localhost:8001']例二:#!/usr/bin python#-*- coding:utf-8 -*-import getpasspwd = getpass.getpass(">>>")print pwd執行E:/軟件/python/class_test/days1>python capture_parameter.py>>>123E:/軟件/python/class_test/days1>python capture_parameter.py>>>wo de mi ma

 

流程控制

用的兩個判斷語句:if ... else

                          if ... elif ....elif...else

可以參考如下兩個例子:

例一:#!/usr/bin env python#-*- coding:utf-8 -*-if name == 'alex':      print '你猜對了'else:    print '你輸入的是啥啊?' 例二:#!/usr/bin env python#-*- coding:utf-8 -*-#if  elsename = raw_input("請輸入你的名字: ")if name == 'eric':    print '普通'elif name == 'tony':    print '超級'elif name == 'alex':    print '超神'else:    print '你輸入錯誤'
數據類型
兩部分:
    1.單值
                數字 
                    整型: 如3714
                    長整型:特別大的一個整數
                python自動來判斷整型,長整型
                    浮點型:如3.14
                    復數:z = a + bj
             布爾值:True,False
            字符串
 1 >>> name = 1314 2 >>> print type(name) 3 <type 'int'>   ===>整型 4 >>> name = 1.314 5 >>> print type(name) 6 <type 'float'>  ===>浮點型 7 >>> 1=2 8   File "<stdin>", line 1 9 SyntaxError: can't assign to literal10 >>> name1 =511 >>> name2 = 612 >>> name1 < name213 True           ===>布爾值14 >>> name1 > name215 False

    2.集合

             -----列表
name_list = ['alex','seven','eric']或name = list( ['alex','seven','eric'] )例如:>>> name_list[0]'alex'>>> name_list[-1]'eric'
1 >>> name = ['wo','ai','ni']2 >>> print type(name)3 <type 'list'>    ===>列表

             -----元組           

4 >>> ages = (11,22,33)5 >>> print type(ages)6 <type 'tuple'>  ===>元祖

          -----字典、  哈希表

每個鍵與值用冒號隔開(:),每對用逗號分割,整體放在花括號中({})。

鍵必須獨一無二,但值則不必。

值可以取任何數據類型,但必須是不可變的,如字符串,數或元組。

 1 #!/usr/bin/env python 2 #-*- utf-8 -*- 3  4 person = {'name':'alex','age': 18,'gender': 'erci'}  ---->字典里面一個元素  .每一個元素都是由一個鍵值對組成 5  6 person['age'] = 20    ---》修改字典 7 person['love'] = 'women'  ---》添加字典鍵值對 8 del person['name']   ---》刪除字典鍵值對 9 10 print 'age is:',person['age']11 print 'love is:',person['love']12 print person  

 結果如下:

1 E:/軟件/python/class_test/days1>python dict.py2 age is: 203 love is: women4 {'gender': 'erci', 'age': 20, 'love': 'women'}

 

注:列表與元祖的區別
1.元祖不可修改,列表可修改
2.對于切片來說,元祖也是可以執行的
3.元祖不可以增加,修改
4.元祖是括號()表示,列表用中括號[]表示

字符串格式化

%s:字符串  %d:數字

例子如下:

 1 name = 'i am %s' % 'alex' 2 方式一: 3 >>> name = 'i am %s,age %d' %('alex',63) 4 >>> name 5 'i am alex,age 63' 6 方式二: 7 >>> name = 'i am %s,age %d' 8 >>> name %('alex',76) 9 'i am alex,age 76'10 方式三:11 >>> name = 'i am {0},age{1}'12 >>> name.format('alex',73)13 'i am alex,age73'

方式一與方式二是一樣的,方式一執行時實際調用的是方式三.

字符串是一個字符數組

索引(也叫下標)

我們先看一下這個例子:

 1 >>> name = 'alex' 2 >>> name[0] 3 'a' 4 >>> name[1] 5 'l' 6 >>> name[2] 7 'e' 8 >>> name[3] 9 'x'10 >>> name[1:3] -->  這個3是不包含3的,是小于3的,<311 'le'12 >>> name[0:] --> 表示到結尾13 'alex'14 >>> name[1:]15 'lex'16 >>> name[-1:] -->負1表示最后一個17 'x'

查看一個字符串的長度:print len(name)

注意:下標是從0開始

去除空格 

我們這里用到這個strip參數,直接看下面的例子:

 1 print name.strip() -->去掉兩頭空格  2 print name.lstrip() -->去掉左邊空格  3 print name.rstrip() -->去掉右邊空格  4 例如: 5 >>> print name.strip() 6 alex 7 >>> print name.lstrip() 8 alex 9 >>> print name.rstrip()10    alex

列表增加元素的方法

定義:列表1     name_list1= ['alex','seven','eric']

定義:列表2     name_list2 =name_list1

1 >>> name_list1= ['alex','seven','eric']2 >>> name_list2 = name_list13 >>> name_list14 ['alex', 'seven', 'eric']5 >>> name_list1.append('miao')6 >>> name_list17 ['alex', 'seven', 'eric', 'miao']8 >>> name_list29 ['alex', 'seven', 'eric', 'miao']

通過上面我們可以看到:列表是可以增加的,并且列表2會隨著列表1的變化而變化.而字符串是和這個不同的

分割與合成

我們這里用一個參數split和join,例子如下:

 1 >>> name = 'zhongsguo' 2 #把字符串分割成列表 3 >>> name.split('s') 4 ['zhong', 'guo'] 5 >>> name1 = name.split('s') 6 >>> name1 7 ['zhong', 'guo'] 8 #把列表合并成字符串 9 >>> name2 = '_'.join(name1)10 >>> name211 'zhong_guo'
幾個小的注意點:
str字符串:新加后重新開辟空間
list列表:  修改后,引用地址不變
tuple元祖: 不允許修改
循環
一、for ...in....
1 #!/usr/bin/env python2 # -*- coding:utf-8 -*-3 4 name_list = ['alex', 'xiaoyueyue', 'wenqiang']5 for ele in name_list:6     print ele

二、加if條件的循環

1 #!/usr/bin/env python2 # -*- coding:utf-8 -*-3 4 name_list = ['alex', 'xiaoyueyue', 'wenqiang']5 for ele in name_list:6     if ele == "xiaoyueyue":7         print "find"

三、如果我們要中斷跳出整個循環,可以用break

1 #!/usr/bin/env python2 # -*- coding:utf-8 -*-3 4 name_list = ['alex', 'xiaoyueyue', 'wenqiang']5 for ele in name_list:6     if ele == "xiaoyueyue":7         print "find"8         break

四、如果我們要跳出當前條件的for循環,可以用continue

1 name_list = ['alex','yue','xiang']2 for ele in name_list:3     if ele == 'qyue':4         print '找到你了'5         continue       --->如果第一個沒有找到,重新開始執行找第二個6     if ele == 'alex':7         print 'sp'8         break

 

五、if...elif...else...嵌套循環

 1 #!/usr/bin env python 2 #-*- coding:utf-8 -*- 3  4 name1 = 'alex' 5 name2 = 'eric' 6 test = raw_input("請輸入你的名字: ")  7  8 if test == name1:   9     print '你輸入的名字是:',name110 elif test == name2:11     print '你輸入的名字是:',name212 else:13     print '你輸入的是啥啊?' 

結果如下:

 1 E:/軟件/python/class_test/days1>python flow_control_1.py 2 請輸入你的名字: eric 3 你輸入的名字是: eric 4  5 E:/軟件/python/class_test/days1>python flow_control_1.py 6 請輸入你的名字: miao 7 你輸入的是啥啊? 8  9 E:/軟件/python/class_test/days1>python flow_control_1.py10 請輸入你的名字: alex11 你輸入的名字是: alex 

 基本的文件操作

文件里的寫,讀
步驟:找到文件:文件路徑E:/
        打開文件:file_obj =  (文件路徑,'w+'什么形式打開?)
                        open:   open內部會調用file打開文件
        文件操作,讀寫(會傳回一個文件句柄)
        file_obj.read()  #會將所有的內容讀入內存
        file_obj.readlines() #會將所有的內容讀入內存,并且一行一行給你列出.以行為元素的列表
        for line in  file_obj.xreadlines() #迭代器, 一行一行代入,這個是已經廢掉的
        for line in file_obj: #每次循環,只讀一行,避免全部讀入內存
        file_obj.write() #會將內容全部寫入文件
        file_obj.writeline() #會逐行寫入文件
        file_obj.close()     文件關閉
例如下面這個例子:我們新建一個log.txt文件,要求里面的值全加1后,然后再更新寫入文件
 1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3  4  5 file_obj = open('E:/軟件/python/class_test/days1/log.txt', 'r+') 6 line_list = file_obj.readlines()   7 my_list =[] 8 for ele in line_list: 9     line = ele.strip()10     value_list = line.split(',')11     last_value = int(value_list[-1])12     last_value += 113     value_list[-1] = str(last_value)14     value_str = ','.join(value_list)15     my_list.append(value_str)16 my_str = '/n'.join(my_list)17 file_obj.seek(0)18 file_obj.write(my_str)19 #file_obj.flush()20 file_obj.close()
 1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3  4  5 file_obj = file('E:/軟件/python/class_test/days1/log.txt', 'r') 6  7 #print file_obj.readlines(),#將文件內容賦值給變量line_list 8 line_list = file_obj.readlines()   9 #新建一個列表,用來存放轉換后結果10 my_list =[]11 12 for ele in line_list:13     # 把line_list中的值去掉空格,然后賦給變量line14     line = ele.strip()15     #對line里面的內容,通過,分割成列表    16     value_list = line.split(',')17     #對列表value_list切片取最后值,為了確保無誤,我們對取值后的結果轉換成整型    18     last_value = int(value_list[-1])19     #按照要求加1    20     last_value += 121     #把加1后的列表last_value內容重新軟件成字符串    22     value_list[-1] = str(last_value)23     #我們通過合并參數join,用,把字符串轉換成列表,并賦給變量value_str    24     value_str = ','.join(value_list)25     #因為我們有好多行內容,所以把每次轉換后的結果追加存入列表my_list中,方便直接調用    26     my_list.append(value_str)27 #因為我們原來文件中的內容一行一條信息,所以我們新加入的信息加入換行符,并賦給變量my_str28 my_str = '/n'.join(my_list)29 #把最后更新的結果寫入文件中30 file_obj.write(my_str)31 #清空緩存32 file_obj.flush()33 #關閉文件34 file_obj.close()35 36 37 38     
View Code

 

 

 

 
      

 

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 松阳县| 德惠市| 建德市| 长沙市| 岳阳县| 洛宁县| 玉树县| 花莲县| 重庆市| 苍南县| 无极县| 桃江县| 湘乡市| 永靖县| 乌拉特后旗| 策勒县| 垦利县| 潮安县| 宁明县| 电白县| 根河市| 南宁市| 乌鲁木齐县| 昌都县| 淄博市| 闻喜县| 巫山县| 达日县| 阿坝| 泰州市| 启东市| 靖江市| 永和县| 鸡泽县| 剑川县| 安阳县| 盐山县| 休宁县| 南部县| 岗巴县| 富平县|