第二章 python入门
代码的三大追求
1.时间复杂度 (效率)
2.空间复杂度 (内存占用率)
3.用户体验
2.1环境的安装
- 解释器:py2 / py3 (环境变量)
- 开发工具:pycharm / Notepad++
强制更新pip,采用清华的镜像
python3.7 -m pip install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple/
安装第三方库的时候可以采用其他高校的镜像
2.2编码
2.2.1编码基础
- ascii
- unicode
- utf-8
- gbk
- gb2312
v1="你好"
#上面的称为字符串,采用的是unicode编码,大小是以字节来算
v2=v1.encode("utf-8")
#把unicode编码转换成其他编码的称为字节类型/bytes类型
v=b"xxxxx" #一般压缩以后就是这样,就称之为字节类型
gbk:英文字母,数字,特殊字符和中文。又称为国标码
一个英文字母:0000 0001 :a
Unicode:万国码,将世界上所有的文字都记录到这个密码本上。
起初一个字符用两个字节表示:
0000 0001 0000 0001 : a
后来为了涵盖全部文字:
0000 0001 0000 0000 0000 0001 0000 0001 : a
浪费空间浪费资源
Utf-8:最少用一个字节8bit表示一个字符
0000 0001: a 一个字节
0000 0000 0000 0001: 欧洲两个字节
0000 0000 0000 0000 0000 00001 :中文三个字节
2.2.2python编码相关
python默认的解释器编码:
- py2 : ascii
- py3 : utf-8
如果想要修改默认的编码,可以使用
# -*- coding:utf-8 -*-
对于文件操作时,要按照:以什么编码写,就要以什么编码打开。
2.3变量
问:为什么要有变量?
答:为了方便以后再次使用,对一个值创建了变量,以后再次使用此值的时候通过变量名即可再次调用。
-
变量
name="apple"
-
全局变量
NAME="ray"
-
函数
def func(): pass
-
常量:不允许修改的量
2.3.1变量的命名规则
变量命名规则:
1.变量名只能包含:字母/数字/下划线
2.数字不能作为开头
3.不能是python的关键字
python关键字:and, as , assert, break, class, continue, def, del, elif, else, except, exec, finally, for, from,global, if
import, in, is, lambda, not, as, or, print, raise, return, try, while, with, yield
4 .建议用下划线命名法,而不是驼峰式命名法,如user_name
5 .见名知意
2.4运算符
2.4.1赋值运算
+= -= *= /=
%= 取模赋值运算符
**= 幂赋值运算符
//= 取整除赋值运算符
2.4.2运算符的优先级
运算符 | 描述 |
---|---|
** | 指数(最高优先级) |
~ + - | 按位翻转,一元加号和减号(最后两个的方法名位+@和-@) |
* / % // | 乘,除,取模,取整除 |
+ - | 加法, 减法 |
>> << | 右移,左移 |
& | 位“AND” |
^ | | 位运算符 |
<= < >= > | 比较运算符 |
< > == != | 等于运算符 |
= %= /= //= -= += *= /= | 赋值运算符 |
is is not | 身份运算符 |
in not in | 成员运算符 |
not and or | 逻辑运算符 |
is和==的区别
2.4.3逻辑运算符的进阶
9 or 0 #9
0 or 9 #9
9 and 0 #0
0 and 9 #0
2.6输入输出
input()输入:用户输入之后,得到的值返回给一个变量,变量的数据类型是字符串
print()显示输出:根据括号内的内容打印到屏幕输出,输出时也可以用字符串格式化的方法%s或%d,方便书写
- py2
- 输入:raw_input
- 输出:print ""
- py3
- 输入:input
- 输出:print("")
2.7条件语句
2.7.1 if elif else
注意:else后面不能跟条件
name="海绵宝宝"
result=input("请猜一个小时候看的动画片:")
if name == result:
print("猜对了!")
elif result = "猪猪侠":
print("好巧哦,我也看过!")
else:
print("我和你不是一个年代的人!")
2.7.2 三目运算
#v=前面 if 条件 else 后面
age=18
v = "apple" if age==18 else "pear" #满足if的条件则返回前面的值,满足else的条件则返回后面的值
#不能使用elif
print(v)
2.7.3多个判断的情况
例子:当用户输入f1,输出1,输入f2,输出666,输入f3,输出 888,输入f15 输出999
USER_DICT={
"f1":1,
"f2":666,
"f3":888,
"f15":999
}
CHIOCE=input("请输入您的选择:")
for i in USER_DICT:
#字典中循环默认取键
if i== CHIOCE:
print(USER_DICT.get(i)) #用get()函数获取值
当学习到函数之后,可以看下面这个例子
def show():
print("show")
def test():
print("test")
def func():
print("func")
INFO={
"f1":show,
"f2":test,
"f3":func
}
CHOICE=input("请输入选择的功能:")
FUNCTION_NAME=INFO.get(CHOICE) #get获得对应的值,若没有对应的键则返回False
if FUNCTION_NAME:
FUNCTION_NAME() #加上括号即可运行函数
else:
print("输入错误")
2.8循环
2.8.1while循环
当条件成立(True)的时候,继续执行
while True:
print("你好帅!") #会一直打印,由于条件一直为True
2.8.2for循环
可以看作数据类型中的公共功能
#示例一:
for i in range(0,10):
print(i) #会打印处0-9,可以将range看作是生成了0,1,...8,9的一个列表
list=[0,1,2,3,4,5,6,7,8,9]
for i in list:
print(i) #与上面的结果一样
2.9控制语句
2.9.1break
跳出循环
2.9.2continue
跳过此次循环continue以后的语句,进行判断条件是否满足循环的条件,若满足则再次进入循环
2.10占位符
name1="hello %s" %("world") #当只有一个占位符的时候可以不用加括号
name2="hello %s" %"world"
print(name1,name2) #hello world hello world
name3="helle %s %s" %("hi","bye") #需要两个以上的占位符需要加括号
print(name3) #helle hi bye