python基础学习

python

你好 python

阶段、章节、小节

初识python

底层:C++ 性能

上层:python 简单高效

什么是编程语言

人类语言翻译成计算机能够听懂的语言→人类与计算机进行交流

image-20250129202419725

计算机只认识0和1的二进制

由程序(解释器or翻译器)将代码翻译为二进制→计算机get了

(思考:为什么存在十进制呢?)

为什么不直接把中文翻译为二进制?

image-20250129202824404

人类的语言有不同的语气、表达,翻译起来更为复杂。

Python环境安装

Python官方网站地址:python.org

image-20250129203446138

image-20250129203504208

image-20250129203529765

image-20250129203549995

image-20250129203610564

安装完成,验证安装:win-cmd-python

第一个Python程序

image-20250129205202000

image-20250129205212291

cmd→python→出现三个向右的箭头,表示可以写代码→回车是运行程序

命令指示符:win+r

python解释器

image-20250129210306157

因为计算机只能读懂0和1,配置环境,本质上就是安装python解释器程序

python解释器:计算机程序,用来翻译python代码,并提交给计算机执行。

解译器功能:1.翻译代码 2.提交给计算机运行

python解译器的位置:

image-20250129210711800

.py文件是什么?python语言的代码文件,里面记录了python的代码。

python开发环境

python开发环境

(也就是在哪写)

image-20250129212253215

下载

www.jetbrains.com

image-20250129212832838

community社区版

PyCharm文件管理

pycharm是以工程做基本的管理单位的

image-20250129214513302

venv:虚拟环境

base conda:人工智能相关的包

custom envrionment 自定义环境

(为什么在.venv界面下,新建文件会出现一个外部库?)

鼠标滚轮改变字号:

image-20250130143715941

pycharm常用快捷键:

image-20250130154126628

python基础语法

字面量

含义:在代码中,被写下来的固定的值

image-20250131175235296

整数(int) 现实写法一致

浮点数(float) 现实写法一致

字符串(string)字符串需用双引号””包围

注释

含义:对代码解释说明的文字

分类:单行注释 #

​ 多行注释:一对三个双引号 “”” 多行注释”””

image-20250131185830376

变量

image-20250131190528720

1.变量就是在程序运行时,记录数据用的

2.特征是变量的值可以改变

3.格式:变量名称=变量值

4.print可以输出多份内容

5.做减法(+、-、*、/)(变量记录数据,可以重复使用它,尤其是数据量极大时,能够减少工作量)

数据类型

三类数据类型:string (str)、int、float

type()语句得到数据的类型

1.print(type()),直接输出类型信息

2.用变量存储type()的结果(返回值)

image-20250131200636159

3.查看变量中存储的数据类型

image-20250131200802354

数据类型转换

# 将数字类型转换成字符串
num_str = str(666)
print(type(num_str), num_str)

float_str = str(13.14)
print(type(float_str), float_str)
# 将字符串转换成数字
num1 = int("11")
print(type(num1), num1)

num2 = float("11.345")
print(type(num2), num2)

# 错误示例,想要将字符串转换成数字,必须要求字符串内的内容都是数字
# num3 = int("黑马程序员")
# print(type(num3), num3)

# 万物皆可转字符串,只要加上双引号就可以,但是字符串不可以转数字

# 整数转浮点数
float_num = float(11)
print(type(float_num), float_num)

# 浮点数转整数
int_num =int (11.234)
print(type(int_num), int_num)

标识符

在编程的时候所使用的一系列名字,用于给变量、类、方法命名

1.内容限定(英文、中文<不推荐>、数字<不可以用在开头>、下划线_)

2.大小写敏感

3.不可使用关键字

image-20250210152937447

变量的命名规范:

1.见名知意

2.下划线命名法

3.英文字母全小写

运算符

image-20250210154059690

赋值运算符

image-20250210154908512

例子:

"""
演示Python中各类运算符
"""
# 算术运算符
print("1+1=" , 1+1)
print("2-1=" , 2-1)
print("3*3=" , 3*3)
print("9/3=" , 9/3)
# 整除
print("9//2=" , 9//2)
# 取余
print("13%4=" , 13%4)
# 指数
print("2**4=" , 2**4)

# 赋值运算符
num = 1*2+4

# 复合赋值运算符
# += 将右侧的值加到左侧的变量上,然后将结果重新赋值给左侧的变量
num = 1
num +=1 # num = num + 1
print("num += 1:",num)

# -= 将右侧的值减到左侧的变量上,然后将结果重新赋值给左侧的变量
num -=1 # num = num - 1
print("num -= 1:",num)

# *=
num *= 4 # num = num * 4
print("num *= 4:",num)

num /= 2 # num = num / 2
print("num /= 2:",num)

num = 3
num %= 2
print("num %= 2:",num)

num **= 2
print("num **2:",num)

num = 9
num //= 2  # 将num整除2 结果赋值给num,也就是num//2=4
print("num //2:",num)

字符串拓展

字符串的三种定义方式

image-20250210162432668

如果想要定义字符串本身,是包含:单引号、双引号自身呢?如何写?

单引号定义法,可以内含双引号

双引号定义法。可以内含单引号

可以使用转移字符(左斜杠)来将引号解除效用,变成普通字符串)

  1. 字符串拼接

  2. 字符串格式化

  3. 格式化精度控制

  4. 字符串格式化方式2

  5. 对表达式进行格式化

字符串拼接

image-20250210164112902

image-20250210165047202

字符串格式化

字符串格式化

image-20250210165225824

数字类型占位

image-20250210165341419

image-20250210170139759

格式化的精度控制

image-20250210171056689

字符串格式化的方式2

字符串格式化-快速写法

image-20250210172450411

对表达式进行格式化

数据输入(input语句)

image-20250210175901572

总结

image-20250210181114198

Python的判断语句

布尔类型和比较运算符

image-20250210182721139

比较运算符

image-20250210182840566

image-20250210184508451

if语句的基本格式

if的注意点

image-20250210194158180

总结

image-20250210194224539

案例

"""
成年人判断
"""

# 通过input语句,获取键盘输入,为变量age赋值(注意转换数字类型)。因为input所有输出内容都是字符串
age = int(input("请输入你的年龄:"))

# 通过if判断是否是成年人,满足条件则输出提示信息
if age >= 18:
    print("欢迎来到黑马儿童游乐场,儿童免费,成人收费")
    print("您已成年,游玩需要补票10元")
print("祝您游玩愉快")

if else组合判断语句

image-20250210195818500

总结

image-20250210200342727

案例

"""
我要买票吗
"""
print("欢迎来到黑马动物园")
height = int(input("请输入你的身高(cm):"))
if height > 120:
    print("您的身高超出120cm,游玩需要购票,10元")
else:
    print("您的身高未超过120cm,可以免费游玩")

print("祝您游玩愉快")

if _elif_else组合使用的语法

多个条件

image-20250210201445583

课程讲解案例

"""
组合用法
"""
height = int(input("请输入你的身高(cm):"))
vip_level = int(input("请输入你的VIP等级(1-5):"))
day = int(input("请告诉我今天是几号:"))

# 通过if判断,可以使用多条件判断的语法

if height < 120:
    print("身高小于120cm,可以免费")
elif vip_level >3:
    print("vip级别大于3,可以免费")
elif day ==1:
    print("今天是1号免费日,可以免费")
else:
     print("不好意思,条件都不满足,需要买票10元")

# 节省代码量
print("欢迎来到黑马动物园")
if int(input("请输入你的身高(cm):")) < 120:
    print("身高小于120cm,可以免费")
elif int(input("请输入你的VIP等级(1-5):")) > 3:
    print("vip级别大于3,可以免费")
elif int(input("请告诉我今天是几号:")) == 1:
    print("今天是1号免费日,可以免费")
else:
     print("不好意思,条件都不满足,需要买票10元")

image-20250210203644844

练习案例

image-20250210204821262

