Python基础总结

Python总结目录:

  1.python简介

  2.编译型和解释型

  3.python三种运行方式

  4.变量和数据类型

  5.运算符

  6.String字符串常用功能

  7.list列表常见操作  

  8.dict字典常见操作

 

 

1.Python的简介

  简介:Python是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum(龟叔)于1989年发明, 第一个公开发行版发行于1991年。

  诞生:1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序, 即Python(TIOBE编程语言排行榜)

  作用:开发网站、后台服务、工具脚本、爬虫、数据分析、人工智能等

  特点:

    ○  优点:简单(定位:简单、优雅、明确)、代码量少(人生苦短 我用python)、功能强大(大量的第三方库)。

    ○  缺点:运行速度慢、代码不能加密。

    ○  补充:Python是一门解释型语言,类似于PHP,不同于C、C++等编译型语言

 

 

2.编译型和解释型语言

编译器是把源程序的每一条语句都编译成机器语言,并保存成二进制文件,这样运行时计算机可以直接以机器语言来运行此程序,速度很快; 

解释器则是只在执行程序时,才一条一条的解释成机器语言给计算机来执行,所以运行速度是不如编译后的程序运行的快的. 

这是因为计算机不能直接认识并执行我们写的语句,它只能认识机器语言(是二进制的形式)

 

编译型
优点:编译器一般会有预编译的过程对代码进行优化。因为编译只做一次,运行时不需要编译,所以编译型语言的程序执行效率高。可以脱离语言环境独立运行。(运行速度快)
缺点:编译之后如果需要修改就需要整个模块重新编译。编译的时候根据对应的运行环境生成机器码,不同的操作系统之间移植就会有问题,需要根据运行的操作系统环境编译不同的可执行文件。(开发效率低,不能跨平台)

解释型
优点:有良好的平台兼容性,在任何环境中都可以运行,前提是安装了解释器(虚拟机)。灵活,修改代码的时候直接修改就可以,可以快速部署,不用停机维护。(开发效率高,可以跨平台)

缺点:每次运行的时候都要解释一遍,性能上不如编译型语言。(运行速度慢)

 

 

3.Python三种运行方式

1.Python交互模式(解释器)

执行 Python 命令,就进行 Python 交互模式,提示符 >>>,输入 exit() 可退出交互模式

C:\Users\lenovo>python
Python 3.6.6 (v3.6.6:4cf1f54eb7, Jun 27 2018, 03:37:03) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> name = 'jiangxinheng'
>>> name
'jiangxinheng'
>>> exit()

C:\Users\lenovo>
解释器

好处:一下就能得到结果。

坏处:没办法保存,下次还想运行的时候,还得再敲一遍,不适合开发。

 

2.使用文本编辑器(脚本)

建议使用 sublime(ctrl+shift+b) 或者 notepad++,不要使用windows自带的记事本(会自动在文件的开头添加特殊字符,结果可能会导致错误)

a、sublime 创建Python脚本,以 .py 结尾

# -*- coding:utf-8 -*-

# 输出,使用print()
print('Hello Python')
name = 'jxh'
print(name)
脚本

  注意:如果脚本有中文,可能会报错,需要在文件的第一行添加一个编码注释

b、运行脚本

  1.cmd运行脚本 ---》python  hello.py

  2.sublime脚本中直接运行----》ctrl+shift+b  注:sublime中没有input()输入功能

 

3.使用IDE工具

  PyCharm,JetBrain公司出口

 

 

 

4.变量和数据类型

1.变量

1.变量的概念:

1.程序可操作的储存区名称

2.程序运行时,储存区中可以改变的数据

3.每个变量都有特定的类型

例如:一栋教学楼当做内存的话,教室名相当于变量名,其教室里面的学生(内部储存的内容)就是变量值
变量的概念

2.变量的作用和定义:

# 作用:将数据存放到内存

# 1.定义
变量名= 初始值     # (初始值的实际类型决定变量的数据类型)
name = '蒋新衡'

# 2.查看变量类型:type()
print(type(name))    # <class 'str'>

# 3.查看变量名内存地址:id()
print(id(name))    # 1989180256 所代表的的是它的内存地址
变量作用和定义及常用功能

3.变量的调用:

a=1
b=6
c=a+b    # 调用a和b的值相加赋予给c
print(c)    # 7

# 注意:调用变量的时候,变量事先必须定义,否则无用(会报错)
变量的调用及注意事项

4.变量的命名规范:

# 1. 必须由字母,数字,下划线组成;

# 2. 不得以数字开头(但由于python中单下划线("_")和双下划线("__")名称的变量有特殊用途,因此不推荐自定义单下划线和双下划线开头的变量) ;

