Python基础

Python基础

变量和数据类型

数据类型

在计算机程序中,我们通常需要处理各种各样的数据,不同的数据对应不同的数据类型。

Python支持的数据类型包括:

基本数据类型:

数据类型 描述 举例
int 整型 1、-5、100
float 浮点型(小数) 3.14、-0.5、1.0
bool(True 1 False 0) 布尔型 True、False
complex 复数型 1+2j、-3+4j

高级数据类型

数据类型 描述 举例
str 字符串 "Hello"
list 列表 [1, 2, 'a', True]
tuple 元组 (1, 2, 'a', True)
set 集合 {1, 2, 3, 4}
dict 字典 { 'name': 'John', 'age': 25, 'city': 'BJ' }

变量

变量定义

变量 是用来描述计算机中的数据存储空间的,我们可以通过变量来保存定义的数据

变量名 = 变量值

python 复制代码
# 定义整型变量
age = 30
# 定义浮点类型变量
score = 70.5
# 定义布尔类型变量
b = True
# 定义字符串类型变量
name = '张三'

可以通过type()函数获取变量类型

python 复制代码
name = '张三'
# 获取变量类型
t = type(name)

Python是动态类型语言,变量类型可以通过赋值进行修改

python 复制代码
# 定义整型变量
age = 30
# 修改成浮点类型变量
age = 70.5
变量的命名规则

变量名的定义需要遵守下面的规则:

  1. 只能由数字、字母、_(下划线)组成
  2. 不能以数字开头
  3. 不能是关键字
  4. 区分大小写

Python中的关键字包括:

如下这些变量名都是不合法的:

python 复制代码
a-b = "aaa"
itcast.cn = '李四'
123abc = "haha"
for = 123
变量的命名规范

为了让我们代码更加简洁易懂,还需要遵守下面的命名规范

  1. 下划线命名法
python 复制代码
student_name = '张三'
  1. 驼峰命名法
python 复制代码
# 大驼峰命名法
StudentName = '张三'
# 小驼峰命名法
studentName = '李四'

算术运算符

数值之间

数值之间的操作用到的运算如如下:

运算符 描述
+
-
*
/
// 取整除
% 取余数
**

数值型变量之间可以直接计算

