python基础

 

1.前言

1.1 python起源

1999年,创始人:吉多

1.2 解释器

编译型语言:程序员开发完成后,统一交给编译器,编译器统一变异为可执行语言(执行速度快)

解释型语言:解释器从上到下逐一读取每行代码,读取一行,翻译一行,执行一行(执行速度较慢,跨平台能力较强)

1.3 python的设计目标

简单、可读性强、开发速度快

1.4 python的设计哲学

优雅、明确、简单

1.5 为什么选择python

代码量少

1.6 python的特点

  • 完全面向对象(思维方式)的语言

  • 有一个强大的标准库

  • python社区提供了大量的第三方模块

1.7 python的优缺点

优点:可扩展性

2.第一个python程序

2.1源程序

特殊格式的文本文件,文件扩展名.py

2.2执行python程序的三种方式

  • python的解释器:python xxx.py # python2.X解释器 python3 xxx.py # python3.X解释器

  • 交互式运行python程序:终端中运行

    适合学习/验证python语法或者局部代码,代码不能保存,不适合运行太大的程序

    退出解释器:exit() 或者使用ctrl+D

  • IPython:python的交互式shell,支持自动补全,支持自动缩进,支持bash shell命令,内置很多功能和函数

2.3 python的IDE(集成开发环境)--PyCharm

2.4 文件名只使用小写字母、数字和下划线;不能使用数字开头

2.5 注释

  • 单行注释:# 后边增加一个空格,再编写响应注释

    代码后面增加注释,注释和代码之间至少要有两个空格

  • 多行注释:

    # 单行注释1
    print("Hello")  # 单行注释2
    """
    多行注释
    第二行
    """
    '''
    多行注释
    第二行
    '''

    2.6算术运算符

加、减、乘(*)、除(/)、取余(%)、取整除(//)、幂(**)

乘法*运算符可应用于字符串,计算结果就是字符串重复制定次数的结果

print("对不起" * 3)

结果:对不起对不起对不起

3.程序的执行

4.变量的输入输出

4.1不同变量之间的计算

1)数字型变量可以直接计算

数字型变量可直接进行算术运算符计算,布尔型变量,true代表1,false代表0

2)字符串变量之间使用+拼接字符串

字符串之间使用+拼接生成一个新的字符串

3)字符串变量可以和整数使用*重复拼接相同的字符串

4)数字型变量和字符串之间不能进行其他计算

5)两个字符串之间不能直接用乘法计算

4.2变量的输入(用代码获取用户通过键盘输入的信息)

1)关于函数

函数

说明

备注

print(x)

将X输出到控制台

默认会换行

print("*", end= "")  # 不会换行

type(x)

查看x的变量类型

 

2)input函数实现键盘输入

函数

说明

input("请输入数字1")

实现键盘输入,用户输入的任何内容都认为是一个字符串

语法:字符串变量=input("请输入数字:")

3)类型转换函数

函数

说明

int(x)

将X转换成一个整数

float(x)

将X转换成一个浮点数

4.3变量的格式化输出

包含%的字符串,被称为格式化字符串

格式化字符串

含义

%s

字符串

%d

有符号十进制,%06d表示输出的整数显示位数,不足的地方使用0补全

%f

浮点数,%.2f表示小数点后只显示两位

%%

输出%

语法:

print("格式化字符串%s" % 变量1)

4.4变量的命名

1)标识符和关键字

标识符:可以由字母、下划线和数字组成,不能以数字开头,不能与关键字重名

关键字:python内部已经使用的标识符,具有特殊含义和功能

2)变量的命名规则

命名规则可以被视为一种惯例,并无绝对与强制,目的是为了增加代码的识别和可读性

建议:每个单词都是用小写字母,单词与单词之间使用下划线(_)链接

5.判断语句

5.1 判断语句

基本语法格式:

if 条件1:
  条件1满足执行的代码
elif 条件2:
  条件2满足执行的代码
else:
  其他条件不满足执行的代码

if的嵌套格式:同时判断多个条件,所有的条件是平级的

if 条件1:
  if 条件2:
    条件1&条件2满足执行的代码
elif 条件3:
  条件3满足执行的代码
else:
  其他条件不满足执行的代码

5.2 关系运算符:

运算符

描述

==

检查两个操作数的值是否 相等,如果是,则条件成立,返回 True

