星火:Python基础-IF和循环zhuanlan.zhihu.com星火:Python基础-函数zhuanlan.zhihu.com星火:Python基础-模块zhuanlan.zhihu.com星火:Python基础-数据结构zhuanlan.zhihu.com
如今Python好像成为了学习数据分析 机器学习的基本语言之一,为一探究竟,Python的学习说干就干!
由于现在Anaconda集成了Python和jupyter notebook和众多数据分析所需要的包,所以我们就直接安装一个 anaconda 即可;
Anaconda Prompt(终端)中启动,
conda:是一个包管理器和环境管理器
conda list #查询包
conda upgrade --all #升级包
conda install package_name #安装指定包
conda update package_name #更新指定包
conda install nb_conda #安装nb_conda用于notebook自动关联nb_conda的环境
conda create -n env_name package_names #创建环境
输入 jupyter notebook 开始:
按照惯例,先来一句
一、变量的命名
养成习惯,在定义变量时,变量名字应该按照 “代表含义的名字”+“变量类型”组成,
例如 nameStr
二、容器:列表,元组,字典
其中“容器”表是:字符串、列表、元组、字典等,指能包含内容的集合
列表 list,使用 [ ] = 内容为 字符串或者变量,元素可修改;
元祖 tuple,使用 ( ) = 元素不可修改;
字典 Dictionary,使用{ } = 内容为“键值对” ,一个key对应一个值;(是一个无序集合,通过 键值对 保存数据)
list、tuple、字典中,查询索引,使用index
print (list.index('内容'))
list、tuple、字典中,统计某一元素出现的次数,使用count
print ( tuple.count('元素'))
list、tuple、字典中,计算所包含的元素数量,使用 len
print (len (list))
list 中元素的添加可使用 append() ;
list = ()
list.append(' ')
list 、 tuple 、字典中可使用 pop() 或者 del 对元素进行删除;
girllist = ['Michael', 'Amy', 'Garwing', 'Kiyr', 'Alyson']
del girllist[3]
girllist
返回:['Michael', 'Amy', 'Garwing', 'Alyson']
girllist.pop(1) # pop 可以指定要删除元素的索引
返回:'Amy'
合并字典,可使用 update(),如果被合并的字典中包含已存在的键值对,则会覆盖原有字典中的键值对。
字典1 = {}
字典2 = {}
字典1.update(字典2)
name_list = ['Michael','Amy','Garwing','Gaga']
1、取数值和取索引
print(name_list[0])
取索引,使用index方法(在交互界面查找索引这个单词),传入一个需要查找的数值,会输出此数值的序号
print(name_list.index('Amy'))
2、修改list中指定位置的内容的数值
name_list[3] = 'Alyson'
3、向列表中增加一个数据
三个方法。
append 向列表末尾追加数据、
name_list.append('Phebe')
insert 向列表的指定位置插入数据、
name_list.insert(1,'Rachel')
extend把另外一个列表中的完整内容加入
tem_list = ['Kiyr','Monica']
name_list.extend(tem_list)
4、从当前list中删除指定数据
remove ,可以从列表中删除指定的数据
name_list.remove('Rachel')
clear 可以清空整个列表
name_list.clear()
pop 在默认情况下可以删除列表中最后一个元素,
name_list.pop()
pop 可以指定要删除元素的索引
name_list.pop(4)
del 也可以删除指定的元素
del name_list[4]
del这个关键字本质上是将一个变量从内存中删除
name = '小明'
del name
三、字符串的常用操作
字符串中的转义字符:
\n 换行 \t横向制表符,垂直方向对齐 \r 回车
-----------------------------
1). 查找和替换
hello_str = "Hello world"
1.判断是否以指定字符串开始
print(hello_str.startswith("Hello"))
2.判断是否以指定字符换结束
print(hello_str.endswith("world"))
3.查找执行字符串
index同样可以在查找指定的字符串在大字符换中的索引
print(hello_str.find("llo"))
index如果指定的字符串不存在,会报错
find如果指定的字符串不存在,会返回-1
rfind方法是从右边开始查找
rindex方法也是从右边开始查找;
2). 字符大小写
可以使用 title() 使字符首字母大写;
3). 文本对齐
# 要求:按照顺序并且居中对齐输出以下内容
poem = ["登黄鹤楼",
"王之涣",
"白日依山尽",
"黄河入海流",
"欲穷千里目",
"更上一层楼"]
for poem_str in poem:
print("|%s|" % poem_str.center(10," "))
4). 取出空白字符
当获取的文字中含有很多空白字符,
先使用strip方法取出字符串中的空白字符
print("|%s|" % poem_str.strip().center(10," "))
5). 拆分和连接
string.split(str = "", num ) 就是以空白字符作为分隔符,把内容拆分成一个列表
string.join(seq) ,使用sting作为分隔符,将seq中的所有元素(的字符串表示)合并为一个新的字符串
1.将字符串中的空白字符都去掉
2.再使用“ ”作为分隔符,拼接成一个整齐的字符换
poem_str = "登鹤雀楼\t 王之涣\t 白日依山尽\t 横河入海了 \t\n 欲穷千里目 \n\t 更上一层楼"
1.拆分字符串
poem_list = poem_str.split()
print(poem_list)
2.合并字符串
poem = " ".join(poem_list)
print(poem)
输出:
['登鹤雀楼', '王之涣', '白日依山尽', '横河入海了', '欲穷千里目', '更上一层楼']
登鹤雀楼 王之涣 白日依山尽 横河入海了 欲穷千里目 更上一层楼
四、切片
语法: 字符串[开始索引:结束索引:步长]步长表是如果想有有间隔的循环切片,就设定步长;结束索引不指定,就会自动切到最后一个字符。还可以使用倒叙方式,就是从-1开始。
注意:结束索引的元素不包含在切片中
演示:
num_str = "0123456789"
1.num_str[2:6] # 截取从2-5位置的字符串
2.num_str[2:] # 截取从 2-末尾 的字符串
3.num_str[:6] # 截取从 开始-5 位置的字符串
4.num_str[:] # 取 完整 的字符串
5.num_str[::2] # 从开始位置,每隔一个字符截取字符串
6.num_str[1::2] # 从1开始,每隔一个字符截取字符串
7.num_str[2:-1] # 截取从 2-末尾-1 的字符串
8.num_str[-1:-2] # 截取字符串末尾两个字符
9.num_str[::-1] # 字符串的逆序(面试题)
五、公共方法
其中 del 可以当关键字使用,也可以作为函数使用
在字典中,max和min只会对 key进行比较
比较大小,可直接用 比较运算符
In : " 1 " > " 2 "
Out : False
In : "aaaa" < "bbbb"
Out : True
In : [1, 1, 1] < [ 2, 2 ,2]
Out : True
其中字典与字典不能比较大小
In : [1,2] * 5
Out : [1,2,1,2,1,2,1,2,1,2]
in : (1 , 2) * 2
out : ( 1 ,2 ,1, 2)
字典不能使用*,因为字典中键值对的key是唯一的。
合并运算符
in : [1,2]+[3,4]
out : [1 ,2 ,3 ,4] "+"输出的是一个新的列表
in : t_list = [1 ,2]
in : t_list.extend([1,2])
in : t_list
out : [1 ,2 ,3 ,4] expend输出的是原有的列表,将内容加进原有的列表中
in : t_list.append(0)
in : t_list
out : [1 ,2 ,3 ,4 ,0] append 是将加入的内容作为一个独一的元素,加进原有的list中
in : t_list.append([8,9])
in : t_list
out : [1 , 2, 3 ,4, 0 ,[ 8 , 9 ]]
in 和not 被称为 成员运算符
在字典中,用in 和not 查询元素是否存在或不存在,只能判断字典的key,而不能判断值;