a=5
b=2
print(a+b)#7
print(a-b)#3
print(a*b)#10
print(a/b)#2.5 注意不是整除了
print(a//b)#2 两条是整除
print(a%b)// 1
print(a**b) //25
字符串之间

字符串之间使用+拼接字符串

python 复制代码
str1 = 'hello'
str2 = 'world'
str3 = str1 + str2
print(str3)

输出结果:

helloworld
整形和字符串

字符串变量和整型使用*,用于重复拼接相同的字符串

python 复制代码
str = 'hello'
s = str*5
print(s)

输出结果:

hellohellohellohellohello

数值变量和字符串不能进行其它计算

python 复制代码
str = 'hello'
a = 10
# 错误,字符串和数字不能直接相加
result = str+a
print(result)

输入与输出

输出函数

程序可以通过输出函数将程序执行的数据输出到控制台

Python中的输出函数是print()

python 复制代码
# 直接输出数据
print(10)
name = '张三'
# 输出变量
print(name)
# 输出多个数据和变量
print(10,name)
age=19
print("年龄为age",age)
#使用占位符
print("年龄为%d岁" % age)
a=10
b=20
# 有多个参数,用()隔开
print("%d %d" % (a,b))

# 使用占位符{}
i=1
j=10
print("{}*{}={}".format(i,j,i*j)) #1*10=10

print默认是换行的,使用end改变默认的end='\n'

print("hello",end=' ')
print("world")

打印结果:

hello world

输入函数

输入函数用来接收用户从控制台输入的数据

Python中的输入数是input()

python 复制代码
# 输入年纪
age = input('请输入年纪')
print(age)

input输入的数据都为str字符串类型

python 复制代码
# 输入年纪
age = input('请输入年纪')
# 获取age类型
t = type(age)
print(t)

输出结果:

<class 'str'>

可以使用int()将输入的数据转换成int类型

age=input("请输入年龄")
print(age,type(age))#str
age=int(age)
print(age,type(age))#int

常见运算符

赋值运算符

赋值运算符主要用来对变量进行赋值,包括如下这些:

运算符 描述
= 赋值
+= 加等于
-= 减等于
*= 乘等于
/= 除等于
//= 整除等于
%= 模等于
**= 幂等于

实例如下:

python 复制代码
a = 10
a += 5 # 等价于  a = a+5
a *=2 # 等价于 a  = a*2

比较运算符

比较运算符主要用来比较两个数据的大小,包括如下这些:

运算符 描述
== 等于
!= 不等于
> 大于
< 小于
>= 大于等于
<= 小于等于

逻辑运算符

逻辑运算符主要用在布尔类型的数据,返回结果还未布尔型数据,包括如下:

运算符 描述
and 逻辑与
or 逻辑或
not 逻辑非
and逻辑与

必须两个都为True才返回True

python 复制代码
r = True and True
print(r)
r = True and False
print(r)

结果:

True
False
or逻辑或

只要两个中有一个为True结果就为True

python 复制代码
r = True or False
print(r)
r = False or False
print(r)

结果:

True
False
not逻辑非

取反操作

python 复制代码
r = not True
print(r)
r = not False
print(r)

结果:

False
True

条件判断语句

if 语句

if语句格式:

if 条件:
    条件成立时,要做的事情
    ......

判断年龄

需求:

  1. 定义一个整数变量记录年龄
  2. 判断是否满 18 岁 (>=)
  3. 如果满 18 岁,允许进网吧嗨皮
    代码如下:
python 复制代码
age = int(input('请输入你的年纪:'))
# if判断
if age >= 18:
    print('允许进网吧嗨皮')

注意:Python中没有大括号{},通过缩进代表作用域

if...else...语句

有些情况我们希望满足条件执行相应的代码,不满足条件执行其他的代码,这就需要用到if else语句
if ... else...语句格式

if 要判断的条件:
    条件成立时,要做的事情
    ......
else:
    条件不成立时,要做的事情
    ......

判断年龄

需求:

  1. 输入用户年龄
  2. 判断是否满 18 岁 (>=)
  3. 如果满 18 岁,允许进网吧嗨皮
  4. 否则(未满 18 岁),提示回家写作业
    代码如下:
python 复制代码
age = int(input('请输入你的年纪:'))
# if判断
if age > =18:
    print('允许进网吧嗨皮')
else:
    print('回家写作业')

if ...elif... else语句

一对 if 和 else 可以让代码执行出 两种不同的结果

但开发中,可能希望 并列的执行出多种结果,这时就可以使用 elif
if ...elif... else格式

if 条件1:
    条件1满足执行的代码
    ......
elif 条件2:
    条件2满足时,执行的代码
    ......
elif 条件3:
    条件3满足时,执行的代码
    ......
else:
    以上条件都不满足时,执行的代码
    ......

扩展知识:
eval()函数的作用是将一个字符串当作Python代码进行解析和执行。它接受一个字符串作为参数,并将该字符串解析为一个表达式,并返回表达式的计算结果。

python 复制代码
result = eval('2 + 3 * 4')  # 14

x = 5
eval('x = x + 1')
print(x)  # 6

需要注意的是,由于eval()函数的功能是执行字符串中的代码,它可能会带来一些安全风险。如果接受用户输入作为eval()函数的参数,请确保对输入进行验证和过滤,以防止恶意代码执行或潜在的安全漏洞。在使用eval()函数时要谨慎,并确保只执行可信任的代码。

循环

while循环

# 1.定义循环变量
i = 1
# 2.使用while判断条件
while i <= 10000:
    # 要重复执行的代码
    print('hello')
    # 3.修改循环变量
    i += 1

打印九九乘法表

row=1 #行
col=1 #列
while row<=9:
    while col<=row:
        print("%d*%d=%d" %(col,row,col*row),end='\t')

        col+=1
    print()
    col=1
    row+=1

for循环

for循环的主要作用是遍历数据(容器))中的元素。字符串、列表等高级数据类型都属于容器,都可以通过for循环遍历

for循环的语法格式如下:

for 临时变量 in 列表或字符串等可迭代对象:
	执行的代码

需求:

打印字符串'hello world'中每一个字符

str = 'hello world'
# ele普通变量  接收容器中的元素
for s in str:
    print(s)
in和not in

in 操作符用于判断元素是否存在于容器中,如果在容器中,返回 True,否则返回 False

str = 'hello'
result = 'h' in str
print(result) #True
result = 'e' not in str
print(result) #False
range区间

range() 可创建一个整数列表。range()相当于数学中的左闭右开区间(包含左,不包含右)

我们先看看数学中的区间:

全开全闭区间

  • 开区间:(1,10) 不包含1和10
  • 闭区间:[1,10] 包含1和10

