1 Python介绍
2 Python发展史
3 Python2 or 3?
4 Python安装
就不写了,各路大牛的博客都很详细。
5 Hello World程序
1 #!/usr/bin/env python 2 3 print "hello,world"
6 变量、字符编码
声明变量
1 #_*_coding:utf-8_*_ 2 3 name = "Leon"
声明了一个变量,变量名为name,变量name的值为“Leon”
变量定义的规则:
- 变量名只能是字母、数字或下划线的任意组合
- 变量名的第一个字符不能是数字
- 以下关键字不能声明为变量名
['and', 'as', 'assert', 'break', 'class', 'continue', 'def','del', 'elif','else','except','exec','finally','for','form',
'global','if','import','in','is','lambda','not','or','pass','print','raise','return','try','while','with','yield']
7 字符编码
Python解释器在加载.py文件中的代码时,会对内容进行编码(默认ASCII),其最多只能用8位来表示(一个字节),即:2**8 = 256-1,所以ASCII码最多只能表示255个符号。
关于中文
GB2312---->GBK1.0---->GB18030
所以,需要一种可以代表所有字符和符号的编码,即:Unicode
UTF-8,是对Unicode编码的压缩和优化,ASCII码中的内容用1个字节保存、欧洲的字符用2个字节保存、东亚字符用3个字节保存。
所以,Python解释器在加载.py文件中的代码时,会对内容进行编码(默认ASCII),如果是如下代码的话:
报错:ascii码无法表示中文
1 #!/usr/bin/env python 2 3 print "你好,世界"
改正:应该显示的告诉Python解释器,用什么编码来执行源代码,即:
1 #!/usr/bin/env python 2 # _*_ coding: utf-8 _*_ 3 4 print "你好,世界"
注释
当行注释:#被注释内容
多行注释:“”“被注释内容”“”
8 用户输入
1 #!/usr/bin/env python 2 #_*_coding:utf-8_*_ 3 4 5 #name = input("What is your name?") 6 print("Hello " + name)
输入密码时,如果想要不可见,需要利用getpass模块中的getpass方法,即:
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 4 import getpass 5 6 #将用户输入的内容赋值给name变量 7 pwd = getpass.getpass("请输入密码: ") 8 9 #打印输入的内容 10 print(pwd)
9 模块初识
几乎任何功能都有相应的Python库支持,2个简单的。
sys
1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 4 import sys 5 6 print(sys.argv)
os
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 4 import os 5 6 os.system("df -h")#调用系统命令
完全结合一下
1 import os,sys 2 3 os.system(' '.join(sys.argv[1:]))#把用户的输入的参数当做一条命令交给os.system来执行
自己写模块
自己写的模块只能在当前目录下导入,如果想在系统的任何一个地方都使用,要把.py放到Python全局环境变量目录里,基本一般都放在一个叫Python/2.7/site-packages目录下。
10 pyc是啥
Python程序运行时,编译的结果保存在位于内存中的PyCodeObject中,当Python程序运行结束时,Python解释器则将PyCodeObject写回到pyc文件中。
当Python程序第二次运行时,首先程序会在硬盘中寻找pyc文件,如果找到,则直接载入,否则就重复上面的过程。
所以我们应该这样来定位PyCodeObject和pyc文件,pyc文件其实是PyCodeObject的一种持久化保存方式。
11 数据类型初识
1、数字
int(整型)
在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647
在64位机器上,整数的位数为64位,取值范围为-2**63~2**63-1
long(长整形)
Python的长整数没有指定位宽,即:Python没有限制长整数数值的大小,但实际上由于机器内存有限,使用的长整数数值不可能无限大。
2是一个整数,长整数不过是大一些的整数
float(浮点型)
浮点数用来处理实数,即带有小数的数字。
52.3E-4是浮点数。E表示10的幂
complex(复数)
(-5+4j)和(2.3-4.6j)是复数
2、布尔值
真或假
1或0
3、字符串
“hello world”
字符串格式化输出
1 name = "leon" 2 print("i am %s" %name)
字符串是%s;整数%d;浮点数%f
字符串常用功能:
- 移除空白——strip方法
- 分割——split方法
- 长度——len函数
- 索引——index方法
- 切片——:
4、列表
创建列表:
1 name_list = ['alex', 'seven', 'eric'] 2 #或者 3 name_list = list( ['alex', 'seven', 'eric'])
基本操作:
- 索引——namelist[0],index方法
- 切片——:
- 追加——append方法,extend方法
- 删除——del函数
- 长度——len函数
- 循环——for in
- 包含——
5、元组(不可变列表)
1 ages = (11, 22, 33, 44, 5)
6、字典
创建字典:
1 person = {"name": "Mr.Wu", 'age': 18}
常用操作:
- 索引
- 新增
- 删除
- 键、值、键值对
- 循环
- 长度
12 数据运算
算数运算:
+ - * /
% 取模,返回除法的余数
** 幂
// 取整除,返回商的整数部分
比较运算:
== 判断等于
!= 不等于
> < >= <=
赋值运算:
=
+=
-=
*=
/=
%=
**=
//=
逻辑运算:
and 与
or 或
not 非
成员运算:
in 在指定序列中找到值返回True,否则返回False
not in 在指定序列中没找到值返回True,否则返回False
身份运算:
is 判断两个标识符是不是引用自一个对象
not in 判断两个标识符是不是引用自不同对象
位运算:
& 按位与
| 按位或
^ 按位异或 #相同为0,不同为1
~ 按位取反
<< 左移运算
>> 右移运算.
13 表达式if...else
一、用户登录验证
1 name = input("请输入用户名: ") 2 pwd = input("请输入密码: ") 3 4 if name == "Leon" and pwd == "cmd": 5 print("欢迎,Leon! ") 6 else: 7 print("用户名和密码错误")
二、猜年龄游戏
1 my_age = 28 2 3 user_input = int(input("input your guess num: ")) 4 5 if user_input == my_age: 6 print("Congratulations, you got it !") 7 elif user_input < my_age: 8 print("Oops, think bigger!") 9 else: 10 print("think smaller!")
外层变量,可以被内层代码使用;
内层变量,不应被外层代码使用。
14 表达式 for loop
1 for i in range(10): 2 print("loop:", i)
遇到小于5的循环次数就不走了,直接跳入下一次循环
1 for i in range(10): 2 if i < 5: 3 continue 4 print("loop:", i)
遇到大于5的循环次数就不走了,直接退出
1 for i in range(10): 2 if i > 5: 3 break 4 print("loop:", i)
15 while loop
1 count = 0 2 while True: 3 print("You are wind! I am sand!") 4 count += 1 5 if count == 100: 6 print("fuck off!!!") 7 break
16 其他入门知识
1、三元运算
1 result = 值1 if 条件 else 值2
如果条件为真:result = 值1
如果条件为假:result = 值2
2、对于Python,一切事物皆对象,对象基于类创建
字符串、整数、列表都是对象,并且是根据不同的类生成的对象。