python基础知识总结

目录

一、数据类型

二、条件判断

三、循环

四、函数

五、模块

六、数据结构

七、踩过的坑


一、数据类型

python中的数据类型主要有五大类:数值、布尔、字符串、容器、None。

1.数值

  • python3支持int、float、bool、complex,int就表示长整型,没有long这种东西。
  • type()函数可以用来查询变量所对应的数据类型,比如说:a = 1;print(type(a))
  • 数值计算就那些,值得注意的是除法有两种,分别为’/‘和’//',前者会返回一个浮点数,后者返回一个整数,比如2/4,前者返回0.5,后者返回0;混合计算时,会将整型转化为浮点数;
  • 复数可以表示为a+bi,也可以为complex(a,b),a和b都是浮点型;
#数值—整型
age = 23
#数值—浮点型
weight = 55.5

2.布尔

布尔值有两个,分别为TRUE和FALSE,常用于条件判断中。

表达式成立返回TRUE,否则返回FALSE。

3.字符串

  • 用单引号或双引号括起来
  • python中的字符串无法改变,和C不同
  • 从前往后索引从0开始,从后往前索引从-1开始;
  • '+‘是字符串连接符,’*'可以用来让字符串重复输出;
  • py没有单独的字符类型,一个字符就是长度为1的字符串;
Str1 = '今年是2018年'
Str2 = '不是8102年'
Str3 = Str1 + ',' + Str2
print(Str3)

今年是2018年,不是8102年

也可以使用格式化输出,比如:

#用%进行格式化输出
Str = '我叫%s,我今年%d岁了'%('止水',23);
print(Str)

我叫止水,我今年23岁了

4.容器

python中有四种容器,分别为列表、元组、集合和字典。对于容器来说需要掌握其定义和操作的方法(增、删、查、改)。

(1)列表

  • 列表相当于C语言中的数组,但其内部可以存放不同类型的数据;
  • 可以被索引和截取,索引值正向从0开始,负向从-1开始;
  • '+‘是列表连接运算符,’*'是重复操作;
  • 列表中的元素可以改变
#容器—列表
#定义
nameList = ['科比','麦迪','姚明','霍华德']
nameLen = len(nameList)
print('列表长度为:',nameLen)
#列表操作
#1.增加
nameList.append('杜兰特')
print('增加了一个元素:',nameList)
#2.删除
del nameList[2]
print('删除第三个元素:',nameList)
#3.查询
name1 = nameList[0]
print('查询的元素为:',name1)
#4.修改
print('修改前的第二个元素为:',nameList[1])
nameList[1] = '乔丹'
print('修改后的第二个元素为:',nameList[1])

列表长度为: 4
增加了一个元素: [‘科比’, ‘麦迪’, ‘姚明’, ‘霍华德’, ‘杜兰特’]
删除第三个元素: [‘科比’, ‘麦迪’, ‘霍华德’, ‘杜兰特’]
查询的元素为: 科比
修改前的第二个元素为: 麦迪
修改后的第二个元素为: 乔丹

(2)元组

  • 元组属于不可变对象,所以一旦被定义就不能修改,所以不能进行增、删、改的操作;
  • 元组也可以被索引、切片,方法和列表相同;
  • 构造包含0个或1个元素的元组比较特殊,这里我们有特殊的定义:tuple = ();空元组 tuple2 = (1,)包含一个元素的元组需要在后面加一个逗号
#容器—元组
#定义
nameTuple = ('萌萌','老朱','宸宸')
print(nameTuple)
nameLen = len(nameTuple)
print('元组长度为:',nameLen)
#不能进行增删改
#查找
name = nameTuple[1]
print('第二个人名字叫:',name)

(‘萌萌’, ‘老朱’, ‘宸宸’)
元组长度为: 3
第二个人名字叫: 老朱