"""
猜猜心里数字
"""
# 定义一个变量
num = 6

if (int(input("请输入第一个猜想的数字:"))) == num:
    print("恭喜第一次猜对了")
elif (int(input("猜错了,再猜一次:"))) == num:
    print("猜对了")
elif (int(input("猜错了,再猜一次:"))) == num:
    print("恭喜,最后一次猜对了")
else:
    print("sorry,猜错了")

判断语句的嵌套

自由组合的形式,分不同层次的形式就是判断语句的嵌套了

image-20250210205444964

总结

image-20250210211951150

判断语句的综合案例

image-20250210212217461

"""
终极猜数字
"""
# 1.构建一个随机的数字变量
import random
num = random.randint(1,10)

guess_num = int(input("输入你要猜测的数字:"))

# 2.通过if判断语句进行数字的猜测
if guess_num == num:
    print("恭喜,第一次就猜对了")
else:
    if guess_num > num:
        print("你猜测的数字大了")
    if guess_num < num:
        print("你猜测的数字小了")
    guess_num = int(input("输入你要猜测的数字:"))
    if guess_num == num:
            print("恭喜,第二次猜对了")
    else:
        if guess_num > num:
            print("你猜测的数字大了")
        if guess_num < num:
            print("你猜测的数字小了")
        guess_num = int(input("输入你要猜测的数字:"))
        if guess_num == num:
             print("恭喜你,第三次猜对了")
        else:
             print("你都猜错了" )

Python循环语句

image-20250210214625957

while循环的基础语法

image-20250210215019653

image-20250210215817711

练习案例没审好题,以为是循环列出1到100的值,但其实是求和)

image-20250210220929690

案例

image-20250210221126410

"""
猜数字
"""
# 获取范围在1-100的随机数字
import random
num = random.randint(1,100)

# 定义一个变量,记录总共猜测了多少次
count = 0
# 通过一个布尔类型的变量,做循环是否继续的标记

flag = True
while flag:
    guess_num=int(input("请输入你猜测的数字"))
    count +=1
    if guess_num == num:
        print("你猜对了")
        flag = False
    else:
        if guess_num > num:
            print("你猜的大了")
        else:
            print("你猜的小了")

print(f"你总共猜测了{count}次")

while循环的嵌套使用

image-20250211124941903

注意点

image-20250211130359197

image-20250211130436705

while循环案例—九九乘法表

print输出不换行

image-20250211130815530

制表符

image-20250211131008715

九九乘法表

# print("hello",end='')
# print("world",end='')
# print("hello\tworld")
# print("itheima\best")

"""
九九乘法口诀
"""
# 定义外层循环的控制变量
i = 1
while i <= 9:
    # 定义内层循环的控制变量
    j = 1
    while j <= i:
        print(f"{j} * {i} = {j * i}\t",end='')
        j += 1

    i += 1
    print()  # print空内容,就是输出一个换行

for循环的基础语法

for循环:对待办事项一个一个处理

image-20250211133250180

总结

image-20250211134110493

range 语句

image-20250211135730330

range语句

image-20250211135904942

image-20250211140050090

总结

image-20250211141050549

for循环临时变量作用域

总结

image-20250211150435344

for循环的嵌套使用

"""
嵌套应用for循环
"""
# 坚持表白100天,每天都送10朵花

i = 1
for i in range(1,101):
    print(f"今天是跟小美表白的第{i}天,加油坚持")
    # 内层循环
    for j in range(1,11):
        print(f"给小美送的第{j}朵玫瑰花")
    print("小美,我喜欢你")
print(f"第{i}天,表白成功")

for循环打印九九乘法表

"""
for循环打印九九乘法表
"""
# 外层循环控制行数
for i in range(1,10):
    # 定义内层循环控制变量,为什么要+1呢?因为range语句,是不包含右括号旁边的数值的,在这里也就是不包含i+1
    for j in range(1,i+1):
        print(f"{j}*{i} = {j*i}\t",end='')
    # 外层循环可以通过print输出一个回车符
    print()