!=

检查两个操作数的值是否 不相等,如果是,则条件成立,返回 True

>

检查左操作数的值是否 大于 右操作数的值,如果是,则条件成立,返回 True

<

检查左操作数的值是否 小于 右操作数的值,如果是,则条件成立,返回 True

>=

检查左操作数的值是否 大于或等于 右操作数的值,如果是,则条件成立,返回 True

<=

检查左操作数的值是否 小于或等于 右操作数的值,如果是,则条件成立,返回 True

5.3 逻辑运算符:可以把多个条件按照逻辑进行连接,变成更复杂的条件

包括:与and 、或or、非not 三种

Pycharm快捷键

Tab键:增加缩进

Tab键+shift:减少缩进

ctrl+/ :增加注释

随机数

import random
random.randint(a,b)  # 返回a、b之间的整数,包含a、b

 

6.循环

6.1程序的三大流程:顺序、分支、循环

6.2while循环&循环嵌套

i=1
while i<=3:
  print(i)
  while i<2:
    print("123")
  i=i+1

break和continue是专门在循环中使用的关键字,只针对当前循环生效

  • break 某一条件满足时,退出循环,不再执行后续重复的代码

  • continue 某一条件满足时,不执行后续重复代码

赋值运算符:+=,-=,*=,/=,%=, //=,**=

转义字符:

\t:在控制台输出一个制表符,协助在输出文本时 垂直方向 保持对齐

\n:在控制台输出一个换行符

7.函数

7.1定义函数的格式如下:

def hanshuming():
  """
  函数封装的代码
  """
  pass

函数名称:应该能够表达函数邓庄代码的功能,方便后续的调用

函数名称的命名规则:数字、字母与下划线组成,不能使用数字开头,不能使用关键字

7.2使用模块中的函数

模块是Python程序架构的一个核心概念

  • 模块好比是工具包,要想使用这个工具包中的工具,就需要导入import这个模板

  • 每一个以扩展名py结尾的python源代码文件都是一个模块

  • 在模块中定义的全局变量、函数都是模块能够提供给外界直接使用的工具

8.高级变量类型

python中数据类型可以分为数字型和非数字型

数字型:整型(int)、浮点型(float)、布尔型(bool)、复数型(complex):主要用于科学计算,如平面场问题、波动问题等

非数字型:字符串、列表、元祖、字典

在python中,非数字型变量都支持一下特点:

  • 都是一个序列,也可以理解为容器

  • 取值[]

  • 遍历for in

  • 计算长度、最大/小值、比较、删除

  • 链接 + 和重复 *

  • 切片

8.1 列表

列表(list)是python中使用最频繁的数据类型,在其他语言中通常叫做数组。通常用于存储一串信息,用 [ ] 定义,数据之间使用 , 分隔

  • 列表的索引从0开始(索引就是数据再列表中的位置编号,索引又可以被称为下标)

  • 注意:从列表中取值时,如果超出索引范围,程序会报错

  • 定义列表:name_list = []

列表常用操作:

序号

分类

关键字 / 函数 / 方法

说明

1

增加

列表.insert(索引, 数据)

在指定位置插入数据

列表.append(数据)

在末尾追加数据

列表.extend(列表2)

将列表2 的数据追加到列表

2

修改

列表[索引] = 数据

修改指定索引的数据

3

删除

del 列表[索引]

删除指定索引的数据

列表.remove[数据]

删除第一个出现的指定数据

列表.pop

删除末尾数据

列表.pop(索引)

删除指定的索引数据

列表.clear

清空列表

4

统计

len(列表)

列表长度

列表.count(数据)

数据在列表中出现的次数

5

排序

列表.sort()

升序排序

列表.sort(reverse=True)

降序排序

列表.reverse() |

逆序、反转

列表遍历:for 循环内部使用的变量 in 列表

list_param = ["1","2"]
for i in list_param:      
   print(i)

 

关键字、函数和方法

关键字是python内置的、具有特殊意义的标识符,关键字后面不需要使用括号

函数封装了独立功能,可以直接调用,函数需要死记硬别,记住函数名称。如:函数名(参数)

方法和函数类似,同样是封装了独立的功能,方法需要通过对象来调用,表示针对这个对象要做的操作,如:对象.方法名(参数)

8.2 元组

