首页 > 代码库 > python基础

python基础

python

 

 

关于python脚本中的第一行内容 :

        #!/usr/bin/python 这种写法表示直接引用系统的默认的 Python 版本,这样的话python 程序移植到其他机器上可能运行的时候有问题,因为别人系统默认的 Python版本与你预期的并不一致。

        #!/usr/bin/env python 这种写法表示,引用环境变量里面自定义的 Python 版本,具有较强的可移植性,推荐这种写法  

 

 

[root@localhost ~]# python -V###查看python的版本,现在python的版本有2.x和3.x的,但2.0和3.0完全不兼容###

Python 2.7.5

[root@localhost ~]# vim hello.py

 

 

#!/usr/bin/env python

 

a = 1

print a

 

 

 

[root@localhost ~]# chmod +x hello.py###执行时,要加可执行的权限###

[root@localhost ~]# ./hello.py

  File "./hello.py", line 2

SyntaxError: Non-ASCII character ‘\xe5‘ in file ./hello.py on line 2, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details

[root@localhost ~]# vim hello.py

####SyntaxError指语法错误,encoding declared,也就是你的编码格式有问题:用国际通用的编码格式utf-8,数据库Mysql里面也常常要注意编码格式的问题

指定编码格式的方法有很多种,这里就列举几个吧:

#coding:utf-8

#coding=utf-8

#encoding:utf-8

#encoding=utf-8

 

#!/usr/bin/env python

#coding:utf-8

#定义变量a,值为1

a = 1

print a

 

[root@localhost ~]# ./hello.py

1

 

 

 

 

####交互式使用python###

当在shell命令行输入python命令会进入一个交互式的python编程环境;

python沿袭了C语言的很多用法,输出一字符串,使用print;

退出python的交互式环境通过快捷键ctrl+d或者使用exit()函数;

[root@localhost ~]# 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

1

>>>

使用交互式街界面的不好处在于:当你退出此次交互界面时,你所定义的变量的值就会被内存释放,下次就不能使用。

 

 

 

#####字符编码:######

ASCII:1字节=8位,可以对应2^8=256个字符,中文就不够对应,就有了Unicode

Unicode:用2字节=16位表示,2^16=65536 ,这样不管是中文还是英文均对应2个字节,有点浪费

utf-8:英文字母对应1个字节,中文对应3个字节

GB2312:

 

 

####如果字符串加上u就表示时unicode类型###

>>> a = "你好"

>>> type(a)

<type ‘str‘>

>>> b=u"你好"

>>> type(b)

<type ‘unicode‘>

>>>

 

####内存读取的时候是用Unicode,因为内存读取的时候不能有的是一个字节,有的是三个字节,这是不符合规则的,而存在硬盘的时候,为了节省空间要用:utf-8,因此要进行字符的编码和字符的解码###

 

字符的编码(encode):将unicode转化成utf-8

字符的解码(decode):将utf-8转化成unicode

 

>>> name_unicode = u"你好"

>>> type(name_unicode)

<type ‘unicode‘>

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

>>> type(name_utf8)

<type ‘str‘>

>>> name_unicode1 = name_utf8.decode(‘utf-8‘)

>>> type(name_unicode1)

<type ‘unicode‘>

>>>

 

 

 

 

 

 

python的解释器:

cpython:python默认使用的解释器是cpython,在该解释器下,有些过长的变量名不能补全

ipython:cpython的高配版,可以补全一些变量,导入模块

Jpython

IronPython

pypy:JIT,just in time

 

 

 

编辑python脚本可以用:

vim

gedit

pycharm

atom--->github

 

 

 

######python脚本和c的编程格式的区别###

 

C代码块是通过花括号  {}  做以区别

[root@foundation38 bin]# cat hello.c

#include <stdio.h>

 

void hello(){

printf("hello!");

}

 

void main(){


hello();

printf("\n");

 

 

}

[root@foundation38 bin]# gcc hello.c  -o hello

[root@foundation38 bin]# ./hello

hello!

 

 

 

python编程初级要掌握的编程风格如下:

 

1 不要在行尾加分号;

2 每行不超过80个字符;

3 Python语言利用缩进表示语句块的开始和退出(Off-side规则),而非使用花括号或者某种关键字。

4 增加缩进表示语句块的开始,而减少缩进则表示语句块的退出。缩进成为了语法的一部分。

[root@foundation38 bin]# cat hello.py

#!/usr/bin/env python

 

def hello():

print"hello"

def main():

  hello()

  print"world"

main()

[root@foundation38 bin]# chmod +x hello.py

[root@foundation38 bin]# ./hello.py

hello

world

 

 

 

 

 

####if用法###

 

#!/usr/bin/env python

#coding:utf-8

_author_ = "xiao"

‘‘‘

@author:xiaowenya

@file:x.py

@contact:1097667868@qq.com

@time:6/25/1711:58 AM

@desc:

‘‘‘

x=10

if x>0:

    print ‘x 是正数‘

    a=x-10

    print a

elif x<0:

    print ‘x 是负数‘

    a=x+10

    print a

else:

    print ‘x是零‘

 

 

 

####从键盘输入###

 

