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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python基础--环境配置、编码风格、基础概念、基本数据类型(1)

發布時間:2025/3/8 python 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python基础--环境配置、编码风格、基础概念、基本数据类型(1) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

#######python########

python的基本

?

?

[root@desktop ~]# yum install python -y

?

[root@desktop ~]# python -V????##查看python版本

Python 2.7.5

[root@desktop ~]# python --version

Python 2.7.5

?

?

?

為什么用/usr/bin/python

關于python腳本中的第一行內容 :

????????#!/usr/bin/python 這種寫法表示直接引用系統的默認的 Python 版本,這樣的話python 程序移植到其他機器上可能運行的時候有問題,因為別人系統默認的 Python版本與你預期的并不一致。

????????#!/usr/bin/env python 這種寫法表示,引用環境變量里面自定義的Python 版本,具有較強的可移植性,推薦這種寫法。

?

?

##交互使用python

當在shell命令行輸入python命令會進入一個交互式的python編程環境

[root@desktop ~]# python

Python 2.7.5 (default, Feb 11 2014, 07:46:25)

[GCC 4.8.2 20140120 (Red Hat 4.8.2-13)] on linux2

Type "help", "copyright", "credits" or "license" for more information.

>>> a=1

>>> print a ????##python沿襲了C語言的很多用法,輸出一字符串,使用print;

1

>>>##退出python的交互式環境通過快捷鍵ctrl+d或者使用exit()函數;

?

[root@desktop ~]# vim 1.py

#!/bin/env python

# coding:utf-8????##指定編碼格式(四個任意一個都可以)

# coding=utf-8

# encoding:uft-8

# encoding=utf-8

?

#定義變量a,值為1

a=1

print a

?

[root@desktop ~]# chmod +x 1.py ##加上執行權限

[root@desktop ~]# python 1.py

1

?

?

理解字符編碼

ASCII:美國人發明了計算機,用二進制存儲數據,英文字母加各個字符一共128個,每8位存儲一個字符,2^8=256,可通過 ?ord() ?函數去查看字符對應的ASCII碼。

Unicode:但是ASCII碼忽略了中文,韓文,日文等其他國家的文字,這個時候256個字符的對應關系明顯是不夠用的,這時候就用兩個字節對應一個文字,2**16=65536.

UTF-8:英文字符明明可以通過一個字節存儲,Unicode卻需要2個字節來存儲,對于存儲比較小的計算機來說,是浪費很多不必要占用的空間,這個時候就出現utf-8。那么什么是utf-8呢?簡單來說就是可變長度編碼格式,英文字符用ASCII碼來存,而中文呢,就用utf-8來存,這個時候中文就不是兩個字節存儲,而是三個字節來存。

?

?

?

ASCII:1字節=8位 ???2^8=256;

Unicode:2字節=16位,2^16=65536 ?a --> 2字節 ??中文 --> 2字節;

uft-8: a --> 1字節 ??中文 --> 3字節

GB2312: 2字節

?

?

?

?

[root@desktop ~]# python

Python 2.7.5 (default, Feb 11 2014, 07:46:25)

[GCC 4.8.2 20140120 (Red Hat 4.8.2-13)] on linux2

Type "help", "copyright", "credits" or "license" for more information.

>>> a='westos'

>>> type(a)

<type 'str'>????##類型:字符串

>>> b=u'westos'????##加上u類型會發生改變

>>> type(b)????##類型:unicode

<type 'unicode'>

?

?

?

內存讀取: Unicode(encode) ##不能一個字節三個字節跳換,不符合讀取規則

存在硬盤: utf-8(decode)

?

當存儲數據到硬盤,需要考慮到節省空間的問題,所以采用utf-8格式進行存儲;

當將數據讀入內存時,統一一個編碼格式便于操作,采用unicode編碼格式;

?

在給客戶看的時候,會有注釋,會出現英中文交匯,為了方便操作,采用unicode編碼格式,在存儲數據到硬盤時候,為了節約空間,采用utf-8進行存儲。

?

?

?

字符的編碼:將Unicode轉化成utf-8(字符串)

字符的解碼:針對uft-8而言,將utf-8轉換成Unicode

>>> name_unicode = u"高手"

>>> type (name_unicode)

<type 'unicode'>

>>> name_utf8 = name_unicode.encode('utf-8')????##字符的編碼(encode是把之前的unicode編碼為utf-8

>>> type(name_utf8)

<type 'str'>

>>> name_unicode1 = name_utf8.decode('utf-8')????##字符的解碼(decode是把之前的utf-8解碼為unicode

>>> type(name_unicode1)

<type 'unicode'>

>>>

?

?

# 定義一變量,編碼格式為unicode

>>> name_unicode = u'粉條'

>>> type(name_unicode)

<type 'unicode'>

?

# 字符的編碼,從unicode到utf-8格式

>>> name_utf8 = name_unicode.encode('utf-8')

