首页 > 代码库 > 第一章-Python基础
第一章-Python基础
1 数据类型和变量
1.1整数
16进制数前面加0x
1.2 浮点数
1.23x109就是1.23e9
1.3 字符串
单引号或者双引号
要输入引号可以用\转义
在输出前面加r表示后面不转义
例如: print(r"\\\\t\\")
表示多行内容 ‘‘‘内容里面直接回车就好了‘‘‘ 内容会保留成回车
1.4 布尔值
只有True和False两种值
可以进行and or not 运算
1.5 空值
None表示
1.6 变量
变量名必须是大小写英文、数字和下划线
的组合,且不能用数字开头
python是动态语言, 赋值的时候不用管类型, 新建的时候也不用声明类型
静态语言诸如java, 要声明类型, 赋值也要看类型
1.7 常量
通常用全部大写的变量名表示常量
1.8 除法
/计算的结果始终为浮点型
//叫做地板除, 结果是小于除法结果的最大整数
2 字符串和编码
2.1 字符编码
最开始的时候电脑将1个比特作为一个字节, 因而最大表示的整数就是255
最开始的编码只有127个字符编入, 使用的也是一个字节, 也就是ASCII
中文由于数量众多, 因而采用两个字节, 形成了GB2312
Unicode是将所有语言都编入进去的语言, 采用两个字节, 少数的字会有四个字节
由于这样比较费空间, 因而形成变长的UTF-8, 常用的英文字母被编码成1个字节, 汉字通常是3个字节, 只有很生僻的字符才会被编码成4-6个字节
2.2 Python的字符串
Python 3是Unicode字符集
使用ord和chr可以将实际编码与字符对应上
ord(‘字符‘) 获取字符的整数表示
chr(整数) 根据整数获得字符
一般还可以用十六进制表示字符
正常字符串 一个字符对应若干个字节
b‘字符串‘ 一个字符只用一个字节表示,用于网络传输或者保存到磁盘上
转换成别的编码类型
字符串.encode(‘目标编码‘)
通常有 ascii 和 utf-8
计算一个字符串有多少个字符
len(字符串)
为了避免乱码问题,应当始终坚持使用UTF-8编码对str和bytes进行转换
在有中文的源码中, 最好保存为UTF-8的格式
通常文件头写上如下的代码
#!/usr/bin/env python3# -*- coding: utf-8 -*-
第一句表示Linux系统这是一个Python程序
第二句告诉Python解释器以UTF-8的编码读源代码
字符串的处理
replace方法
字符串A.replace("要替换的","替换成的")
注意: 返回的结果是替换的内容, 但是字符串A本身不会发生变化
>>> a = ‘abc‘>>> a.replace(‘a‘, ‘A‘)‘Abc‘>>> a‘abc‘
3 格式化
‘字符串内容 占位符‘%(占位符的内容)
>>> ‘Hello, %s‘ % ‘world‘‘Hello, world‘>>> ‘Hi, %s, you have $%d.‘ % (‘Michael‘, 1000000)‘Hi, Michael, you have $1000000.‘
常见的占位符:
补0
>>> ‘%2d-%02d‘ % (3, 1)‘ 3-01‘
限制小数点位数:
>>> ‘%.2f‘ % 3.1415926‘3.14‘
想要输出% 用%%表示
>>> ‘growth rate: %d %%‘ % 7‘growth rate: 7 %‘
3 list和tuple
3.1 list
定义
classmates = [‘Michael‘, ‘Bob‘, ‘Tracy‘]
获取list的长度
len(list名字)
获取数据
名字[索引]
从左往右0开始
从右往左-1开始
list是一个可变的 有序表
添加数据
名字.append(添加的内容)
添加的数据放到最后
插入数据
名字.insert(位置,数据)
数据就放在位置上, 以后的数据依次后延
删除数据
名字.pop()
删除最后一个元素
名字.pop(位置)
删除某位置的元素
替换元素
名字[位置]=新换的数据
list里面的元素的数据类型也可以不同
list元素也可以是另一个list
此时回去数据可以形成多级[][]的形式
list的排序
list名字.sort()
一般按照字母的字典排序, 数字的大小排序
3.2 tuple
tuple又叫元组
一旦初始化就不能被修改
定义
classmates = (‘Michael‘, ‘Bob‘, ‘Tracy‘)
空tuple的定义
t = ()
单个元素tuple的定义
t = (1,)
注意: 当tuple的元素当中有类似于list这样可以改变的元素的时候, 该tuple就变的"可变"了
因此, 在初始化tuple的时候最好保证元素是不可变的
4 条件判断和循环
4.1 条件判断
if语句的结构
if <条件判断1>: <执行1>elif <条件判断2>: <执行2>elif <条件判断3>: <执行3>else: <执行4>
特点: 只会执行其中的一个函数体
4.2 input
获取用户输入
变量 = input("输入提示")
birth = input(‘birth: ‘)
input()返回的数据类型是字符串类型
字符串类型转为int类型
int(字符串)
同理, 转化为float就是
float(字符串)
4.3 循环
4.3.1 for..in循环
可以将list或者tuple的元素迭代出来
names = [‘Michael‘, ‘Bob‘, ‘Tracy‘]for name in names: print(name)
sum = 0for x in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]: sum = sum + xprint(sum)
生成整数序列方法
range(整数A)
生成了从 0 开始到小于 整数A 的整数序列
sum = 0for x in range(101): sum = sum + xprint(sum)
4.3.2 while循环
满足条件就循环, 不满足就退出
sum = 0n = 99while n > 0: sum = sum + n n = n - 2print(sum)
5 dict和set
5.1 dict
dict也就是字典类型, 全程dictionary, 在其他语言中称为map, 是基于键值对的
特点: 查找速度块 实际存储的顺序和key放入的顺序不一致
查询块的原因
因为存储键值对的时候做了处理, 针对key值可以计算出相应的存储位置, 就跟字典的拼音查询一个道理
正是因为这个原因, 实际存储的顺序与key的顺序是不一致的
定义
d = {‘Michael‘: 95, ‘Bob‘: 75, ‘Tracy‘: 85}
获取值
1 字典名字[key值]
d[‘Michael‘]
2 字典名字.get(key)
d.get(‘Thomas‘)
当所输入的key值不在字典当中, 就会输出None值
此时还可以设置遇到这种情况输出自己的值的时候,可以 字典名字.get(key, 为None时的默认值)
d.get(‘Thomas‘, -1)
判断key是不是在字典中
key in 字典名字
‘Thomas‘ in d
设置值
字典名字[key值]=值
d[‘Adam‘] = 67
重复对同一个key赋值, 最后存储的值是最后一次赋值的值
删除值
字典名字.pop(key)
d.pop(‘Bob‘)
注意: 字典类型的key最好是设置为不可变的对象
因为如果key值变化, 存储的内容地址就会跟着发生变化
5.2 set
特点:
只存储一组key
存储的key不重复, 重复添加没有什么效果
表示由花括号表示
常用于做集合的运算
定义
set名 = set([key, key, key])
>>> s = set([1, 2, 3])>>> s{1, 2, 3}
添加元素
set名.add(key)
>>> s.add(4)>>> s{1, 2, 3, 4}
删除元素
set名.remove(key)
>>> s.remove(3)>>> s{1, 2}
应用, 两个set可以做并集和交集
>>> s1 = set([1, 2, 3])>>> s2 = set([2, 3, 4])>>> s1 & s2{2, 3}>>> s1 | s2{1, 2, 3, 4}
第一章-Python基础