标签:
python介绍:
python由Guido van Rossum(英文不知道叫什么,大陆名字叫“龟叔”)于1989年发明,第一个公开发行版发行于1991年。
python能做什么:
Python是一门综合性的语言,你几乎能在计算机上通过Python做任何事情,以下是Python应该最广泛的几个方面:
python特点:
1,Python“优雅”、“明确”、“简单”,所以Python程序看上去总是简单易懂,而且相比较其他语言较容易入门。
2,免费开源,开发效率非常高,可移植性,开发高效有丰富的库,可嵌入性,高级语言你无需考虑诸如如何管理你的程序使用的内存一类的底层细节
3,python具有丰富和强大的库。他常常被称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松的联结在一起。常见的一种应用情形是,使用python快速生成程序的原型(有的时候甚至是程序的最终页面),然后对其中有特别要求的部分,用更合适的语言改写,比如3D游戏中的图形渲染模块,性能要求特别高,就可以用C/C++重写,然后封装为python可以调用的扩展类库。
python 安装
Linux:
Linux的yum依赖自带Python,为防止错误,此处更新其实就是再安装一个Python
查看默认Python版本 python -V 1、安装gcc,用于编译Python源码 yum install gcc 2、下载源码包,https://www.python.org/downloads/python/ 3、解压并进入源码文件 4、编译安装 ./configure make all make install 5、查看版本 /usr/local/bin/python2.7 -V 6、修改默认Python版本 mv /usr/bin/python /usr/bin/python2.6 ln -s /usr/local/bin/python2.7 /usr/bin/python 7、防止yum执行异常,修改yum使用的Python版本 vi /usr/bin/yum 将头部 #!/usr/bin/python 修改为 #!/usr/bin/python2.6
Windows版:
python运行:
Linux中
新建一个hello.py文件,内容如下:
1 print("Hello,world")
执行python hello.py即可,这是明确指定用python解释器执行的;
如果想要与shell一样 ./hello.py 来执行,就需要在hello.py文件头部来指定解释器,如下:
#!/usr/bin/env python print "hello,world"
注:需给文件加上执行权限; chmod +x hello.py ,如此就可以用./hello.py来执行
Python解释器/种类:
CPython,原始、标准官方的实现方式,用C语言开发,
Jython,用于和Java语言集成的实现,把Python代码直接编译成java字节码执行;
IPython,基于CPython之上的一个交互解释器,交互上非常直观,但是执行代码功能和CPython完全一样;
IronPython,用于和.NET框架集成的实现,可以直接把python代码编译成.Net的字节码
PyPy,使用python语言实现的Python解释器,是动态编译器,是Psyco的后继项目;可运行在Linux的32、64位、MacOSX和Windows的32位平台上
变量:
先声明变量:
>>> name = "tianjie" >>> print(name) tianjie
变量的作用:昵称(name),其代指内存里某个地址中保存的内容(tianjie)
变量定义的规则:
# 将用户输入的内容赋值给 name 变量(python3写法) name = input("pless your name:") #python2写法 name= raw_input("please your name:") #然后打印这个输入的内容 print(name)
输入密码时,如果想要不可见,需要利用getpass 模块中的 getpass方法,即:
1 import getpass 2 3 # 将用户输入的内容赋值给 pwds 变量 4 pwds = getpass.getpass("请输入密码:") 5 6 # 打印输入的内容 7 print pwds 8 9 注意:此方法在pycharm中不能使用
流程控制:
一、if...else:
1 输入一个数字作比较,如果相等输出“相等” 2 大了,提示小一点 3 小了提示大一点 4 5 6 number = 6 7 cai = int(input("My Lucky Number:")) 8 if cai > number: 9 print("please print smaller") 10 elif cai < number: 11 print("please print bigger") 12 else: 13 print("Congratulations, you got it")
2、判断用户输入的用户名和密码是否正确,如正确就打印欢迎登陆,错误提示用户名或密码错误,结合getpass模块:
1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 4 import getpass 5 6 7 user = ‘tianjie‘ 8 password = ‘buzhidao‘ 9 10 input_user = input(‘Username?‘) 11 input_pass = getpass.getpass(‘Password?‘) 12 13 if input_user == user and input_pass == password: 14 print(‘欢迎登陆,%s‘ %(input_user)) 15 else: 16 print(‘用户名或者密码错误,请稍后再试‘)
二、while:
1、猜一个幸运数字直到猜对为止:
1 number = 6 2 cai = -1 3 while number != cai: 4 cai = int(input("My Lucky Number:")) 5 if cai > number: 6 print("please print smaller") 7 elif cai < number: 8 print("please print bigger") 9 #else: 10 # print("Congratulations, you got it") 11 #break 12 print("Congratulations, you got it")
2、循环,满足条件进入循环:
还是上面的需求,允许用户输入尝试三次,如果连续三次失败的话,退出程序,使用while循环来处理:
1 #!/usr/bin/env python 2 # -*- coding :utf-8 -*- 3 4 user="tianjie" 5 password="qweasd" 6 7 count=0 8 9 10 while True: 11 if count<3: 12 name=input("input your user:") 13 pasw=input("password:") 14 if name==user and password == pasw: 15 print("%s欢迎登陆"%(name)) 16 break 17 else: 18 print("用户或密码错误") 19 count+=1 20 else: 21 flag=input("输入次数过多是否继续,y/n:") 22 if flag == "y": 23 count=0 24 elif flag == "n": 25 break
3,for.... in....
还是上面的需求,只允许用户输错10次,如果连续三次失败的话,提示是否继续,,使用for循环来处理:
1 #!/usr/bin/env python 2 # -*- coding :utf-8 -*- 3 4 user="tianjie" 5 password="qweasd" 6 7 count=0 8 for i in range(10): 9 if count<3: 10 name=input("input your user:") 11 pasw=input("password:") 12 if name==user and password == pasw: 13 print("%s欢迎登陆"%(name)) 14 break 15 else: 16 print("用户或密码错误") 17 18 else: 19 flag=input("输入次数过多是否继续,y/n:") 20 if flag == "y": 21 count=0 22 continue 23 elif flag == "n": 24 break 25 26 count += 1
python模块:
os模块:是Python标准库中用于访问操作系统功能的模块,非常NB 可以调用操作系统的命令着实没有想到!
1 >>> import os #先导入模块 2 >>> help(os) #获取os帮助信息
列出可以用的模块
1 1 >>> dir(os) 2 2 [‘EX_CANTCREAT‘, ‘EX_CONFIG‘, ‘EX_DATAERR‘, ‘EX_IOERR‘, ‘EX_NOHOST‘, ‘EX_NOINPUT‘, ‘EX_NOPERM‘, ‘EX_NOUSER‘, ‘EX_OK‘, ‘EX_OSERR‘, ‘EX_OSFILE‘, ‘EX_PROTOCOL‘, ‘EX_SOFTWARE‘, ‘EX_TEMPFAIL‘, ‘EX_UNAVAILABLE‘, ‘EX_USAGE‘, ‘F_OK‘, ‘NGROUPS_MAX‘, ‘O_APPEND‘, ‘O_ASYNC‘, ‘O_CREAT‘, ‘O_DIRECT‘, ‘O_DIRECTORY‘, ‘O_DSYNC‘, ‘O_EXCL‘, ‘O_LARGEFILE‘, ‘O_NDELAY‘, ‘O_NOATIME‘, ‘O_NOCTTY‘, ‘O_NOFOLLOW‘, ‘O_NONBLOCK‘, ‘O_RDONLY‘, ‘O_RDWR‘, ‘O_RSYNC‘, ‘O_SYNC‘, ‘O_TRUNC‘, ‘O_WRONLY‘, ‘P_NOWAIT‘, ‘P_NOWAITO‘, ‘P_WAIT‘, ‘R_OK‘, ‘SEEK_CUR‘, ‘SEEK_END‘, ‘SEEK_SET‘, ‘ST_APPEND‘, ‘ST_MANDLOCK‘, ‘ST_NOATIME‘, ‘ST_NODEV‘, ‘ST_NODIRATIME‘, ‘ST_NOEXEC‘, ‘ST_NOSUID‘, ‘ST_RDONLY‘, ‘ST_RELATIME‘, ‘ST_SYNCHRONOUS‘, ‘ST_WRITE‘, ‘TMP_MAX‘, ‘UserDict‘, ‘WCONTINUED‘, ‘WCOREDUMP‘, ‘WEXITSTATUS‘, ‘WIFCONTINUED‘, ‘WIFEXITED‘, ‘WIFSIGNALED‘, ‘WIFSTOPPED‘, ‘WNOHANG‘, ‘WSTOPSIG‘, ‘WTERMSIG‘, ‘WUNTRACED‘, ‘W_OK‘, ‘X_OK‘, ‘_Environ‘, ‘__all__‘, ‘__builtins__‘, ‘__doc__‘, ‘__file__‘, ‘__name__‘, ‘__package__‘, ‘_copy_reg‘, ‘_execvpe‘, ‘_exists‘, ‘_exit‘, ‘_get_exports_list‘, ‘_make_stat_result‘, ‘_make_statvfs_result‘, ‘_pickle_stat_result‘, ‘_pickle_statvfs_result‘, ‘_spawnvef‘, ‘abort‘, ‘access‘, ‘altsep‘, ‘chdir‘, ‘chmod‘, ‘chown‘, ‘chroot‘, ‘close‘, ‘closerange‘, ‘confstr‘, ‘confstr_names‘, ‘ctermid‘, ‘curdir‘, ‘defpath‘, ‘devnull‘, ‘dup‘, ‘dup2‘, ‘environ‘, ‘errno‘, ‘error‘, ‘execl‘, ‘execle‘, ‘execlp‘, ‘execlpe‘, ‘execv‘, ‘execve‘, ‘execvp‘, ‘execvpe‘, ‘extsep‘, ‘fchdir‘, ‘fchmod‘, ‘fchown‘, ‘fdatasync‘, ‘fdopen‘, ‘fork‘, ‘forkpty‘, ‘fpathconf‘, ‘fstat‘, ‘fstatvfs‘, ‘fsync‘, ‘ftruncate‘, ‘getcwd‘, ‘getcwdu‘, ‘getegid‘, ‘getenv‘, ‘geteuid‘, ‘getgid‘, ‘getgroups‘, ‘getloadavg‘, ‘getlogin‘, ‘getpgid‘, ‘getpgrp‘, ‘getpid‘, ‘getppid‘, ‘getsid‘, ‘getuid‘, ‘isatty‘, ‘kill‘, ‘killpg‘, ‘lchown‘, ‘linesep‘, ‘link‘, ‘listdir‘, ‘lseek‘, ‘lstat‘, ‘major‘, ‘makedev‘, ‘makedirs‘, ‘minor‘, ‘mkdir‘, ‘mkfifo‘, ‘mknod‘, ‘name‘, ‘nice‘, ‘open‘, ‘openpty‘, ‘pardir‘, ‘path‘, ‘pathconf‘, ‘pathconf_names‘, ‘pathsep‘, ‘pipe‘, ‘popen‘, ‘popen2‘, ‘popen3‘, ‘popen4‘, ‘putenv‘, ‘read‘, ‘readlink‘, ‘remove‘, ‘removedirs‘, ‘rename‘, ‘renames‘, ‘rmdir‘, ‘sep‘, ‘setegid‘, ‘seteuid‘, ‘setgid‘, ‘setgroups‘, ‘setpgid‘, ‘setpgrp‘, ‘setregid‘, ‘setreuid‘, ‘setsid‘, ‘setuid‘, ‘spawnl‘, ‘spawnle‘, ‘spawnlp‘, ‘spawnlpe‘, ‘spawnv‘, ‘spawnve‘, ‘spawnvp‘, ‘spawnvpe‘, ‘stat‘, ‘stat_float_times‘, ‘stat_result‘, ‘statvfs‘, ‘statvfs_result‘, ‘strerror‘, ‘symlink‘, ‘sys‘, ‘sysconf‘, ‘sysconf_names‘, ‘system‘, ‘tcgetpgrp‘, ‘tcsetpgrp‘, ‘tempnam‘, ‘times‘, ‘tmpfile‘, ‘tmpnam‘, ‘ttyname‘, ‘umask‘, ‘uname‘, ‘unlink‘, ‘unsetenv‘, ‘urandom‘, ‘utime‘, ‘wait‘, ‘wait3‘, ‘wait4‘, ‘waitpid‘, ‘walk‘, ‘write‘]
os.system():调用本地命令:
1 如查看系统分区使用: 2 >>> os.system("fdisk -l") 3 4 Disk /dev/sda: 500.1 GB, 500107862016 bytes 5 255 heads, 63 sectors/track, 60801 cylinders 6 Units = cylinders of 16065 * 512 = 8225280 bytes 7 Sector size (logical/physical): 512 bytes / 4096 bytes 8 I/O size (minimum/optimal): 4096 bytes / 4096 bytes 9 Disk identifier: 0x148bf7a4 10 11 Device Boot Start End Blocks Id System 12 /dev/sda1 * 1 77 614400 83 Linux 13 Partition 1 does not end on cylinder boundary. 14 /dev/sda2 77 6451 51200000 83 Linux 15 /dev/sda3 6451 7471 8192000 82 Linux swap / Solaris 16 /dev/sda4 7471 60802 428379160 5 Extended 17 /dev/sda5 7471 60802 428378112 83 Linux 18 0 19 >>>
#如果赋予变量的话 ,只是把执行命令的状态返回值赋予了变量,并没有把执行结果打印出来 >>> a=os.system("fdisk -l") Device Boot Start End Blocks Id System /dev/sda1 * 1 77 614400 83 Linux Partition 1 does not end on cylinder boundary. /dev/sda2 77 6451 51200000 83 Linux /dev/sda3 6451 7471 8192000 82 Linux swap / Solaris /dev/sda4 7471 60802 428379160 5 Extended /dev/sda5 7471 60802 428378112 83 Linux >>> print(a) 0
popen 是把执行结果给保存,然后用read()打开 :
1 >>> a=os.popen 2 >>> a=os.popen("df -lh") 3 >>> print(a) 4 <open file ‘df -lh‘, mode ‘r‘ at 0x1f93270> 5 >>> print(a.read()) 6 Filesystem Size Used Avail Use% Mounted on 7 /dev/sda2 48G 11G 36G 23% / 8 tmpfs 934M 300K 934M 1% /dev/shm 9 /dev/sda1 575M 31M 514M 6% /boot 10 /dev/sda5 402G 6.1G 376G 2% /home 11 12 >>>
标签:
原文地址:http://www.cnblogs.com/tianjie0522/p/5478614.html