半开半闭区间

  • 左开右闭区间:(1,10] 包含10不包含1
  • 左闭右开区间:[1,10) 包含1不包含10

range的定义

# 定义0到10的区间(包含0,不包含10) [0,10)
arr = range(0, 10)

如果区间从0开始可以省略0

# 定义0到10的区间(包含0,不包含10)
arr = range(10)

倒序的区间定义

python 复制代码
# 定义从10到1的区间,参数分别代表 start开始, stop结束, step步长
arr = range(10, 0, -1)

区间可以通过for进行遍历

# 定义0到10的区间(包含0,不包含10)
arr = range(0, 10)
# 遍历区间
for ele in arr:
    print(ele)
break和continue

**break****continue**是专门在循环中使用的关键字

  • break:某一条件满足时,不再执行循环体中后续代码,并退出循环
  • continue:某一条件满足时,不再执行本次循环体中后续代码,但进入下一次循环判断
循环结合 else

循环也可以像if语句一样结合else

else 中的语句会在循环正常执行完(即没有通过 break或其他异常情况中断循环)的情况下执行,while循环也是如此

格式:

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

**for else,**会执行else中的代码

str = 'hello world'

for ele in str:
    print(ele)
else:
    print('执行了else语句')

**for else中执行了continue,**会执行else中的代码

for ele in str:
    if ele == 'l':
        continue
    print(ele)
else:
    print('执行了else语句')

**for else中执行了break,**else语句不会执行

for ele in str:
    if ele == 'l':
        break
    print(ele)
else:
    print('else语句不会执行')

高级数据类型

list列表

列表 是 Python 中使用 最频繁 的数据类型,专门用于存储 一串 数据,存储的数据 称为 元素

列表的类型是:list

列表的定义

列表用[]定义,元素之间用逗号,分隔

python 复制代码
namesList = ['林青霞','张曼玉','胡慧中']
访问列表的元素

查找列表中元素是按照列表索引进行查找的。索引 就是元素在 列表 中的位置编号,又可以被称为 下标

索引是从0开始的,例如:第一个元素,索引就为0

python 复制代码
namesList = ['林青霞','张曼玉','胡慧中']
# 获取第二个人
name = namesList[1]
print(name)
遍历列表

可以通过for遍历列表中的元素

python 复制代码
namesList = ['林青霞','张曼玉','胡慧中']
# 遍历列表
for name in namesList:
    print(name)
列表的操作

列表可以增加新的元素,删除元素,修改元素。还可以对列表进行排序等操作

增加元素

通过append增加新元素

python 复制代码
namesList = ['林青霞','张曼玉','胡慧中']
# 增加高圆圆
namesList.append('高圆圆')
print(namesList)

结果:

python 复制代码
['林青霞', '张曼玉', '胡慧中', '高圆圆']

删除元素

①通过pop删除指定索引元素,返回删除的内容

python 复制代码
namesList = ['林青霞','张曼玉','胡慧中']
# 删除张曼玉
namesList.pop(2)
print(namesList)
# ['林青霞','张曼玉']

②通过remove方法删除指定内容元素

python 复制代码
namesList = ['林青霞','张曼玉','胡慧中']
# 删除张曼玉
namesList.remove('张曼玉')
print(namesList)

结果:

['林青霞', '胡慧中']

修改元素

通过 列表[索引]=新数据 修改元素

python 复制代码
namesList = ['林青霞','张曼玉','胡慧中']
# 将张曼玉修改成高圆圆
namesList[1] = '高圆圆'
print(namesList)

结果:

['林青霞', '高圆圆', '胡慧中']

查询

①通过 列表[索引] 获取元素

python 复制代码
namesList = ['林青霞','张曼玉','胡慧中']
# 查找第二个元素
ele = namesList[1]
print(ele)

结果:

张曼玉

②通过 列表.index(元素值) 查找元素的索引

python 复制代码
namesList = ['林青霞','张曼玉','胡慧中']
# 查找元素张曼玉的索引
index = namesList.index('张曼玉')
print(index)

结果:

1
列表的排序

通过 列表.sort() 对列表进行升序排序

python 复制代码
ageList = [90,10,30,20,50,70]
# 从小到大 升序
ageList.sort()
print(ageList)

结果:

[10, 20, 30, 50, 70, 90]

通过 列表.sort(reverse=True) 对列表进行降序排序

python 复制代码
ageList = [90,10,30,20,50,70]
# 从大到小 降序排序
ageList.sort(reverse=True)
print(ageList)

结果:

[90, 70, 50, 30, 20, 10]