continue和break

image-20250211165553529

continue循环

image-20250211165651203

break循环

image-20250211171413698

两者都只在循环内使用

image-20250211172129744

循环综合案例

image-20250211172301467

# 某公司,账户余额有1W元,给20名员工发工资。
# 员工编号从1到20,从编号1开始,依次领取工资,每人可领取1000元领工资时,财务判断员工的绩效分(1-10)(随机生成),如果低于5,不发工资,换下一位
# 如果工资发完了,结束发工资。

# 定义账户余额变量
money = 10000

# for循环给员工发工资,随机生成绩效
for i in range(1,21):
    import random
    score = random.randint(1,10)
    if score < 5:
        print(f"员工{i}绩效分{score},不满足,不发工资,下一位")
        # continue跳过发放
        continue
    # 要判断余额足不足
    if money >= 1000:
        money -= 1000
        print(f"员工{i},满足条件发放工资1000,公司账户余额{money}")
    else:
        print(f"余额不足,当前余额:{money}元,不足以发放工资,不发了,下个月发")
        break

python函数

函数的初体验

函数:可以得到一个针对特定需求、可供重复利用的代码块,提高程序复用性,减少重复性代码,提高开发效率。

image-20250211180026358

函数的基础定义语法

image-20250211195931322

image-20250211195949222

函数的传入参数

传入参数的作用

image-20250211200615783

语法解析

image-20250211201232540

image-20250211201517948

参数练习案例

image-20250211203036498

"""
升级版自动查核酸
"""

def check(num):
    print("欢迎来到黑马程序员!请出示您的健康码以及72小时核酸证明,并配合测量体温!")
    if num <= 37.3:
        print(f"体温测量中,您的体温是:{num},体温正常请进")
    else:
        print(f"体温测量中,您的体温是:{num},需要隔离")
check(38)

函数的返回值定义语法

image-20250211203333196

返回值语法

image-20250211203409573

总结

image-20250211210313329

函数的返回值之None类型

None含义

image-20250211210946698

None应用场景(3个)

image-20250211212044444

总结

image-20250211213240122

函数的说明文档

image-20250211214237977

函数的嵌套调用

定义

image-20250211214345682

执行过程

image-20250211214956382

总结

image-20250211215042028

变量在函数中的作用域

局部变量

image-20250211215329580

全局变量

image-20250211215724359

总结

image-20250211220343579

函数综合案例

image-20250212155555939

image-20250212155619040

"""
函数综合案例 控制台ATM
"""
# 定义全局变量 money name
money = 5000000
name = None
# 要求客户输入姓名
name = input("请输入您的姓名")

#定义查询余额函数
def query(show_header):
    if show_header:
        print("----------查询余额----------")
    print(f"{name},您的余额剩余:{money}")

# 定义存款函数
def saving(num):
    global money  # money 在函数内部定义为全局变量
    money += num
    print("----------存款----------")
    print(f"{name},您好,您存款{money}元成功")

    # 通过query函数查询余额
    query(False)


# 定义取款函数
def get_money(num):
    global money
    print("----------取款----------")
    print(f"周杰伦,您好,您取款{num}元成功")

    # 通过query函数查询余额
    query(False)


# 定义主菜单函数
def main():
    print("----------主菜单----------")
    print(f"{name},您好,欢迎来到黑马程序员ATM,请选择操作")
    print("查询余额\t[输入1]")
    print("存款\t\t[输入2]") # 通过\t制表符对齐
    print("取款\t\t[输入3]")
    print("退出\t\t[输入4]")
    return input("请输入你的选择")


# 退出(设置无限循环,确保程序不退出)
while True:
    keyboard_input = main()
    if keyboard_input == "1":
        query(True)
        continue # 通过continue继续下一次循环,一进来就是进入了主菜单
    elif keyboard_input == "2":
        num = int(input("您想要存多少钱?请输入:"))
        saving(num)
    elif keyboard_input == "3":
        num = int(input("您想要取多少钱?请输入:"))
        get_money(num)
        continue
    else:
        print("程序退出了")
        break