(3)集合

  • 基本功能是进行成员关系测试删除重复元素
  • 集合是无序的
  • 使用{}或set()函数创建,创建空集合不能使用{},只能用set(),因为前者是用来创建了一个空字典;
  • 用set创建集合,比如set(‘boy’),那么boy会拆分成b o y三个字母进行插入,并且不会重复插入;
  • set还可以进行集合运算
#容器—集合
#定义(会自动删除重复的元素)
teamSet = {'湖人','马刺','雷霆','勇士','快船','热火','湖人'}
print(teamSet)
#集合操作
#1.添加
teamSet = set()     #定义空集合
teamSet.update(['Tencent','Alibaba','Baidu'])
print(teamSet)
teamSet.update(['Facebook','Google'])
print(teamSet)
#2.删除—discard
teamSet.discard('Baidu')
print(teamSet)
#3.查找
txbool = 'Tencent' in teamSet
print(txbool)
#4.修改——先删除,再添加
#因为集合是一组无序的值集合,无索引,不能进行切片和直接修改

{‘湖人’, ‘马刺’, ‘热火’, ‘勇士’, ‘快船’, ‘雷霆’}
{‘Tencent’, ‘Baidu’, ‘Alibaba’}
{‘Google’, ‘Baidu’, ‘Alibaba’, ‘Facebook’, ‘Tencent’}
{‘Google’, ‘Alibaba’, ‘Facebook’, ‘Tencent’}
True

(4)字典

  • 字典是一种映射类型,字典用"{ }"标识,它是一个无序的**键(key) : 值(value)**对集合;
  • 字典当中的元素是通过键来存取的,而不是通过偏移存取;
  • 键(key)必须使用不可变类型(数字、字符串、元组);
  • 键值必须唯一
#容器—字典
#定义
nameDic = {'001':'张萌','002':'老朱','003':'阿轲','004':'木兰'}
print(nameDic)
#字典操作
#1.添加
nameDic['005'] = '李白'
print(nameDic)
#2.删除
del nameDic['005']
print(nameDic)
#3.查询
name1 = nameDic['002']
print(name1)
#4.修改
nameDic['002'] = '小乔'
print(nameDic)

{‘001’: ‘张萌’, ‘002’: ‘老朱’, ‘003’: ‘阿轲’, ‘004’: ‘木兰’}
{‘001’: ‘张萌’, ‘002’: ‘老朱’, ‘003’: ‘阿轲’, ‘004’: ‘木兰’, ‘005’: ‘李白’}
{‘001’: ‘张萌’, ‘002’: ‘老朱’, ‘003’: ‘阿轲’, ‘004’: ‘木兰’}
老朱
{‘001’: ‘张萌’, ‘002’: ‘小乔’, ‘003’: ‘阿轲’, ‘004’: ‘木兰’}

5.None

None在python中是一种很特殊的量,它有属于自己的类型’NoneType’,判断一个值是否为空值,可以使用’is None’或’is not None’来判断。


is和’=='的区别

‘==’:表示二者的值相等;

is:表示二者指向同一个对象。


二、条件判断

  • 基本形式为if…elif…else;
  • 每个条件后面都要加冒号’:';
  • 使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块;
  • 在Python中没有switch – case语句;
  • 可以嵌套

举例:

#条件判断
score = 9.0
if score > 8:
    print('电影不错,值得一看')
else:
    print('垃圾电影')

电影不错,值得一看

#多条件判断
age = int(input('请输入您的年龄:'))
if age < 18:
    print('你还是未成年哟!')
elif age >= 18:
    print('你长大了,孩子')
else:
    print('你是人吗')

请输入您的年龄:6
你还是未成年哟!

三元表达式:

Python中的三元表达式允许你将一个if—else代码块联合起来,在一行代码或者一个语句中生成数据。

语法:

value = true-expr if condition else false-expr

这段代码等价于下面的代码:

if condition:
    value = true-expr
else:
    value = false-expr

三、循环语句

1.while语句

格式:

while <循环条件>:
    <语句块>