通过 列表.reverse() 对列表进行反转

python 复制代码
ageList = [90,10,30,20,50,70]
# reverse 将列表进行反转
ageList.reverse()
print(ageList)

结果:

[70, 50, 20, 30, 10, 90]
列表的嵌套

列表中的元素可以是列表类型的数据,就称为列表的嵌套

嵌套列表的定义:

python 复制代码
students = [
    ['林青霞','狄龙','郑少秋'],
    ['张曼玉','梁朝伟']
]

查询元素

python 复制代码
# 查询郑少秋
student = students[0][2]

修改元素

python 复制代码
# 修改张曼玉位高圆圆
students[1][0] = '高圆圆'

字符串分割成列表

python 复制代码
str="1|2|3|4"
lst=str.split("|")
print(lst,type(lst))

列表拼接成字符串

python 复制代码
# 1 2 3 4
str2=" ".join(lst)
print(str2)

tuple元组

Python的元组与列表类似,也是容器的一种,不同之处在于元组的元素不能修改

  • 用于存储 一串 数据,元素之间使用 , 分隔
  • 元组的索引从 0 开始
  • 元组的类型:tuple
元组的定义

元组用 () 定义

names_tuple = ('林青霞','张曼玉','胡慧中')

注意:一个元素的元组定义需要在元素后加上,

# 错误定义方式 ❌
names_tuple = ('林青霞')
# 正确定义方式 ✅
names_tuple = ('林青霞',)
自动组包

t的类型是元组类型,这就是元组的自动组包特征

t = '张三','李四','王五'
自动解包
t = ('张三','李四','王五') #定义元组
name1,name2,name3 = t
print(name1,name2,name3)
交换数据
a=10
b=20
b,a=a,b

让列表不可修改

有时我们传递列表数据给别人使用,希望别人不要修改列表

可以把列表转换成元组,这样就变成了不可变的数据

python 复制代码
lst = [10, 20, 30]
# 将列表转换成元组
tp = tuple(lst)

# 不可执行如下类似操作
tp[0] = 111
tp.append(222)

如果运行执行会报出如下错误:TypeError: 'tuple' object does not support item assignment

函数

函数定义
def fun():
    print("hello world")

fun() #函数调用

def fun():
    """
    这是函数的文档注释
    :return: 
    """
    print("hello world")

fun()
函数多返回值

函数可以返回多个结果

python 复制代码
def calc(a, b):
    '''
    求a+b以及a-b的结果
    :param a:
    :param b:
    :return: 结果的元组
    '''
    sum = a + b
    sub = a-b
    return sum, sub

上面函数同时返回了两个数的和以及两个数的差

返回的结果会自动组包成为一个元组数据,接收的时候可以分别接收sum、sub

python 复制代码
# 分别接收和以及差
sum, sub = calc(10, 20)
函数的四种类型

函数按照是否有参数以及返回值可以将函数分成四种类型

无参无返回值

python 复制代码
def say_hello():
    print('hello')

无参有返回值

python 复制代码
import random
def get_temp():
    return random.randint(0,100)

有参无返回值

python 复制代码
def say_hello(name):
    print('hello %s'%name)

有参有返回值

python 复制代码
def sum(a, b):
    return a + b
函数内修改全局变量

如果要在函数内部修改全局变量 需要首先使用global关键字将声明全局变量

a=10
def fun():
    #使用global声明全局变量
    global  a
    a=20
    print(a) #20

fun()
相关推荐
Shy96041810 分钟前
Bert完形填空
python·深度学习·bert
上海_彭彭21 分钟前
【提效工具开发】Python功能模块执行和 SQL 执行 需求整理
开发语言·python·sql·测试工具·element
3345543229 分钟前
element动态表头合并表格
开发语言·javascript·ecmascript
沈询-阿里33 分钟前
java-智能识别车牌号_基于spring ai和开源国产大模型_qwen vl
java·开发语言
zhongcx0137 分钟前
使用Python查找大文件的实用脚本
python
AaVictory.39 分钟前
Android 开发 Java中 list实现 按照时间格式 yyyy-MM-dd HH:mm 顺序
android·java·list
残月只会敲键盘1 小时前
面相小白的php反序列化漏洞原理剖析
开发语言·php
ac-er88881 小时前
PHP弱类型安全问题
开发语言·安全·php
ac-er88881 小时前
PHP网络爬虫常见的反爬策略
开发语言·爬虫·php
爱吃喵的鲤鱼1 小时前
linux进程的状态之环境变量
linux·运维·服务器·开发语言·c++