raw_input() ###接受从键盘的输入,输入的内容为字符类型###

input()  ###接受从键盘的输入,输入的内容为数值类型###

In[2]: print 1

1

In[4]: print ‘hello‘

hello

In[5]: print 1>2###数字比较,显示bool值###

False

In[6]: print 100+200###显示结果###

300

In[7]: raw_input()

>? hello world

Out[7]: ‘hello world‘

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

NAME:>? xiao

In[10]: print name

xiao

In[11]: age = raw_input("AGE:")

AGE:>? 1

In[12]: print age > 12###从键盘上接受的数字,应该用input()接收,不然比较的时候会有问题###

True

In[13]: age = input("AGE:")

AGE:>? 23

In[14]: print age < 12

False

 

In[16]: print age == 18

False

In[17]: type(age)

Out[17]: int

In[18]: type(name)

Out[18]: str

 

 

 

 

 

 

 

小练习: 编写一程序,录入信息包括  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_ = "xiao"

‘‘‘

@author:xiaowenya

@file:1.py

@contact:1097667868@qq.com

@time:6/25/172:54 PM

@desc:

‘‘‘

hostname = raw_input("hostname:")

ip = raw_input("ip:")

used_year = input("used_year:")

CPU = raw_input("CPU:")

Memory = raw_input("Memory:")

manager_name = raw_input("manager_name:")

if used_year > 10:

    print "该服务器使用年限太久!"

else:

    format = ‘‘‘###‘‘‘的作用:注释和格式化输出###

                主机信息

    主机名:%s

    IP:%s

    使用年限:%d

    CPU:%s

    Memony:%s

    manager_name:%s

    ‘‘‘ %(hostname, ip, used_year, CPU, Memory, manager_name)

    print format

 

测试结果:

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

hostname:example.com

ip:172.25.254.138

used_year:4

CPU:i5

Memory:4G

manager_name:root

 

                主机信息

    主机名:example.com

    IP:172.25.254.138

    使用年限:4

    CPU:i5

    Memony:4G

    manager_name:root

    

 

Process finished with exit code 0

 

 

 

 

###变量###

由字母数字和下划线组成,但不能以数字开头

变量是内存中的一块区域。

 

a **= 3 ---> a=a^3

 

面试题常见问题:简要描述Python的垃圾回收机制(garbage collection)。

Python在内存中存储了每个对象的引用计数(reference count)。如果计数值变成0,那么相应的对象就会消失,分配给该对象的

内存就会释放出来用作他用。

PyObject是每个对象必有的内容,其中ob_refcnt就是做为引用计数。当一个对象有新的引用时,它的ob_refcnt就会增加,当引用

它的对象被删除,它的ob_refcnt就会减少.引用计数为0时,该对象生命就结束了

 

 

 

###运算符与表达式###

赋值运算符:=, +=, -=, /=, *=, %=

算术运算符:+, -, , /, //, %, *

关系运算符: >, >=, <, <=, !=, ==

布尔值:1 < 2,返回一个布尔类型的结果

 

逻辑运算符:逻辑与and, 逻辑或or, 逻辑非not

练习:

编写一四则表达式,(if语句实现)

#!/usr/bin/env python

#coding:utf-8

from __future__ import division###引入一个模块,使得除法的操作不管输入整数还是小数,都得到正确的结果###

_author_ = "xiao"

‘‘‘

@author:xiaowenya

@file:2.py

@contact:1097667868@qq.com

@time:6/25/173:48 PM

@desc:

‘‘‘

num1 = input("num1:")

operate = raw_input("operate:")

num2 = input("num2:")

 

if operate == ‘+‘:

    result = num1 + num2

    print result

elif operate == ‘-‘:

    result = num1 - num2

    print result

elif operate == ‘*‘:

    result = num1 * num2

    print result

elif operate == ‘/‘:

    result = num1 / num2

    print result

else:

    print "please input ‘+‘ ‘-‘ ‘*‘ ‘/‘"

 

 

 

输出结果:

 

/usr/bin/python2.7 /home/kiosk/PycharmProjects/pythonbasic/2.py

num1:4

operate:+=

num2:4

please input ‘+‘ ‘-‘ ‘*‘ ‘/‘

 

Process finished with exit code 0

 

/usr/bin/python2.7 /home/kiosk/PycharmProjects/pythonbasic/2.py

num1:5

operate:/

num2:3

1.66666666667

 

Process finished with exit code 0

 

 

 

 

###字符串索引###

 

In [1]: a = ‘hello westos‘

 

In [2]: a[1]###a[0]才是指h###

Out[2]: ‘e‘

 

In [3]: a[-1]

Out[3]: ‘s‘

 

In [4]: a[0]+a[4]

Out[4]: ‘ho‘

 

 

 

###字符串切片###

In [5]: a[0:4:1]###指取出a[0]到a[3]的字符###

Out[5]: ‘hell‘

 

In [6]: a[0:4:2]

Out[6]: ‘hl‘

 

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

Out[7]: ‘sto‘

 

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

Out[8]: ‘‘

 

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

Out[9]: ‘sot‘

 

In [10]:

 

 


python基础