python数据容器

数据容器入门

数据容器

image-20250212165958994

总结

image-20250212170057226

数据容器-列表

list列表的定义语法

列表定义

image-20250213140004467

案例演示

image-20250213140145697

总结

image-20250213164457105

列表的下标索引

从列表中取出想要取的元素

语法:列表[下标索引]

image-20250213164809785

反向取值元素

image-20250213164924587

嵌套索引

# 取出嵌套列表的元素
my_list = [(1, 2, 3), [4, 5, 6]]
print(my_list[1][1])

总结

image-20250213170104223

列表的常用操作方法

列表常用操作

image-20250213171608354

列表的查询功能

将函数定义为class(类)的成员,函数就被称之为:方法

image-20250213171928376

详细操作方法:

1.查找某元素在列表内的下标索引

语法:列表.index(元素)

index = mylist.index("itheima")
print(f"itheima在列表中的下标索引值是:{index}")

index就是列表对象(变量)内置的方法(函数)

2.修改特定下标索引的值

语法:列表[下标] = 值

mylist = ["itcast","itheima","python"]
mylist[0] = "传智教育"
print(f"列表被修改元素后,结果是:{mylist}")

3.插入元素

语法:列表.insert(下标,元素),在指定的下标位置,插入指定的元素

mylist = ["itcast","itheima","python"]
mylist.insert(1,"best")
print(f"列表插入元素后,结果是:{mylist}")

5.追加元素

①语法:列表.append(元素),将指定元素,追加到列表尾部

mylist = ["itcast","itheima","python"]
mylist.append("黑马程序员")
print(f"列表在追加了元素后,结果是:{mylist}")

②语法:列表extend(其它数据容器), 将其它数据容器的内容取出,依次追加到列表尾部

mylist2 = [1,2,3]
mylist.extend(mylist2)
print(f"列表在追加了新的列表后,结果是:{mylist}")

4.删除元素

  • del列表[下标]

python
mylist = ["itcast","itheima","python"]
del mylist[2]
print(f"列表删除元素后的结果是:{mylist}")

  • 列表.pop(下标)

python
mylist = ["itcast","itheima","python"]
mylist.pop(0)
element = mylist.pop(0)
print(f"通过pop方法取出元素后列表内容:{mylist},取出的元素师:{element}")

  • 删除某元素在列表中的第一个匹配项:列表.remove(元素)

python
mylist = ["itcast","itheima","itcast","itheima","python"]
mylist.remove("itheima")
print(f"通过remove方法移除元素后,列表的结果是:{mylist}")

  • 清空列表内容,语法:列表.clear()

python
mylist.clear()
print(f"列表被清空了,结果是:{mylist}")

5 统计某元素在列表内的数量

语法:列表.count(元素)

mylist = ["itcast","itheima","itcast","itheima","python"]
count = mylist.count("itheima")
print(f"列表中的itheima的数量是:{count}")

6 统计列表内,有多少元素

语法:len(列表)

mylist = ["itcast","itheima","itcast","itheima","python"]
count = len(mylist)
print(f"列表的元素数量总共有:{count}")

image-20250215172613842

说明-格局

image-20250215172824342

列表的特点

image-20250215172918734

列表的循环遍历

列表的遍历-while循环

遍历:将容器内的元素依次取出进行处理的行为

image-20250215175646348

列表的遍历-for循环

image-20250215181654697

两者对比

image-20250215182120850

总结

image-20250215182137036

课后练习(第一次独立写那么长的代码,疯狂鼓掌,另感谢gpt的特别出席!)

"""
列表的遍历应用:取出列表内的偶数
"""
# 定义一个列表
mylist = [1,2,3,4,5,6,7,8,9,10]
mylist2 =[]

# while循环
index = 0
def list_while_func():

    """
    使用while循环遍历列表的演示函数
    :return: None
    """
    global index
    while index < len(mylist):
        element = mylist[index]
        if element % 2 == 0:
            mylist2.append(element)

        index += 1



