基本概念
数据类型
可以用type()函数查看具体的类型。
type(100)
int
type("hello csdn")
str
输出与输出格式设置
Python中用print关键字进行输出,用str.format()或者f“”方法对输出格式设定。
print("hello csdn")
hello csdn
- 一对一填充
print('我正在学习:{}'.format('Python基础知识'))
#也可以采用f方法
str='Python基础知识'
print(f'我正在学习:{str}')
我正在学习:Python基础知识
- 多对多填充
print('我正在学习:{}中的{}'.format('Python基础课程','Python高级课程'))
我正在学习:Python基础课程中的Python高级课程
- 浮点数设置
.2f表示浮点型展示,显示小数点的后两位,也可以是.3f或其他
print("{}约{:.2f}亿".format("2023年中国XX人数",2.3))
2023年中国XX人数约2.30亿
- 百分数设置
.2%表示以百分比的形式展示,且展示小数点后两位,也可以是.3%或者其他
print("美国男性占总人的的比例:{:.2%}".format(0.519))
美国男性占总人的的比例:51.90%
缩进与注释
缩进
我们把代码的行首空白部分组成缩进,缩进的目的是为了标识代码块
注释
注释是对代码起到说明作用,并不真正运行。
#这是单行注释,不执行哦
print("hello csdn")
hello csdn
'''
方法一:
这是多行注释,
'''
"""
方法二:
这是多行注释
"""
print("hello csdn")
hello csdn
字符串
字符串的概念
字符串是由另个或多个字符串组成的有限串行,用单引号或者双引号括起来
字符串的连接
直接用+就可以将两个或两个以上的字符串进行连接。
"我正在学习"+"Python"
'我正在学习Python'
字符串的复制
使用操作符*进行字符串的复制
"Python大数据教程"*3
'Python大数据教程Python大数据教程Python大数据教程'
获取字符串的长度
使用len()函数来获取字符串的长度
len("17768555819")
11
字符串的查找
字符串查找指查找某一个字符串是否包含在另外一个字符串中,用in或者not in这两个方法均可以实现,返回布尔值。还可以用find方法,返回具体位置,如果不存在则返回-1。
"Python" in "Python数据分析"
True
"Python" not in "Python数据分析"
False
"Python数据分析".find("Python")
0
"Python数据分析".find("PHP")
-1
字符串索引
字符串索引是指通过字符串值所处的位置对值进行索取,字符串的位置是从0开始的
#获取字符串第1位值
a = "Python数据分析"
a[0]
'P'
#获取字符串第4位值
a[3]
'h'
#获取字符串第2位到第4之间的值,且不包括第4位的值
a[1:3]
'yt'
#获取字符串第1到第4之间的值,且不包括第4位
a[:3]
'Pyt'
#获取字符串第7位到最后1位的值
a[6:]
'数据分析'
#获取字符串最后一位值
a[-1]
'析'
字符串分割
用split()函数,返回列表
"a,b,c".split(",")
['a', 'b', 'c']
移除字符
用strip()函数
#移除空格
" a ".strip()
'a'
#移除换行
"\ta\t".strip()
'a'
#移除指定字符
"LAMPk".strip("k")
'LAMP'
数据结构——列表
列表的概念
- 列表(list)是用来储存一组有序数据元素的数据结构,元素之间用逗号隔开;
- 元素包含在方括号内,元素可变;
新建列表
- 建立一个空列表
单方括号没有任何元素时,列表就是一个空列表
null_list = [ ] - 建立一个int类型列表
当方括号元素全位int类型时,这个列表就是int类型列表
int_list = [1,2,3] - 建立一个str类型列表
当方括号元素全是str类型时,这个列表就是int类型列表
str_list = [“a”,“b”,“c”] - 建立一个int+srt 类型列表
当放括号的元素既有int类型,又有str类型时,这个列表就是int+str类型
int_str_list = [1,2,“a”,“b”]
列表的复制
列表的复制和字符串类似,用*操作符
int_list = [1,2,3]
int_list*2
[1, 2, 3, 1, 2, 3]
str_list = ["a","b","c"]
str_list*2
['a', 'b', 'c', 'a', 'b', 'c']
列表的合并
- 利用+操作符
- 用extend()函数
#利用+操作符
int_list = [1,2,3]
str_list = ["a","b","c"]
int_list + str_list
[1, 2, 3, 'a', 'b', 'c']
#用extend()函数
int_list = [1,2,3]
str_list = ["a","b","c"]
int_list.extend(str_list)
int_list
[1, 2, 3, 'a', 'b', 'c']
向列表中插入新元素
- append()在列表末尾插入数据元素
- insert()在列表指定位置插入元素
#在末尾插入元素
int_list = [1,2,3]
int_list.append(4)
int_list
[1, 2, 3, 4]
#指定位置插入元素
int_list = [1,2,3]
int_list.insert(3,4)#表示在第4位插入元素4,位置从1开始计算
int_list
[1, 2, 3, 4]
获取列表值出现的次数
利用count( )函数获取某个值在列表出现的次数
score_list = ["一班","二班","三班","二班","一班","一班"]
score_list.count("一班")
3
获取列表值出现的位置
- 获取值的出现的位置,就是看该值位于列表中的哪里;
- 用index()方法,位置从0开始
car_list =["保时捷","法拉利","兰博基尼","宝马","奔驰","奥迪"]
car_list.index("兰博基尼")
2
获取列表中指定位置的值
- 普通索引(获取某一特定位置的数)
- 切片索引(获取某一位置区间的数)
#普通索引
str_list = ["a","b","c","d","e","f","g"]
str_list[0]
'a'
#切片索引
#获取第2位到第4位的数,不包含第4位
str_list[1:3]
['b', 'c']
#获取开始到第4位的数,不包含第4位
str_list[:3]
['a', 'b', 'c']
#获取第2位到结束的数
str_list[1:]
['b', 'c', 'd', 'e', 'f', 'g']
#获取最后一位数
str_list[-1]
'g'
删除列表元素
- pop()函数是指定位置删除,返回删除的值
- remove()函数是元素进行删除,没有返回值,但是会移除列表中的某个值的第一个匹配项
#根据位置删除指定元素的
str_list = ["a","b","c","d","e","f","g"]
str_list.pop(1)
'b'
#根据值删除元素
str_list = ["a","b","c","d","e","f","g","a"]
str_list.remove("a")
#删除列表中所有的"a"
str_list = ["a","b","c","d","e","f","g","a"]
k = "a"
while k in str_list:
str_list.remove(k)
str_list
['b', 'c', 'd', 'e', 'f', 'g']
对列表中的值进行排序
用sort()函数进行排序,默认是升序排列,传入参数reverse=True可以降序
#默认升序
s = [1,5,2,9,4,6]
s.sort()
s
[1, 2, 4, 5, 6, 9]
#传参reverse=True降序
s = [1,5,2,9,4,6]
s.sort(reverse = True)
s
[9, 6, 5, 4, 2, 1]
数据结构——字典
字典的概念
字典(dict)是一种键值对的结构
- 键必须唯一
- 键值对内部用冒号分隔
- 各键值对用逗号分隔
- 所有数据放在花括号中
新建一个字典
#向空白字典插入值
test_dict = {}
test_dict["张三"] = 15280001000
test_dict["李四"] = 13980001000
test_dict
{'张三': 15280001000, '李四': 13980001000}
#直接将键值对传入字典中
test_dict = {"张三": 15280001000, "李四": 13980001000}
test_dict
{'张三': 15280001000, '李四': 13980001000}
# 将键值对以列表的形式存放在元组中,然后用dict进行转换
contact = (["张三",1528000100],["李四",13980001000])
test_dict = dict(contact)
test_dict
{'张三': 1528000100, '李四': 13980001000}
字典中keys(),values()和items()方法
- keys()方法用来获取字典内所有的键
- values()方法用来获取字典内所有的值
- items()方法用来获得到一组组的键值对
test_dict = {"张三": 15280001000, "李四": 13980001000}
test_dict.keys()
dict_keys(['张三', '李四'])
test_dict.values()
dict_values([15280001000, 13980001000])
test_dict.items()
dict_items([('张三', 15280001000), ('李四', 13980001000)])
数据结构——元组
元组的概念
元组(tup)与类表类似
- 元组的元素不能修改
- 元祖用小括号,列表用中括号
新建元组
直接将一组元素用小括号括起来即可
tup = (1,2,3)
获取元组的长度
使用len()函数
tup = (1,2,3)
len(tup)
3
获取元组内的元素
元组内元素的获取主要分为普通索引和切片索引与列表类似
#普通索引
tup = (1,2,3)
tup[2]
3
#切片索引
tup = (1,2,3)
tup[:2]
(1, 2)
元组与列表相互转换
- list()函数将元组转为列表
- tuple()函数将列表转为元组
#将元组转为列表
tup = (1,2,3)
list(tup)
[1, 2, 3]
#将列表转为元组
t_list = [1,2,3]
tuple(t_list)
(1, 2, 3)
zip函数
zip()函数用于将可迭代的对象(列表、元组)作为参数,将对象中对于的元素打包成一个个元组,然后返回这些元组组成的列表。常与for循环一起搭配使用。
#可迭代对象是列表时:
list_a = [1,2,3,4]
list_b = ["a","b","c","d"]
for i in zip(list_a,list_b):
print(i)
(1, 'a')
(2, 'b')
(3, 'c')
(4, 'd')
#可迭代对象是元组时:
list_a = (1,2,3,4)
list_b = ("a","b","c","d")
for i in zip(list_a,list_b):
print(i)
(1, 'a')
(2, 'b')
(3, 'c')
(4, 'd')
运算符
算术运算符
用于算术运算
- + 两数相加
- - 两数做差
- * 两数相乘
- / 两数相除
- % 返回两数相除的余数
- ** 返回x的y次幂
- // 返回两处相除以后商的整数部分
比较运算
主要用来比较,返回True或False
- == 等于
- != 不等于
- <> 不等于
- > 大于
- < 小于
- >= 大等于
- <= 小等于
逻辑运算
- and 同时为真结果才为真
- or 只要一边为真,结果就为真
- not 如果表达式为真,运算结果为False,反之为True
循环语句
for循环
for循环用来遍历任何序列项目
subject = ['Excel','SQL','Python','统计学']
for sub in subject:
print('我目前正在学习:{}'.format(sub))
我目前正在学习:Excel
我目前正在学习:SQL
我目前正在学习:Python
我目前正在学习:统计学
while循环
while循环用来循环执行某程序,,即当条件满足时,一直执行某程序,直到条件不满足时,终止程序;
week = 0 #从0开始学
while week<= 7:
print("我已经学习数据分析{}周啦".format(week))
week +=1
print("我已经学习数据分析{}周啦,我可以去找工作啦".format(week-1))
我已经学习数据分析0周啦
我已经学习数据分析1周啦
我已经学习数据分析2周啦
我已经学习数据分析3周啦
我已经学习数据分析4周啦
我已经学习数据分析5周啦
我已经学习数据分析6周啦
我已经学习数据分析7周啦
我已经学习数据分析7周啦,我可以去找工作啦
条件语句
if语句
- if条件语句是先去判断某个条件是否满足,满足则执行判断后的语句
- if条件后面的程序需要首行缩进
is_study = 1
if is_study == 1:
print("可以找到好工作了")
可以找到好工作了
else语句
else语句是if语句的补充,即if不满足时执行什么程序
is_study = 1
if is_study == 0:
print("很难找到好工作了")
else:
print("可以找到好工作了")
可以找到好工作了
elif语句
用于多条件判断
score =int(input("请输入分数:"))
if score < 60:
print("小于60分")
elif score < 70:
print("60~70分")
elif score < 80:
print("70~80分")
else :
print("90~100分")
请输入分数:30
小于60分
函数
函数是在一个程序中被重复使用的一段程序
普通函数
- 普通函数一般有函数名(必需)、参数、语句块(必需)、return、变量这几部分组成
- 函数定于的语法:
def 函数名(参数):
语句块
#定义一个return函数
def learn_python(location):
doing = ("我正在{}上学Python".format(location))#注意{}中间不能敲空格
return doing
learn_python("地铁")
'我正在地铁上学Python'
匿名函数
匿名函数就是没有名字的函数,省略了def定义函数的过程,lambda至于一个表达式,没有具体的函数体。使用方法如下:
lambda arg1,arg2,arg3,…:expression
- arg1,arg2,arg3表示具体参数
- expression 表示参数要执行的操作
f = lambda x,y:x+y
f(1,2)
3
高级特性
列表生成式 ✩✩✩
例:现有一个列表,需要对列表的每个值求平方,组成成一个新列表,对比两种方法
#普通方法实现
num = [1,2,3,4,5]
new = []
for i in num:
new.append(i**2)
new
[1, 4, 9, 16, 25]
#列表生成式
num = [1,2,3,4,5]
[i**2 for i in num]
[1, 4, 9, 16, 25]
现有两列表,需要列表的值两两组合
#普通方法实现
list1 = ["A","B","C"]
list2 = ["a","b","c"]
new =[]
for m in list1:
for n in list2:
new.append(m+n)
new
['Aa', 'Ab', 'Ac', 'Ba', 'Bb', 'Bc', 'Ca', 'Cb', 'Cc']
#列表生成式
list1 = ["A","B","C"]
list2 = ["a","b","c"]
[m + n for m in list1 for n in list2]
['Aa', 'Ab', 'Ac', 'Ba', 'Bb', 'Bc', 'Ca', 'Cb', 'Cc']
map函数
- map函数的表现形式是map(function,agrs), 表示对序列 args 中的每个值进行function操作,最终得到一个结果序列
- map函数生成的结果序列不会直接显示出来,想要获得结果需要for循环遍历取出,或者用list方法生成一个列表
a = map(lambda x,y:x+y,[1,2,3],[3,2,1])
a
<map at 0x23e0d3b75c0>
for i in a:
print(i)
4
4
4
b = list(map(lambda x,y:x+y,[1,2,3],[3,2,1]))
b
[4, 4, 4]