python3基础2--变量-字符编码-缩进-注释-用户输入-模块初识

一、python3 变量

1.1  声明变量
name = "python"

上述代码声明了一个变量,变量名为: name,变量name的值为:"python" 

1.2 变量定义的规则:

 变量名只能是 字母、数字或下划线的任意组合

 变量名的第一个字符不能是数字
 以下关键字不能声明为变量名
['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']

小结:定义的变量名必须是直观易懂有意义的,不建议写中文名。

1.3 变量的赋值

name = "python3"
print(name)
names = name
print(names)


二、python3 字符编码

python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill)

ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用 8 位来表示(一个字节),即:2**8 = 256-1,所以,ASCII码最多只能表示 255 个符号。


python3基础2--变量-字符编码-缩进-注释-用户输入-模块初识

2.1 字符编码之中文编码-GB2312-GBK1.0-GB18030

为了处理汉字,程序员设计了用于简体中文的GB2312和用于繁体中文的big5。
  GB2312(1980年)一共收录了7445个字符,包括6763个汉字和682个其它符号。汉字区的内码范围高字节从B0-F7,低字节从A1-FE,占用的码位是72*94=6768。其中有5个空位是D7FA-D7FE。GB2312 支持的汉字太少。

        GBK1.0(1995年)的汉字扩展规范GBK1.0收录了21886个符号,它分为汉字区和图形符号区。汉字区包括21003个字符。

        GB18030(2000年)的 GB18030是取代GBK1.0的正式国家标准。该标准收录了27484个汉字,同时还收录了藏文、蒙文、维吾尔文等主要的少数民族文字。现在的PC平台必须支持GB18030,对嵌入式产品暂不作要求。所以手机、MP3一般只支持GB2312。从ASCII、GB2312、GBK 到GB18030,这些编码方法是向下兼容的,即同一个字符在这些方案中总是有相同的编码,后面的标准支持更多的字符。在这些编码中,英文和中文可以统一地处理。区分中文编码的方法是高字节的最高位不为0。按照程序员的称呼,GB2312、GBK到GB18030都属于双字节字符集 (DBCS)。

    小结:由于ASCII在设计之初只考虑了,26个英文字母和特殊字符,导致中文以及其他一些国家的文字无法存储,就产生了中文编码。

  中文编码发展史:GB2312->GBK1.0->GB2312

2.2 字符编码之 Unicode编码

ASCII码无法将世界上的各种文字和符号全部表示,所以,就需要新出一种可以代表所有字符和符号的编码,即:Unicode(万国码)

Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。

Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定虽有的字符和符号最少由 16 位来表示(2个字节),即:2 **16 = 65536。
PS:此处说的的是最少2个字节,根据实际应用可能更多。

     小结:Unicode的产生是由于各国都有自己的编码,并且各国编码不兼容的问题,以及传统ASCII的局限性。

2.3 字符编码之 UTF-8编码
由于Unicode 编码在存储字节方面一般是占2个字节的,而英文只需要占一个字节就足够了,这样就产生了一个问题,如果都是英文存储用Unicode编码的话,会浪费很多磁盘空间,所以在Unicode编码之上又优化产生了UTF-8编码。
    UTF-8,是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存。
 
    所以,在python2中python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill),如果是如下代码的话:

报错:ascii码无法表示中文


#!/usr/bin/env python

print "你好,世界"

改正:应该显示的告诉python解释器,用什么编码来执行源代码,即:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
  
print "你好,世界"

上述只适合于python2 版本,python3版本由于默认编码就是Unicode所以不会有中文乱码的情况。


三、python3 缩进-注释

3.1 python3 缩进
python2和python3 一个让人诟病的地方是格式的缩进问题。 
  为什么格式需要缩进处理?
第一,之所以缩进是因为层级之间有因果循环关系。
第二,之所以缩进是因为语法方面的开始结束代码段。

3.2 python3 注释

 当行注视:# 被注释内容
  多行注释:""" 被注释内容 """

四、python3 用户输入-模块初识

4.1 用户输入
4.1.1  明文密码输入。
username = input("please input usernane:")
password = input("please input password")

print(username,password)

4.1.2  密码不显示输入
import getpass
username = input("please input usernane:")
pwd = getpass.getpass("请输入密码:")

print(username,pwd)

4.2 模块初识
4.2.1  基础模块之:sys
import sys
sys.path 方法
sys.argv 方法

print(sys.path)  ###打印出ENV全局环境变量

print (sys.argv) ### 传递参数

4.2.2  基础模块之:os
print(os.system("df -h") ##查看操作系统磁盘使用情况