# for 循环
def list_for_func():
    """
      使用for循环遍历列表的演示函数
      :return: None
      """
    for element in mylist:
        if element % 2 == 0:
            mylist2.append(element)



# 清空 mylist2 后运行两个函数
mylist2.clear()
list_while_func()
# 在调用完 while 循环后,打印结果
print(f"通过while循环,从列表:{mylist}中取出偶数,组成新列表{mylist2}")

mylist2.clear()  # 清空 mylist2,避免重复
list_for_func()
print(f"通过for循环,从列表:{mylist}中取出偶数,组成新列表{mylist2}")

元组的定义和操作

image-20250218100221699

元组定义

image-20250218100329582

元组特点

image-20250218142409494

总结

练习

image-20250218142545670

字符串的定义和操作

字符串

image-20250218150122171

字符串的常用操作

image-20250218151205424

字符串的分割:字符串.split(分隔符字符串)

注意:字符串本身不变,而是得到一个列表对象

image-20250218151546621

字符串的规整操作

image-20250218152255268

字符串常用操作

image-20250218153512270

字符串的遍历

"""
字符串遍历
"""
my_str = "黑马程序员"
index = 0
while index < len(my_str):
    print(my_str[index])
    index += 1

my_str = "黑马程序员"
for i in my_str:
    print(i)

字符串的特点

image-20250218154951593

总结

image-20250218155034084

数据容器(序列)切片

定义

image-20250218202923301

切片定义

从一个序列中,取出一个子序列

语法:序列[起始下标:结束下标:步长]

image-20250218204026556

"""
对序列进行切片,从1开始,4结束,步长1
"""
# 对列表list进行切片,从1开始,4结束,步长1

my_list = [0, 1, 2, 3, 4, 5, 6]
result1 = my_list[1:4]
print(f"结果1:{result1}")

# 对元组tuple进行切片,从头开始,到最后结束,步长1
my_tuple = (0, 1, 2, 3, 4, 5, 6)
result2 = my_tuple[:]   # 起始和结束不写表示从头到尾,步长为1
print(f"结果1:{result2}")

# 对字符串str进行切片,从头开始,到最后结束,步长2
my_str = "01234567"
result3 = my_str[::2]
print(f"结果1:{result3}")

# 对str进行切片,从头开始,到最后结束,步长-1
my_str = "01234567"
result4 = my_str[::-1]   #-1表示从后向前取  等于将序列翻转了
print(f"结果1:{result4}")

# 对列表进行切片,从3开始,到1结束,步长-1
my_list = [0, 1, 2, 3, 4, 5, 6]
result5 = my_list[3:1:-1]
print(f"结果1:{result5}")

# 对元组进行切片,从头开始,到尾结束,步长-2
my_tuple = (0, 1, 2, 3, 4, 5, 6)
result6 = my_tuple[::-2]
print(f"结果1:{result6}")

总结

练习案例:序列的切片实践

image-20250218210306381

"""
序列的切片实践
"""

# 请使用学过的任何方式,得到"黑马程序员”
my_str = "月过万薪, 员序程马黑来, nohtyp学"

# 可用方式参考:
# 1、倒序字符串,切片取出或切片取出,然后倒序
# 2、split分隔","replace替换"来"为空,倒序字符串

# 倒序字符串,切片取出
result1 = my_str[::-1][9:14]
print(result1)

# 切片取出,然后倒序:从10开始到4结束,步长为-1 ? 也是可以滴 反向步长的切片可以从右往左取字符串
# result = my_str[9:4:-1]
# print(result)

result3 = my_str[5:10][::-1]
print(result3)


# split分隔","replace替换"来"为空,倒序字符串
my_str = "月过万薪, 员序程马黑来, nohtyp学"
result4 = my_str.split(", ")[1].replace("来","")[::-1]
print(result4)
除特殊说明,博客文章均为青山原创,依据 CC BY-SA 4.0 许可证进行授权,转载请附上出处链接及本声明。
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