Tuple(元组)与列表类似,不同之处在于元组的元素不能修改

  • 元组表示多个元素组成的序列

  • 用于存储一串信息,数据之间用 , 分隔

  • 元组用 () 定义

  • 元组的索引(数据在元组中的位置编号)从0开始

元组中只有一个元素时,需要再元素后面添加逗号

info_tuple = () # 创建空元组
info_tuple = ("1", "2") # 创建空元组
info_tuple[0]  # 取值
info_tuple.index("2")  # 已知数据的内容,希望知道该数据在元组中的索引
info_tuple.count("2")  # 统计出现的次数
len(info_tuple) # 统计元组中包含元素的个数

循环遍历:for 循环内部使用的变量 in 列表

list_param = ("1","2")
for i in list_param:      
   print(i)

在python中,可以使用for遍历循环所有非数字型类型的变量:列表、元组、字典以及字符串

提示:在实际开发中,除非能够确认元组中的数据类型,否则针对元组的循环遍历需求并不是很多

应用场景:

  • 函数的参数和返回值,一个函数可以接受任意多个参数,或者一次返回多个数据

  • 格式字符串,格式化字符串后边的 () 本质上就是一个元组

  • 让列表不可以被修改,以保护数据安全

# 格式化字符串
info = ("zhangsan",18)
print("%s 的年龄是 %d" % info)

元组和列表之间的转换

  • 使用list函数可以把元组转换成列表

    list(元组)
  • 使用tuple函数可以把列表转换成元组

    tuple(列表)

8.3 字典

字典是除了列表以外python中最灵活的数据类型,用来存储多个数据,通常用于存储描述一个物体的相关信息

  • 字典无序的对象集合,列表是有序的对象集合

  • 字典以 { } 定义

  • 字典使用键值对存储数据,键值对之间使用 ,分隔,键和值之间使用 :分隔

  • 键key:是索引,必须是唯一的,只能使用字符串、数字或元组

  • 值value :数据,可以是任何数据类型

常用操作:

dic_info={
         'name':'小明',
         'age':18,
         'gender':True
         }
# 取值    如果指定的key不存子啊,程序会报错
dic_info["name"]

# 增加或修改    如果key不存在,会新增键值对;如果key存在,会修改已经存在的键值对
dic_info["name"] = "小小"
dic_info["firstname"] = "小"

# 删除 删除时,如果key不存在,程序会报错
dic_info.pop("name") 

# 统计键值对数量
len(dic_info)

# 合并字典  如果合并的字典中包含已经存在的键值对,会覆盖原有的键值对
temp_dict = {"weight":90}
dic_info.update(temp_dict)

# 清空字典
dic_info.clear()

# 循环遍历
for k in dic_info:
  print("%s-%s" % (k, dic_info[k]))

应用场景:将多个字典放在一个列表中,再进行遍历

xiaoming = [
    {'name':'小明',
     'age':18,},
    {'gender':True,
     'height':1.75}
]
for xiaoming_info in xiaoming:
    print(xiaoming_info)

8.4 字符串

字符串是一串字符,字符串是 Python 中最常用的数据类型。我们可以使用引号 '或" 来创建字符串,一般都使用"定义

  • 实际开发中,如果字符串内部需要使用",可以使用'来定义字符串。如果字符串内部需要使用’,可以使用"来定义字符串

  • 可以使用索引获取指定位置的字符,索引从0开始。可以使用for循环遍历每一个字符

str = "hello hello"
# 统计字符串长度
len(str)
# 统计某个小(子)字符串出现的次数
str.count("llo")
# 获得子字符串第一次出现的索引
str.index("llo")

常用操作:

1)判断类型-9

2)查找和替换-7

str = "hello world"
str.startswith("hello")
str.endswith("world")
# index方法指定的字符串不存在会报错,find方法会返回-1
str.find("llo")
str.find("adc")

str.replace("world","python")

 

3)大小写转换-5

5)去除空白字符-3

 

7)切片

#字符串切片(切片方法适用于字符串、列表、元组)
str="0123456789"
#截取从2~5位置的字符串
print(str[2:6])
#截取从2~末尾的字符串
print(str[2:])
#截取从开始~5位置的字符串
print(str[:6])
#截取完成的字符串
print(str[:])
#从开始位置,每隔1个字符截取字符串
print(str[::2])
#从索引1开始,每隔1个取一个
print(str[1::2])
#截取从2~末尾-1的字符串
print(str[2:-1])
#截取字符串末尾两个字符
print(str[-2:])
#字符串逆序输出
print(str[::-1])