2.for语句**(用的多)**

格式:

for i in <容器>
    代码块

3.continue用于跳出当前循环,进入下一个循环判断中;break用于跳出整个循环语句,结束执行循环。

举例:

#循环语句
list1 = ['Sunday','Monday','Tuesday']
for i in list1:
    print(i)

Sunday
Monday
Tuesday

gafataData = {'Tencent':'HK:00700','Alibaba':'baba','苹果':'Apple','谷歌':'Google','Facebok':'fb','亚马逊':'Amazon'}
for key,value in gafataData.items():
    newValue = value.upper()
    gafataData[key] = newValue
print(gafataData)

{‘Tencent’: ‘HK:00700’, ‘Alibaba’: ‘BABA’, ‘苹果’: ‘APPLE’, ‘谷歌’: ‘GOOGLE’, ‘Facebok’: ‘FB’, ‘亚马逊’: ‘AMAZON’}

四、函数

1.定义

  • 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ();
  • 任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数;
  • 函数内容以冒号起始,并且缩进;
  • return [表达式]结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None

2.调用

方式:函数名(参数)

举例:

#函数
a = 1
b = 2
def add(x,y):
    z = x + y
    return z
print('结果为:',add(a,b))

结果为: 3

3.参数传递

对于不可变对象参数的传递,相当于值传递,并不会修改原值,而对于可变对象的传递,则是将本体传过去,实际的修改了。

举例:

#参数的传递          
//当不可变对象作为参数进行传递时,其传递的只是它的副本,其自身的值是不会变化的
a = 5
def changenum(x):
    x = 10
    return x
b = changenum(a)
print(a,b)

5 10

#参数的传递
//传递的参数为可变对象时,传递的是其本体,其自身会发生变化
list = ['a','b','c']
def changelist(a):
    a.append('d')
    return a
list1 = changelist(list)
print(list)
print(list1)

[‘a’, ‘b’, ‘c’, ‘d’]
[‘a’, ‘b’, ‘c’, ‘d’]

4.参数

(1)必须参数

  • 必需参数须以正确的顺序传入函数。调用时的数量必须和声明时的一样

(2)关键字参数

  • 函数调用使用关键字参数来确定传入的参数值

5.变量的作用域

变量简单来说可以分为局部变量和全局变量。

局部变量只能在定义该变量的函数内部访问,而全局变量可以在整个程序中进行访问。

global+变量名可以声明该变量为全局变量。

五、模块

Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句。

模块让你能够有逻辑地组织你的 Python 代码段,把相关的代码分配到一个模块里能让你的代码更好用,更易懂。

模块能定义函数,类和变量,模块里也能包含可执行的代码。

1.python内置模块

引入模块:import 模块名称

使用模块中的函数和属性(变量):from 模块名 import 函数名

包是若干模块的集合。

2.第三方模块

3.模块使用总结

(1)import 包名称

(2)import 包名称 as 别名

(3)from 包名称 import 函数名

举例:

#模块
#导入模块
import sys
#使用模块中的属性或函数
path = sys.path
print(path)

[‘’, ‘C:\\Anaconda\\anaconda\\envs\\py3\\python36.zip’, ‘C:\\Anaconda\\anaconda\\envs\\py3\\DLLs’, ‘C:\\Anaconda\\anaconda\\envs\\py3\\lib’, ‘C:\\Anaconda\\anaconda\\envs\\py3’, ‘C:\\Anaconda\\anaconda\\envs\\py3\\lib\\site-packages’, ‘C:\\Anaconda\\anaconda\\envs\\py3\\lib\\site-packages\\IPython\\extensions’, ‘C:\\Users\\tycyx\\.ipython’]

import pandas as pd
import xlrd
fileNameString = 'C:\病历数据\病历数据.xlsx'
x1 = pd.ExcelFile(fileNameString)
patientDf = x1.parse('Sheet1')
print(patientDf)