# 3. 变量名尽可能见名知意:大驼峰(首字母大写)、小驼峰;

# 4. 不能是Python的关键字
变量命名规范

5.Python关键字:

import keyword  # 导入Python中所有的关键字库
print(keyword.kwlist) # 输出所有关键字--以下python所有关键字
['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
python关键字

6.常量

# 概述:常量即不变的量,比如,pi,3.1415926,或者程序运行过程中不可以更改的量
# 定义:一般常量的定义全部用大写
PI=3.14        # 定义常量
常量概述

 

2.数据类型

Python基本的数据类型:整型(int)、浮点型(float)、字符串(str)、布尔值(bool)、复数(complex)、空值(None)等...

例子:

'''数据类型:整型、浮点型、字符串、布尔、空值、复数 等 '''
# 整型int
a = 12345
print(a, type(a))  # 12345 <class 'int'>


# 浮点型float
b = 123.5
print(b, type(b))  # 123.5 <class 'float'>
# 科学计数法E/e    (浮点型)
print(314E3)  # 314000.0
print(314E-3)  # 0.314


#  字符串str,定义字符串可以使用单引号或双引号(推荐用单引号)
c = 'aaa'
print(c, type(c))  # aaa <class 'str'>

#  字符串有多行时可以使用三对单引号,表示多行内容,结果按照指定格式输出
info = '''
welcom
    to
        gaochenjiaoyu
'''
print(info, type(info))


#  布尔bool,取值:True、False
f = True
print(f, type(f))  # True <class 'bool'>

g = 5 < 3
print(g)  # False
print(5 + True)  # True表示1,False表示0


#  空值 NoneType
h = None
print(h)  # None


# 复数complex
aa = 1 + 1.5j
print(aa, type(aa))  # (1+1.5j) <class 'complex'>
print(aa.real)  # 该复数的实部    1.0
print(aa.imag)  # 该复数的虚部    1.5
print(aa.conjugate())  # 该复数的共轭复数    (1-1.5j)
数据类型

 

 

 

5.Python运算符

 

 

 

 

 

 

 

6.字符串常用功能

 

1.字符串切片([]以及切片([::])

# 注意事项:空格也算一个字符
# 元素查找:从左往右数从0开始 或者 从右往左数从-1开始
# 切片:用来截取指定索引范围的内容(字符串、集合、列表等)
name = 'love you'
print(len(name))    # 8
# 索引
print(name[0])
# 查找多个元素
print(name[5], name[len(name) - 1], name[-1])  # 获取指定值,-1代表的是倒数第一位的值    
print(name[1:4])      # 获取索引为[1,2,3]的字符,不包括4        ove
print(name[:4])      # 开始位置不写默认为 0             love
print(name[2:])      # 结束位置不写默认值为 最后一位          ve you
print(name[1:5:2])  # 索引为[1,5]的字符,每隔2位取值,包括第一位,1,3   oe
print(name[::2])      # 所有的字符,每隔2位取值--0,2,4,6        lv o        
print(name[::-1])      # 从负数取值     uoy evol
字符串切片

 

2.字符串大小写的转换

  • str.lower():转小写
  • str.upper():转大写
  • str.swapcase():大小写对换
  • str.capitalize():字符串首为大写,其余小写
  • str.title():以分割符法为标记,首字母大写,其余为小写
aa = 'I like Python'
print(aa.lower())  # 将所有大写字符转换为小写字符                i like python
print(aa.upper())  # 将所有小写字符转换为大写字符                I LIKE PYTHON
print(aa.swapcase())  # 大小写对换                        i LIKE pYTHON
print(aa.capitalize())  # #将字符串的第一个字符转换为大写,其他字母小写    I like python
print(aa.title())  # 返回标题化的字符串,每个单词的首字母大写        I Like Python
例子
#不区分大小写
input_str="AbcA"
aa=input("请输入")
if aa.lower()==input_str.lower():#都改为小写做为比较
     print("输入正确")
else:
     print("输入错误")
实现验证码功能

 

3.字符串格式输出对其

  • str.center() 返回一个原字符串居中,并使用参数填充 with 长度

  • str.ljust() 左居中

  • str.rjust() 右居中

  • str.zfill() 右居中,以0填充长度,且只有一个参数

# 字符串格式输出对齐
string = 'Hello World'
print(len(string))  # 11
print(string.center(15, '*'))  # 返回一个原字符居中,并使用‘*’填充长度 width的新字符        **Hello World**
print(string.ljust(15, '*'))  # 左对齐        Hello World****
print(string.rjust(15, '*'))  # 右对齐        ****Hello World
print(string.zfill(15))  # 右对齐,以0填充,只有一个参数        0000Hello World
例子

 

4.去除字符

  • str.lstrip()  删除字符串左边的所有空格,可指定字符参数

  • str.rstrip()    删除字符串右边的所有空格

  • str.strip()   删除字符串左右两边空格,类似于java中的trim

# 删除指定字符串
string = '***Hello World***'
print(string.lstrip('*'))  #     Hello World**
print(string.rstrip('*'))  #     **Hello World
print(string.strip('*'))  #     Hello World
例子

 

5.拆分和连接字符串

  • str.partition(str) 将字符串str分成3元素的元组(str前面,str,str后面)

  • str.rpartition(str)   类似于parttion()方法,不过是从右边开始查找

  • string.split(str="",num) 以str为分隔符拆分string,如果num有指定值,则仅分隔num+1个子字符串,str默认包含" \r,\t,\n和空格"
  • string.splitlines()  按照行('\r','\n','\r\n')分隔,返回一个包含各行作为元素的列表
  • string.join(seq)  以string作为分隔符,将seq中所有的元素(的字符串表示)合并成为一个新的字符串
# join
str = 'hello world'
print('-'.join(str))  # h-e-l-l-o- -w-o-r-l-d

# split
name = 'jiang xin'
print(name.split('n'))  # ['jia', 'g xi', '']
print(name.split('n', 1))  # ['jia', 'g xin']
print(name.splitlines())  # ['jiang xin']

# partition
print(name.partition('n'))  # ('jia', 'n', 'g xin')
print(name.rpartition('n'))  # ('jiang xi', 'n', '')
例子

 

6.查找和替换

  • string.find(str,start=0,end=len(string))       检测str是否包含在string中,如果存在则返回元素的第一次索引位置。

  • string.rfind(str,start=0,end=len(string))            类似于find(),不过是从右边开始

  • string.index(str,start=0,end=len(string))       跟find()方法类似,如果str不在string中则会报错
  • string.rindex(str,start=0,end=len(string))   类似于index(),不过是从右边开始
  • string.replace(old_str,new_str,num=string.count(old))  把string中的old_str替换成new_str,如果num指定,则替换不超过num次
  • string.startswith(str)  检查字符串是否以str开头,是则返回True
  • string.endswith(str)  检查字符串是否以str结束,是则返回True
# 字符串搜索定位与替换
string = 'Hello World'
print(string.find('l'))  # 2
print(string.rfind('l'))  # 从右开始  9
print(string.find('e', 2, 8))  # -1
print(string.index('l'))  # 2
print(string.replace('l', 'L'))  # 将所有的l转换为L    HeLLo WorLd
print(string.replace('l', 'L', 1))  # 从左往右,替换一个 'l'    HeLlo World
print(string.startswith('jxh'))  # 判断字符串是否以‘jxh’开头    False
print(string.endswith('ld'))  # 判断字符串是否以 ‘ld’结尾    True
查找和替换

 

7.判断类型(具体看例子)

# 字符串条件判断
string = 'hello world'
print(string.islower())  # 是否全是小写,当全是小写和数字一起时候,也判断为True    True
print(string.isupper())  # 是否全是大写,当全是大写和数字一起时候,也判断为True    False
print(string.isalnum())  # 是否全是由字母和数字组成的,不包括空格,并字符串至少有一个字符    False
print(string.isalpha())  # 是否全是字母,不包括空格,并字符串至少有一个字符    False
print(string.isdigit())  # 是否全是数字,不包括空格,并字符串至少有一个字符    False
print(string.istitle())  # 是否所有的单词首字母都是大写,标题                    False
print(string.isspace())  # 判断是否全是空白字符,并字符串至少有一个字符        False
例子

 

8.计数(具体看例子)

a="Life is short,I use python"
print(a.count('i'))# 返回str 在 string 里面出现的次数
#结果:2
print(a.count('i',4,8))# 在索引值为[4,8) 的范围内 str 出现的次数
#结果:1
计数

 

 

 

7.列表常见操作

序号分类关键字/函数/方法说明
1    增加    列表.insert(索引,数据)   在指定位置插入数据
 列表.append(数据) 在末尾追加数据 
列表.extend(列表2)  将列表2的数据追加到列表 
2      删除      del 列表[索引]  删除指定索引的数据 
 列表.remove[数据] 删除第一个出现的指定数据 
列表.pop () 删除末尾数据 
列表.pop(索引)  删除指定索引数据
 列表.clear() 清空列表 
修改  列表[索引] = 数据  修改指定索引的数据 
查找   列表[索引]  从列表中取值 
 列表.index(数据) 获得数据第一次出现的索引位置 
5    排序    列表.sort()  升序排序(按照ascii码来进行排序) 
列表.sort(reverse=True)  降序排序(按照ascii码来进行排序) 
列表.reverse()  逆序、反转 
6   统计   len(列表)  列表长度 
列表.count(数据)  数据在列表中出现的次数 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1.增加:

apend()、extend()、insert()

  • 1)append():追加元素,增加到最后
nums = [1,2,3,4]
nums.append(5)
print(nums)    # [1,2,3,4,5]
View Code
  • 2)extend():迭代的去增加