9.公共方法

9.1内置函数

内置函数:不需要import 关键字导入任何模块,可以通过函数名直接调用的函数

函数

描述

备注

len(item)

计算容器中元素的个数

可以统计列表或者元组中元素的个数,字符串中字符的个数,字典中键值对的个数

del(item)

删除变量

del有两种方式:1、在del后跟上空格 2、del后跟上括号

max(item)

返回容器中元素最大值

如果是字典,只针对key比较,不对值进行比较

min(item)

返回容器中元素最小值

如果是字典,只针对key比较,不对值进行比较

9.2切片

描述

python表达式

结果

支持的数据类型

切片

"0123456789"[::-2]

"97531"

字符串、列表、元组

9.3运算符

运算符

python表达式

结果

描述

支持的数据类型

+

[1,2]+[3,4]

[1,2,3,4]

合并

字符串、列表、元组

*

["hi"]*4

["hi","hi","hi",:"hi"]

重复

字符串、列表、元组

in

3 in (1,2,3)

True

元素是否存在

字符串、列表、元组、字典

not in

4 not in (1,2,3)

True

元素是否不存在

字符串、列表、元组、字典

> >= ==< <=

(1,2,3) <(2,2,3)

True

元素比较

字符串、列表、元组

  • in 在对字典操作时,判断的是 字典的键

  • in和not in 被称为 成员运算符

运算符

描述

实例

in

如果在指定的序列中找到值返回True,否则返回False

3 in (1,2,3,) 返回True

not in

如果在指定的序列中没有找到值返回True,否则返回False

3 not in (1,2,3,) 返回False

9.4 for循环

for关键字下方再增加 else 关键字,else下方保证集合内部所有的元素遍历完成才会执行,一旦在循环体内部使用了break退出循环,else下方的代码就不会被执行

在python 中完整的for循环语法如下:

'''
for 变量 in 集合
   循环体代码
else:
   没有通过 break 退出循环,循环结束后,会执行的代码
  
'''

for num in [1,2,3]:
    print(num)
    if num ==2:
       break
else:
# 如果循环体内部使用break 退出了循环, else下方的代码就不会被执行
    print("会执行吗?")
print("循环结束")

10 变量引用

10.1 引用

变量和数据 是分开存储在内存中的;数据 保存在内存中的一个位置,变量 中保存着数据在内存中的地址。

变量记录数据的地址,就叫 引用

  • 使用 id() 函数可以查看变量中保存数据所在的 内存地址

  • 如果变量已经被定义,当给一个变量赋值的时候,本质上是 修改了数据的引用

    • 变量 不再 对之前的数据引用

    • 变量 改为 对新赋值的数据引用

引用的应用场景:函数调用、函数的返回

10.2 可变和不可变类型

不可变类型:内存中的数据不允许被修改

  • 数字类型:int、bool、float、complex、long(2,x)

  • 字符串:str

  • 元组:tuple

可变类型:内存中的数据可以被修改,数据的变化是通过方法来实现的

  • 列表:list

  • 字典:dict(字典的key只能使用不可变类型的数据)

如果给一个可变类型的变量赋值了一个新的数据,引用会修改,变量不再对之前的数据引用,改为对新赋值的数据引用

10.3 哈希(hash)

10.4 局部变量和全局变量

在函数内部定义的变量,不能再其他位置使用

局部变量的生命周期(被创建到被系统回收的过程)

  • 局部变量在函数执行时才会被创建

  • 函数执行结束后 局部变量 被系统回收

  • 局部变量在生命周期 内,可以用来存储 函数内部临时使用到的数据

全局变量是在函数外部定义的变量,所有函数内部都可以使用这个变量

提示:在其他的开发语言中,大多不推荐使用全局变量--可变范围太大,导致程序不好维护

在函数内部,可以通过全局变量的引用获取对应的数据,但是不允许直接修改全局变量的引用(使用赋值语句修改全局变量的值)

num=10
def demo():
  global num    # 函数内使用全局变量
  num = 100
  print(num)
demo()

全局变量命名:g_num

 

https://learnku.com/docs/python-tutorial/3.7.0/appetite/3503

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值