>>> type(name_utf8)

<type 'str'>

?

# 字符的解碼操作,從utf-8解碼到unicode編碼格式

>>> name_to_unicode = name_utf8.decode('utf-8')

>>> type(name_to_unicode)

<type 'unicode'>

?

?

ipython:對python在一定程度上進行了優化

?

python的解釋器:

cpython

?

?

?

?

?

?

安裝ipython。

pycharm安裝python編輯器

?

?

?

?

?

?

?

python與c的區別

?

腳本編寫C:

[root@desktop mnt]# vim 1.c

[root@desktop mnt]# chmod +x 1.c

[root@desktop mnt]# gcc 1.c -o 1.1.c

[root@desktop mnt]# ./1.1.c

hello!

[root@desktop mnt]# cat 1.c

#include <stdio.h>

?

void hello(){

printf("hello!");

}

?

void main(){

hello();

}

?

編寫python:

[root@desktop mnt]# vim 2.py

[root@desktop mnt]# chmod +x 2.py

[root@desktop mnt]# ./2.py

hello

wm

?

?

?

[root@desktop mnt]# cat 2.py

#!/usr/bin/env python

def hello():

print "hello"

def main():

hello()

print "wm"

main()

?

根據上面的兩個不同編程語言實現同一功能的分析,總結python編程初級要掌握的編程風格如下:

1)不要在行尾加分號;

2)每行不超過80個字符;

3)Python語言利用縮進表示語句塊的開始和退出(Off-side規則),而非使用花括號或者某種關鍵字。

4)增加縮進表示語句塊的開始,而減少縮進則表示語句塊的退出??s進成為了語法的一部分。

?

?

練習:

編寫簡單的python輸入x=10

x大于0,輸出x是正數,同時輸出x-10

x小于0,輸出x是負數,同時輸出x+10

否則,輸出x是0

#!/usr/bin/env python

#coding:utf-8

__author__ = "aely"##作者

?

'''##以下內容可以在設置里面設置模板

@author:haoning##編寫者

@file:333.py##文件名

@contact:1371975@qq.com##聯系人

@time:6/25/171:42 PM##編寫時間

'''

x=10

if x>0:

????print "x是正數"

????b= x-10

????print b

elif x<0:

????print "x是負數"

????c= x+10

????print c

else:

????print "x是0"

????

?

?

?

python注釋

單行注釋: ?# ?常被用作單行注釋符號, ?# ?開頭的行,其右邊的任何數據都會被忽略,當做是注釋。

塊注釋: 需要批量文本或代碼時,使用三引號 ?''' ''' ?.,當然三引號也可以實現多行文本格式化打印。

?

?

?

?

python里面打開python Console

In[2]: print 1

1

In[3]: print "ha"

ha

In[4]: print "wq521"

wq521

In[5]: print 1>2

False

In[6]: print 19+13

32

In[7]: raw_input()

>? hello

Out[7]: 'hello'

In[8]: print raw_input

<built-in function raw_input>

In[9]: name = raw_input("NAME:")

NAME:>? haha

In[10]: print name

haha

In[11]: name = raw_input("Age")

Age>? 3

In[13]: print name

3

In[14]: age = raw_input("Age")

Age>? 3

In[15]: name = raw_input("NAME:")

NAME:>? haha

In[16]: type(age)

Out[16]: str

In[17]: age = input('Age')

Age>? 4

In[18]: type(age)

Out[18]: int

In[19]: print age>10

False

In[20]: print age=10

??File "<ipython-input-20-87481056a110>", line 1

????print age=10

?????????????^

SyntaxError: invalid syntax

?

In[21]: print age<10

True

?

?

?

?

練習(要求):

?

小練習: 編寫一程序,錄入信息包括 ?hostname、IP、used_year、CPU、Memory、manager_name ?,如果使用年限超過10年,直接顯示警告信息“該服務器使用年限太久!”,如果使用年限不超過10年,顯示該服務器信息如下面的格式如下:

主機信息

主機名: hostname

IP:IP

使用年限:used_year

CPU:CPU

Memory:Memory

?

編程如下:

#!/usr/bin/env python

#coding:utf-8

__author__ = "aely"

?

'''

@author:haoning

@file:text.py

@contact:1371975@qq.com

@time:6/25/173:10 PM

'''

hostname = raw_input("主機名:")

IP = raw_input('IP:')

user_year = input('user_year:')

CPU = raw_input('CPU:')

Memory = raw_input('Memory:')

manager_name = raw_input('manager_name:')

if user_year>10:

????print("該服務器使用年限太久!")

????exit()

else:

????haha = '''

????????主機信息

主機名:%s

IP:%s

使用年限:%d

CPU:%s

Memory:%s

manager_name:%s

????''' %(hostname,IP,user_year,CPU,Memory,manager_name)

?

print haha

?

?

測試:

?

/usr/bin/python2.7 /home/kiosk/PycharmProjects/1/text.py

