一 python的一些语言规范
1#!/usr/bin/python 2#!usr/bin/env python 3# -*- coding:utf-8 -*-
再写脚本的时候我们会写以上的“注释行”先来看看它们的意思。
1:调用usr/bin/下的python解释器去解释执行你写的python脚本;
2:系统会自己去找系统中的解释器去执行;
3:告诉系统编码方式;(下面再讲其它的编码方式)
当然,linux系统下默认是安装了python的解释器,所以在写脚本的时候可以不加前面的注释行,但是执行的时候会有所不同,如下:
第一种方法:
用创建一个hello_world.py文件,文件内容如下:(hello world是一种信仰!)
执行脚本文件:
第二种方法:
下面是加了解释器的脚本执行方式:
你们可以动手试一下,第一种写的python脚本是没有办法用 ./hello_world.py的方法执行的,即使你给hello_world.py赋予了可执行的权限。
下面来讲讲编码方式的改变:
1 ascii(美国信息交换标准代码):最早的编码方式
2 GB2312:支持汉字
3 GBK1.0:支持更多的汉字
4 GB180303:支持最多的汉字
5 unicode:国际统一编码(适用于所有国家的计算机)
6 utf-8:由于unicode的编码导致了英文字母占计算机中的内存变成了两个字节所以产生了utf-8,当是英文字母时就会自动切换两个字节,汉字占3字节。
下面讲讲变量名
变量:变量只能用英文字母/数字/下划线。(即使python3.x可以用汉字作为变量名),不要用汉语拼音作为变量名(没有原因,就是比较low),两个到三个英文字母的变量名中间用下划线连接。
常量:用全大写的英文字母定义,如:PIE = 3.14159265354·····
二:在linux环境中的python Tab 自动补全
在linux中打开python的编辑器时写代码的时候是不会自动补全的,要导入补全的模块,操作如下:
1 进入python编辑器中 命令sys.path 看看自己python装位置
>>> sys.path ['', '/usr/lib64/python27.zip', '/usr/lib64/python2.7', '/usr/lib64/python2.7/plat-linux2', '/usr/lib64/python2.7/lib-tk', '/usr/lib64/python2.7/lib-old', '/usr/lib64/python2.7/lib-dynload', '/usr/lib64/python2.7/site-packages', '/usr/lib64/python2.7/site-packages/gtk-2.0', '/usr/lib/python2.7/site-packages']
可以看到我的python在usr/lib/python2.7
2 在usr/lib/下新建一个 startup.py文件,文件的代码如下:
#!/usr/bin/python import sys import readline import rlcompleter import atexit import os # tab completion readline.parse_and_bind('tab: complete') # history file histfile = os.path.join(os.environ['HOME'],'.pythonhistory') try: readline.read_history_file(histfile) except IOError: pass atexit.register(readline.write_history_file, histfile) del os, histfile, readline, rlcompleter
3 在 .bashrc文件中添加读取模块(以下是个shell,网页没有shell)
# .bashrc 000#for pyton # User specific aliases and functions alias rm='rm -i' alias cp='cp -i' alias mv='mv -i' # Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrc fi 000export PYTHONSTARTUP=/usr/lib/python2.7/startup.py
4 source .bashrc
5 在python编辑器中导入模块。
三 python中变量赋值逻辑
name = "xuwei" name2 = name name = "suchagal" print(name, name2)
输出结果:
suchagal,xuwei
可以看出name2并不是指向name,而是指向name指向的值。
四 用户名中的密码加密输入
我们在网页中可以看到,当用户要输入密码的时候,密码是黑色的点,在linux系统的登陆的时候输密码的时候你是看不到密码的,这个怎么实现了?
只需要导入 getpass模块,在代码中调用,如下:
# -*- coding:utf-8 -*- #!/usr/bin/env python # Author:suchagal import getpass username = input("username:") password = getpass.getpass("password:") print(username,password)
这样在执行的时候,输密码的时候,密码就会被加密起来。
五 python中的输出控制
举个栗子
要实现如下的输出:
------------ info of---------- name:xuwei age:21 job:IT salary:20000
方法:
# -*- coding:utf-8 -*- #!/usr/bin/env python # Author:suchagal name = input("name:") age = input("age:") job = input("job:") salary = input("salary:") info = ''' ------------ info of---------- name:'''+name+''' age:'''+age+''' job:'''+job+''' salary:'''+salary info1 = ''' ------------ info of---------- name: %s age: %s job: %s salary: %s ''' % (name,ag