li = ['hengyang', 'changsha', 'shaoyang']
li2 = ['shenzheng', 'shanghai']
li.extend(li2)
print(li)  # ['hengyang', 'changsha', 'shaoyang', 'shenzheng', 'shanghai']
View Code
  • 3)insert():在指定位置索引前插入元素
li = ['a', 'b', 'c', 'd']
li.insert(1, [1, 2, 3, 4])
print(li)  # ['a', [1, 2, 3, 4], 'b', 'c', 'd']
View Code

 

2.删除:

pop()、del、remove()、clear()

  • 1)pop():弹出元素
li = ['a', 'b', 'c', 'd']
li.pop()  # 如果没有指定索引位置,则默认是弹出最后一个元素
print(li)  # ['a', 'b', 'c']

li.pop(0)  # 弹出索引为0的元素
print(li)  # ['b','c']
pop()
  • 2)del:删除元素
li = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
del li[2]
print(li)  # ['a', 'b', 'd', 'e', 'f', 'g']

# 注:如果直接del li,将会直接把这个列表给删除,再次使用则报错:name 'li' is not defined
del
  • 3)remove():从左往右,删除第一次出现的字符
li = ['a', 'b', 'c', 'b', 'e', 'b']
li.remove('b')
print(li)  # ['a', 'c', 'b', 'e', 'b']
remove()
  • 4)clear():清空列表