主機名:hostname##交互式輸入

IP:172.25.254.39

user_year:6

CPU:i5

Memory:8G

manager_name:hao

?

????????主機信息##自動顯示

主機名:hostname

IP:172.25.254.39

使用年限:6

CPU:i5

Memory:8G

manager_name:hao

????

?

Process finished with exit code 0

?

?

?

?

python的垃圾回收機制

?

1)Python在內存中存儲了每個對象的引用計數(reference count)。如果計數值變成0,那么相應的對象就會消失,分配給該對象的內存就會釋放出來用作他用。

2)PyObject是每個對象必有的內容,其中ob_refcnt就是做為引用計數。當一個對象有新的引用時,它的ob_refcnt就會增加,當引用它的對象被刪除,它的ob_refcnt就會減少.引用計數為0時,該對象生命就結束了

?

?

?

?

?

變量命名方式:下劃線/數字/字母/(不能以數字開頭) ??????????????????????????????????????

?

>>> a=1

>>> print a

1

>>> a_1 = 111

>>> _a = 222

>>> print _a

222

>>> 1a = 111

??File "<stdin>", line 1

????1a = 111

?????^

SyntaxError: invalid syntax ???????//指語法錯誤,無效的語法

?

?

?

?

>>> a = 5

>>> b = 3>>> print a + b

8

>>> print a + b +c

Traceback (most recent call last):

??File "<stdin>", line 1, in <module>

NameError: name 'c' is not defined ???????//名稱錯誤

?

?

?

?

?

運算符與表達式

賦值運算符:=, +=, -=, /=, *=, %=

>>> a=1

>>> print a

1

算術運算符:+, -, , /, //, %, *

?

?>>> 1 + 1

??2

??>>> 1 - 1

??0

??>>> 1 * 3

??3

??>>> 1 / 2##整型的都為整型

??0

??>>> 1.0 / 2##存在浮點型的,運算結果會出現浮點

??0.5

??>>> 1.0 // 2

??0.0

??>>> 1 % 2

??1

??>>> 2 ** 3

??8

??>>> a33 = 3 ** 3

??>>> print a33

??27

??>>> print "a33=",a33

??a33= 27

關系運算符: >, >=, <, <=, !=, ==

布爾值:1 < 2,返回一個布爾類型的結果

>>> 1 < 2

True

>>> 1 > 2

False

?

邏輯運算符:邏輯與and, 邏輯或or, 邏輯非not

1本身代表True

2本身代表False

?

練習:

編寫一個四則表達式:

#!/usr/bin/env python

#coding:utf-8

from __future__ import division##引入一個模塊,使得整數除法也能輸出準確的數字

__author__ = "aely"

?

'''

@author:haoning

@file:yunsuan.py

@contact:1371975@qq.com

@time:6/25/173:50 PM

'''

?

number1 = input("num1=")

operate = raw_input("operate=")

number2 = input("num2=")

?

if operate == "+":

????print number1 + number2

elif operate == "-":

????print number1 - number2

elif operate == "*":

????print number1 * number2

elif operate == "/":

????print number1 / number2

else :

????print "請重新其他輸入簡單的運算符+,-,*,/"

?

測試:

a.運算符的測試

/usr/bin/python2.7 /home/kiosk/PycharmProjects/1/yunsuan.py

num1=5

operate=**

num2=7

請重新其他輸入簡單的運算符+,-,*,/

?

Process finished with exit code 0

b.加了模塊后除法的精確運算

[kiosk@foundation39 1]$ python yunsuan.py

num1=5

operate=/

num2=3

1.66666666667

?

?

?

?

In [1]: num = 1L##強制把1定義為長整型

?

In [2]: type(num)

Out[2]: long

?

?

In [3]: a='''##'''格式化輸出

???...: jaja

???...: xixi

???...: wq

???...: 123

???...: '''

?

In [4]: print a

?

jaja

xixi

wq

123

?

?

In [5]: a='hello westos'

?

In [6]: a[0]##查詢a字符串的第0個字母

Out[6]: 'h'

?

In [7]: a[0:4:2]##從0開始到4結束,步長為2

Out[7]: 'hl'

?

In [8]: a[-4:-1:2]##-4即從最后開始數,最后一位是-1

Out[8]: 'so'

?

In [9]: a[-4:-1:1]

Out[9]: 'sto'

?

In [10]: b='aqqehw'

?

In [11]: b[5]+b[2]+b[0]##b的第5第2第0位相取

Out[11]: 'wqa'

?

In [12]: t='123','qwe','sa'##如果用,隔開那么取整塊

?

In [13]: t[1]

Out[13]: 'qwe'

?

?

?

?

?

?

?

?


轉載于:https://blog.51cto.com/12768057/1942057

總結

以上是生活随笔為你收集整理的Python基础--环境配置、编码风格、基础概念、基本数据类型(1)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。