开始python的学习,关于python的介绍及其发展历史这里就不多说了。可以百度一下。
本人也是刚刚开始学习,知识点后续会在补充。
首先我们面临的选择:使用哪个版本开始学习(可以去官网查询,有英文的具体介绍)
一、python2 or python3
2个版本之间的差别有很多,编码、语法、字符串、数据类型、库、类、模块等等。这里理解不深刻先说以下2点。
1.默认编码
python2默认使用的是ascii,所以在读取中文时候会乱码,解决的方法是在文件的开头加上:# -*- coding: UTF-8 -*-。代码中包含中文就需要在头部指定此编码。
python3 默认使用的编码是utf-8。
2.语法
语法改变很多,学习初期,先说一个print的改变。python2中的print语句,变成了print()函数,也就是说python3的打印必须要加小括号。否则报错。
二、安装
1、从官网上下载安装包 https:
/
/
www.python.org
/
downloads
/
2、配置环境变量PATH。
打开 ”控制面板\所有控制面板项\系统” → “高级系统设置” → “高级”标签 → 点击“环境变量” → 找到“系统变量”中PATH 变量或者是当前用户变量PATH → 更改变量PATH的值,在最后添加“;python的绝对安装路径” → 点击确定
3、验证环境变量是否生效
打开 cmd 窗口, 输入: python -verion 显示如下:
三、第一个程序
创建一个文件helloworld.py ,内容:
print("Hello World!")
然后,在cmd中进入文件所在目录,执行
python helloworld.py
#执行结果
C:\Users\MI\PycharmProjects\py_15\day1>python firstprogram.py Hello world!
如果在linux系统中想要通过./去执行脚本,需要首先声明,需要在头部加入:
#!/usr/bin/env python
安装完python后,会生成一个idle,如下
Python 3.5.2 (v3.5.2:4def2a2901a5, Jun 25 2016, 22:18:55) [MSC v.1900 64 bit (AMD64)] on win32 Type "copyright", "credits" or "license()" for more information. >>> print("hello world!") hello world! >>>
四、字符编码
python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill)
ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用 8 位来表示(一个字节),即:2**8 = 256-1,所以,ASCII码最多只能表示 255 个符号。
关于中文
为了处理汉字,程序员设计了用于简体中文的GB2312和用于繁体中文的big5。
GB2312(1980年)一共收录了7445个字符,包括6763个汉字和682个其它符号。汉字区的内码范围高字节从B0-F7,低字节从A1-FE,占用的码位是72*94=6768。其中有5个空位是D7FA-D7FE。
GB2312 支持的汉字太少。1995年的汉字扩展规范GBK1.0收录了21886个符号,它分为汉字区和图形符号区。汉字区包括21003个字符。2000年的 GB18030是取代GBK1.0的正式国家标准。该标准收录了27484个汉字,同时还收录了藏文、蒙文、维吾尔文等主要的少数民族文字。现在的PC平台必须支持GB18030,对嵌入式产品暂不作要求。所以手机、MP3一般只支持GB2312。
从ASCII、GB2312、GBK 到GB18030,这些编码方法是向下兼容的,即同一个字符在这些方案中总是有相同的编码,后面的标准支持更多的字符。在这些编码中,英文和中文可以统一地处理。区分中文编码的方法是高字节的最高位不为0。按照程序员的称呼,GB2312、GBK到GB18030都属于双字节字符集 (DBCS)。
有的中文Windows的缺省内码还是GBK,可以通过GB18030升级包升级到GB18030。不过GB18030相对GBK增加的字符,普通人是很难用到的,通常我们还是用GBK指代中文Windows内码。
显然ASCII码无法将世界上的各种文字和符号全部表示,所以,就需要新出一种可以代表所有字符和符号的编码,即:Unicode
Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定虽有的字符和符号最少由 16 位来表示(2个字节),即:2 **16 = 65536, 注:此处说的的是最少2个字节,可能更多
UTF-8,是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存...
五、注释
单行注释在行首加#
多行注释用
""".............
................
............."""
六、用户输入
简单的用户输入
1 #!/usr/bin/env python 2 name = input("pls input your name") 3 print("Hello"+name)
七、变量
一个在内存中存储数据的容器
给变量赋值
#将第一天的收益赋值给变量day1
day1=2000
#将第二天的收益赋值给变量day2
day2=200
将变量相加
#两天的收益相加,赋值给total
total=day1+day2
1 #!/usr/bin/env python 2 day1=2000 3 day2=200 4 total=day1+day2 5 6 print("2天总收益:”,total)
八、判断
场景1.用户验证登陆
1 username=input("username:") 2 password=input("password:") 3 4 if username=="xiaohong" and password=="123456": 5 print("welcome!") 6 else: 7 print("user or passwd error!")
场景2.猜年龄游戏
1 #!/usr/bin/env python 3 # -*- coding: utf-8 -*- 6 my_age = 28 9 user_input = int(input("input your guess num:") 12 if user_input == my_age: 14 print("Congratulations, you got it !") 16 elif user_input < my_age: 18 print("Oops,think bigger!") 20 else: 22 print("think smaller!")
外层变量,可以被内层代码使用
内层变量,不应被外层代码使用
九、规范输出
1 #!/usr/bin/env python 2 3 name=input("name:") 4 age=input("age:") 5 job=input("job:") 6 hobby=input("hobby:") 7 8 info=""" 9 ---------info of %s------------ 10 name : %s 11 age : %s 12 job : %s 13 hobby: %s 14 --------------end-------------- 15 """ %(name,name,age,job,hobby)