手记

Python学习笔记(一)

python的安装
linux系统自带python

python的进入
终端输入python回车即可

>>

python的退出

>>>exit()   或   Ctrl-D

第一个命令
单双引号无任何区别,而在shell中单双引号是有区别的

>>>print "Hello World!"Hello World!>>>print 'Hello World!'Hello World!

以文件的方式写python脚本

vim /tmp/hello.py#!/usr/bin/pythonprint "hello world!"

运行python脚本文件

[root@dd ~]# python /tmp/hello.pyHello World![root@dd ~]# chmod +x /tmp/hello.py[root@dd ~]# /tmp/hello.pyHello World!

命令行下的python不能自动补全,可用下面方法解决

[root@dd ~]# cat /usr/local/bin/tab.pyfrom rlcompleter import readlinereadline.parse_and_bind('tab: complete')[root@dd ~]# tail -1 ~/.bashrcexport PYTHONSTARTUP=/usr/local/bin/tab.py[root@dd ~]# source ~/.bashrc

然后进入python,就可以用tab键自动补全了


用IDE书写和运行python程序

上面我们了解了在命令行中使用python,下面介绍IDE。
一般开发程序时,用IDE是更好更方便的选择,能够自动补全、联想等
IDE:集成开发环境
安装并启动IDE:pycharm(首先要保证机器上有python)

然后编写python程序

运行方法
1 在文件层级目录上点击右键 - copy path,然后回到命令行,执行
Linux:  python 文件名
window: C:\Python27\python.exe 文件名

2 在文件标签页上点击右键 - Run '文件名',即可在pycharm中执行


1)三引号的用法

>>> words = '''hehe... nishi... shei... de... er... zoi'''>>> words

2)注释和缩进
加注释 ctrl+
tab  shift+Tab

3)字符串步长

>> mystr = "foxpast"
>> mystr[::2]
'fxat'
>> mystr[1::2]
'ops'
>> mystr[::-1]
'tsapxof'

4)字符串“运算”

>> mystr*2
'foxpastfoxpast'

>> (mystr+" ")*3
'foxpast foxpast foxpast '

字符转数字 int()数字转字符 str()

5)字符串方法

>> mystr.upper()
'FOXPAST'

>> mystr.center(50,'#')
'#####################foxpast######################'

>> mystr.ljust(50)
'foxpast                                           '

5.1)列表方法
list = []
list.append(value)

6)if判断
if 10:              #非0即为true
print 'yes'

if -0.0             #-0.0为0,即为false    print 'yes'if ' ':             #空为false;空格不是空,即为true    print 'yes'

7)while循环
while 真 :

8)中断

9)for循环
for i in 'abc':  #和shell不一样,这里字符串有多长,执行多少次;shell中一个字符串只执行一次
print i
for n in ['hehe', 'haha', 'jiji']:
print n
a
b
c
hehe
haha
jiji

11)range() , xrange()
range() 结束不包含

range(10)0~9range(1,11)1~10range(10,0,-1)10~1xrange()类似,区别是不占用内存例 : 菲薄纳妾数列,背下来#coding: utf8l = int(raw_input("请输入长度:"))fib = [0,1]for i in xrange(l-2):    fib.append(fib[-2]+fib[-1])print fib

12)列表解析

>>> [10][10]>>> [10+20][30]>>> [10+20 for i in xrange(10)][30, 30, 30, 30, 30, 30, 30, 30, 30, 30]>>> [10 + i for i in xrange(1,11)][11, 12, 13, 14, 15, 16, 17, 18, 19, 20]>>> [10 + i for i in xrange(1,11) if i% 2 == 1][11, 13, 15, 17, 19]>>>

例:制作一个列表,要192.168.1.1到10

>> ['192.168.1.'+str(i) for i in xrange(1,11)]
>> ['192.168.1.%s'  %i  for i in xrange(1,11)]

13)打开文件——方法1

>> f = open('/etc/passwd')
>> data = f.read()
>> data
>> print data
>> f.close()

14)打开文件——方法2

>> f = open('/etc/passwd')
>> for i in f:
...   print i,              #行尾的逗号用来抑制print的自带的回车
...
>> f.close()

15)写入文件

>> f = open('/tmp/hello.txt','w')          #注意,w如果有文件,会清空
>> f.write('hello world!\n')
>> f.flush()                       #flush和close都有保存的功能
>> f.writelines(['1st line.\n','2nd line.\n'])
>> f.close()                       #flush和close都有保存的功能

16)例:读取/etc/paswd的内容,并写入到/tmp/f2.txt中

>> f1 = open('/etc/passwd')
>> data=f1.read()

>> f2 = open('/tmp/passwd','w')
>> f2.write(data)

>> f1.close()
>> f2.close()

md5sum /etc/passwd /tmp/passwd      #检查两个文件的md5,发现一样

17)上面例子读取文件给变量data,太占用内存
下面一行一行读取,省内存
f1 = open('/etc/passwd')
f2 = open('/tmp/passwd','w')

while 1:    data=f1.read(4096)          #或者用f1.readline()    f2.write(data)    if data == '':        breakf1.close()f2.close()

18)函数

>> def aaa(x, y):
...   result = x + y
...   return result                 #一般都要写返回值
...
>> aaa(1,2)
3
>> aaa(1,2)*3
9

注意:用print只能输出到屏幕,不能进行运算(因为返回值为none);要用return,返回值可以print出来,也可以进行运算

19)位置参数(python中的$1 $2 ...)
import sys

sys.argv[0]         #相当于shell中$0sys.argv[1]         #相当于shell中$1

20)模块与方法

先创建pp.pyhi = "hellow world!"def pstar(n=50):    print "*" * n>>> import ppp          #导入模块>>> ppp.hi              #调用变量'hellow world!'>>> ppp.pstar()         #调用函数**************************************************>>> ppp.pstar(10)**********

21)模块的属性变量:name
直接运行:               main
间接运行(导入):       模块名

cat foo.pyprint __name__cat bar.pyimport foopython foo.py__main__python bar.pyfoo因此,下面的语句在模块中非常常用,直接main<tab>可自动补全if __name__ == '__main__':

22)案例:生成8位随机密码

0人推荐
随时随地看视频
慕课网APP