li = ['a', 'b', 'c', 'b', 'e', 'b']
li.clear()
print(li)  # []
clear()

 

3.修改:

li = ['a', 'b', 'c']
li[0] = 'aa'
print(li)  # ['aa', 'b', 'c']

# 利用切片
li[1:3] = ['bb', 'cc']
print(li)  # ['aa', 'bb', 'cc']
修改

 

4.查找:

列表[索引] 、index()

li = ['b', 'a', 'c', 'a', 'd']
print(li[0])  # a

# index():返回a第一次出现的位置
print(li.index('a'))  # 1

# 指定索引位置
print(li.index('a', 2, len(li) - 1))  # 3
查找

 

5.排序:

sort()、reverse()、切片

# 升序
li = ['b', 'a', 'c', 'e', 'd']
li.sort()  # 按照ascii码来进行(升序排序--》从小到大)
print(li)  # ['a', 'b', 'c', 'd', 'e']

# 降序
li.sort(reverse=True)  # 按照ascii码来进行(降序排序--》从大到小)
print(li)  # ['e', 'd', 'c', 'b', 'a']

# 逆序
li.reverse()  # 逆序、反转
print(li)  # ['a', 'b', 'c', 'd', 'e']

# 切片逆序
print(li[::-1])  # ['e', 'd', 'c', 'b', 'a']
排序

 

6.统计:

len() 、count()

li = ['b', 'a', 'b', 'c']
print(len(li))  # 查看列表li的长度    4
print(li.count('b'))  # 统计字符 b 在列表li中出现的次数    2
统计

 

 

 

8.字典常见操作

序号 分类 函数/方法 描述
增加 字典[key]=value key不存在,新增;key存在,修改
字典.setdefult(key,value) key不存在,新建键值对;key存在,不会修改
字典.update(字典2) 将字典2的数据合并到字典1;键相同时,字典2覆盖字典1键值
删除 del 字典[key] 根据key,删除指定键值对,key不存在则会报错
字典.pop(key) 根据key,弹出指定键值对,key不存在则会报错
字典.popitem() 随机删除一个键值对
字典.clear() 清空字典
更改  字典[key]=value  key不存在,新增;key存在,修改 
④   查找  字典[key]  key不存在,报错;key存在,返回对应的value 
字典.get(key)  可以从字典中取值,key不存在不会报错 
⑤   字典的项    字典.keys()   所有key列表
 字典.values() 所有value列表 
字典.items()  所有(key,value)元组列表 
⑥   长度 len(字典)  计算字典的长度 
⑦  转换  str(字典)  字典转换成字符串输出 

 

 

 

 

 

 

 

posted @ 2019-04-10 10:09  下一站守候丶  阅读(462)  评论(0)    收藏  举报