病人编号 姓名 年龄 糖尿病类型 病情
0 1 猴子 29 1型糖尿病 较差
1 2 马云 34 2型糖尿病 好转
2 3 王健林 28 1型糖尿病 显著好转
3 4 马化腾 52 2型糖尿病 较差

六、数据结构

collections是python内建的一个集合模块,它提供了很多有用的集合类。这里介绍其中的几种数据结构:

1.双向列表(deque)

传统的List存储数据采用的是线性存储方式,一旦数据量很大,那么插入和删除元素效率就会很低,所以有了deque,它适用于队列和栈。

队列:FIFO

栈:先进后出

(1)队列的实现

#队列
#导入deque类
from collections import deque
#定义一个队列为双向列表
queue =deque(['01','02','03','04','05'])
print(queue)
#入队操作
queue.append('06')
print(queue)
#出队操作,删除队列头部的元素
queue.popleft()
print(queue)

deque([‘01’, ‘02’, ‘03’, ‘04’, ‘05’])
deque([‘01’, ‘02’, ‘03’, ‘04’, ‘05’, ‘06’])
deque([‘02’, ‘03’, ‘04’, ‘05’, ‘06’])

(2)栈的实现

#栈
#导入deque类
from collections import deque
#定义一个栈
stack = deque(['知乎动态','知乎回答','知乎文章'])
print(stack)
#入栈
stack.appendleft('知乎专栏')
print(stack)
#出栈
stack.pop()
print(stack)

deque([‘知乎动态’, ‘知乎回答’, ‘知乎文章’])
deque([‘知乎专栏’, ‘知乎动态’, ‘知乎回答’, ‘知乎文章’])
deque([‘知乎专栏’, ‘知乎动态’, ‘知乎回答’])

2.排序字典(OrderedDict)

前面所说的字典中,键(key)是无序的,我们可以用排序字典将字典变成一个有序字典,顺序是按照插入的顺序进行排列,而非对键(key)值进行排序。

#排序字典
#导入OrderDict类
from collections import OrderedDict
#定义一个字典
od = OrderedDict([('a', 1), ('b', 2), ('c', 3)])
print(od)

OrderedDict([(‘a’, 1), (‘b’, 2), (‘c’, 3)])

上面的结果是有序的。

3.计数器(Counter)

实现计数功能,比如统计单字出现的次数。

#计数器
#导入Counter类
from collections import Counter
#统计每个字出现的次数
cDict = Counter('知乎专栏知乎动态知乎回答')
print(cDict)
#统计出现最多的三个字
cDict.most_common(3)

Counter({‘知’: 3, ‘乎’: 3, ‘专’: 1, ‘栏’: 1, ‘动’: 1, ‘态’: 1, ‘回’: 1, ‘答’: 1})

Out[12]:
[(‘知’, 3), (‘乎’, 3), (‘专’, 1)]

七、踩过的坑

整体学习下来还算顺利,在导入excel表数据的时候遇到了问题,显示找不到xlrd模块。后来查资料发现这是一个读取excel文件的模块,我以为pandas包里包含了,于是重新通过conda进行xlrd模块的安装,顺利解决了问题。

关于Python学习指南

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、自动化办公等学习教程。带你从零基础系统性的学好Python!

👉Python所有方向的学习路线👈

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(全套教程文末领取)

在这里插入图片描述

👉Python学习视频600合集👈

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

在这里插入图片描述

温馨提示:篇幅有限,已打包文件夹,获取方式在:文末

👉Python70个实战练手案例&源码👈

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

👉Python大厂面试资料👈

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

在这里插入图片描述

在这里插入图片描述

👉Python副业兼职路线&方法👈

学好 Python 不论是就业还是做副业赚钱都不错,但要学会兼职接单还是要有一个学习规划。

在这里插入图片描述

👉 这份完整版的Python全套学习资料已经上传,朋友们如果需要可以扫描下方CSDN官方认证二维码或者点击链接免费领取保证100%免费

  • 24
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值