【无标题】

Python学习

基础部分
字面量和常量

代码中,被写在代码中的固定值,称为字面量,类似于常量

数字,字符串,列表,元组,集合,字典

变量

print语句的格式

print(内容1,内容2,.........,内容N)

变量名=变量值 (等号是赋值的意思)

数据类型
  • 整数型(int)

  • 浮点型(float)

  • 字符串型(string) ==用引号引起来的数据都是字符串==

type()语句 用来查看数据类型,

type()语句会给出结果(返回值),所以就可以用变量接受,查看变量

type(变量)可以输出类型,变量==无==类型,但是变量存储的数据有类型,所以type(变量)是查看的变量存储的数据类型

数据类型的转换

字符串转数字,数字转字符串等等

  1. int(x)语句 将x转换为一个整数

  1. float(x)语句 将x转换为一个浮点数

  1. str(x)语句 将对象x转换为字符串

这三种语句带有结果(返回值),故可以用print直接输出,或用变量存储结果

任何类型都可以转换成字符串,万物加个引号就是字符串了

字符串不可以随意转换成数字

浮点数转整数会丢失精度

标识符

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

限制

1.内容限定,只允许这四类

  • 英文

  • 中文

  • 数字

  • 下划线(_)

==不推荐中文== 数字==不可以==用于做开头

2.不可以使用关键字(有一系列单词在Python中被用了)

3.大小写敏感

变量的命名规范

  • 明了:尽量达到,看到名字,知道意思

  • 下划线命名法:多个单词组合变量名的时候,应该用下划线分开更直观(first_number)

  • 变量中英文字母,应全部小写

运算符

+-*/ //(取整数) % **(指数)

赋值运算符

= += -= /= %= **=

a += 1 即是 a = a+1

a**=1 即是a=a^1^

a/=1 即是 a= a/1

字符串扩展
字符串的三种定义方式
  • 单引号定义法

  • 双引号定义法

  • 三引号定义法 name= """我是人"""

(三引号定义法,就类似多行注释,同样支持换行操作。)

字符串的引号嵌套

在字符串里包含双引号

在字符串里包含单引号

在引号之间使用转义字符"\"解除引号的效用

==快捷键shift+alt+方向键==可以更换代码的行

字符串的拼接

使用"+"号连接字符串变量或者字符串字面量

pirnt("我是"+“tom”)

name="tom"

print(“我是:” + name)

字符串不可以通过+ 和整数(int) 浮点数(float)或其他的类型,不可以拼接

拼接只能使用与字符串本身(str),不能和整数(int),或其他类型拼接

字符串格式化

方便并支持拼接其他类型

%s 将内容转换为字符串,放入占位位置

% 表示 :占个位

s 表示: 将变量变成字符串,放入占位的地方

name = "小明"

message = "我是 %s" % name

print(message)

多个变量占位,变量要用括号括起来,并且按照占位的顺序写

%d 将内容转换为整数放入占位位置

%f 将内容转换为浮点型,放入占位位置 ~%.2f,意思保留两位小数,放入占位位置~

字符格式化-精度控制

使用辅助符号“m .n"来控制数据的宽度和精度

%5.2f, 表示宽度控制为5,将小数点精度设置为2

设置的要求宽度比数字本身宽度要小,不会生效

精度控制会为小数进行四舍五入

快速格式化字符串

通过添加个==f=="内容{变量}"的格式来快速格式化

特点

  • 不会理会类型

  • 不做精度控制

表达式的格式化

表达式:一条具有明确执行结果的代码语句

例如:1+1 age===1+1==(高亮部分为表达式) name==="me"==

等号的右侧都是表达式,~因为有具体的结果,结果都赋值给了等号左侧的变量~

数据输入

input 语句(数据输入)

input(提示信息)

无论键盘输入什么类型的数据,获取的数据是字符串类型,要获取别的,要进行数据数据类型的转换

Python判断语句

判断是程序最基础最核心的功能

布尔类型

属于数字(Number)类型,数字类型包括:

  • 整数(int)

  • 浮点数(float)

  • 复数(complex)

  • 布尔(bool)

==布尔类型表示现实生活中的逻辑,即真和假,True and False 本质上是1和0==

布尔类型的字面量

  • True 真(是、肯定)

  • False假(否、否定)

定义变量存储布尔类型数据:

bool_1 = True
bool_2 = False
print(f"bool_1变量的内容是:{bool_1},类型是:{type(bool_1)}")
print(f"bool_1变量的内容是:{bool_2},类型是:{type(bool_2)}")

变量名称 = 布尔类型字面量 ~不仅可以自行定义也可以通过比较运算符进行比较内容比较得出~

num1 = 10
num2 = 10
print(f"10 == 10 的结果是:{num1 == num2}")
if语句的基本格式

if 要判断的条件:

条件成立时,要做的事情

注意:判断语句的结果 必须是布尔类型 True或者False

归属于if语句的代码块,需在前方有四个空格缩进

判断条件后面要记得有冒号

if else 语句

else后不需要判断条件 if已经判断好了

else 下的代码块也需要有四个空格缩进

print("欢迎来到儿童游乐场,儿童免费,成人收费")
age = int(input("请输入你的年龄:"))
if age >= 18:
    print("您已成年,游玩需要补票10元")
else:
    print("您未成年,可以免费游玩")
print("祝您游玩愉快")
if elif else
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元")

elif 语句可以写多个 elif语句需要写判断条件

判断是互斥且有顺序的,满足1,后面的不会考虑

均不满足就进入else

都有空格缩进

可以在条件判断中,直接写input,代码更简洁

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元")
判断语句的嵌套

if 条件1:

满足条件1 做的事情1

满足条件1做的事情2

if 条件2:

满足条件2做的事情1

满足条件2做的事情2

age = 33
year = 1
level = 5
if age >= 18:
    print("你是成年人")
    if age < 30:
        print("你的年龄达标了")
        if year > 2:
            print("恭喜你,年龄和入职时间都达标,可以领取礼物")
        elif level > 3:
            print("恭喜你,年龄和级别达标,可以领取礼物")
        else:
            print("不好意思,尽管年龄达标,入职时间和级别不达标")
    else :
        print("不好意思,年龄太大了")
else:
    print("不好意思,小朋友不可以领取")

确保缩进正常,python通过空格缩进确定层次关系

Python循环语句
while循环

while 条件: ~条件需得到布尔类型,True表示继续循环,False表示结束循环~

条件满足,做的事情1

条件满足,做的事情2

有空格缩进

只要条件满足,会无限循环执行

补充小知识

print语句不换行

print("hello",end=" ")

print("world",end=" ")

print语句中,加入end=‘ ’即可输出不换行

制表符\t,将多行字符串进行对齐

While循环案例,打印九九乘法表

# 通过while循环,打印九九乘法表
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循环的基础语法

for循环是一种"轮询"机制,是对一批内容进行”逐个处理“

for 临时变量 in 待处理数据集(序列类型):

循环满足条件时执行的代码

有空格缩进

同while循环不同,for循环是无法定义循环条件的。

只能从待处理的数据集中,依次取出内容进行处理

所以,从理论上看,for循环是无法构建无限循环(被处理的数据集不可能无限大)

name = "itheima is a brand of itcast"
count = 0
for x in name:
    if x == "a":
        count += 1
print(f"含有字母a的个数是:{count}"
range语句

for循环语句,本质上是遍历:序列类型

  • range(num) 获取一个从0开始,到num结束的数字序列(不包含num本身) range(5)获得的数据是[0,1,2,3,4]

  • range(num1,num2) 获取一个从num1开始,到num2结束的数字序列(不包含num2本身)

  • range(num1,num2.step) 获取一个从num1开始,到num2结束的数字序列(不包含num2本身) 数字之间的步长,以step为准

range(5,10,2)取得的数据是:[5,7,9]

continue和break

Python提供continue和break 用以对循环进行临时跳过和直接结束

continue

continue用以:中断本次循环,直接进行下一次循环

应用于:在循环中,因某些原因,临时结束本次循环

continue的控制范围:它所在的循环的临时中断

break关键词与continue用法一致,break是对循环进行直接结束


函数

函数:是已组织好,可重复使用的,用来实现特定功能的代码段

函数的定义

def 函数名(传入参数):

函数体

return 返回值

函数的调用:

函数名(参数)

函数的使用步骤:

  • 先定义函数

  • 后调用函数


# 定义一个函数,输出相关信息
def say_hi():
    print("欢迎来到黑马程序员!\n请出示您的健康码")
# 调用函数
say_hi()
函数传入参数的使用

传入参数的功能:在函数进行计算的时候,接受外部(调用时)提供的数据

def add(x,y):
    result = x+y
    print(f"{x}+{y}的计算结果是:{result}")
add(1,2)
add(5,6)

函数定义中,提供的x,y 称之为:形式参数(形参),表示函数声明将要使用2个参数

  • 参数之间使用逗号进行分隔

函数调用的时候,如代码里的5和6,称之为:实际参数(实参),表示函数执行时真正使用的参数值

  • 传入的时候,按照顺序传入数据,使用逗号分隔

传入参数的数量是不受限制的

  • 可以不使用参数

  • 也可以仅使用任意N个参数

函数返回值

返回值,就是程序中函数完成事情后,最后给调用者的结果

def 函数名(传入参数):

函数体

return 返回值

变量 = 函数(参数)

None

没有return语句返回数据,函数会返回None这个字面量

None是空的,无实际意义的意思

作用:

  • 用在函数无返回值上

  • 用在if判断中,在if判断中,None等同于False 一般用于在函数中主动返回None,配合if判断做相关处理

  • 用在声明无内容的变量上 ~定义变量,但暂时不需要变量有具体值,可以用None来代替~

函数的嵌套调用

函数的嵌套调用是指一个函数里面又调用了另外一个函数

def func_b():
    print("--2--")
def func_a():
    print("--1--")
    func_b()
    print("--3--")
func_a()

在函数A中执行到调用函数B的语句,会将函数B全部执行完成后,继续执行函数A的剩余内容

变量的作用域

变量作用域指的是变量的作用范围(变量在哪里可以,在哪里不可用)

主要分为两类:局部变量和全局变量

所谓局部变量是定义在函数体内部的变量,即只在函数体内部生效,在函数外部访问则立即报错

局部变量作用:作用在函数体内部,在函数运行的时候临时保存数据,在函数运行完成立刻销毁变量

出了函数体,局部变量就无法使用了


全局变量

全局变量指的是在函数体内、外都能生效的变量

global关键字可以在函数内部声明变量为全局变量

num = 200
def test_a():
    print(f"test_a:{num}")
def test_b():
    global num
    num = 500 # 局部变量
    print(f"test_b:{num}")
test_a()
test_b()
print(num)
函数综合案例--ATM机代码
# 查询余额 存取款 退出
def balance(show_header):
    if show_header:
        print("----------------查询余额--------------")
    print(f"{name},您好,您的余额剩余:{moeny}元")
def deposit(num):
    global moeny  # moeny 在函数内部定义为全局变量
    moeny += num
    print(f"{name}.您好,您存款{moeny}元成功")
    print(f"{name},您好,您的余额剩余{moeny}元")
    balance(False)
# 定义取款函数
def get_moeny(num):
    global moeny
    moeny -= num
    print("------------取款----------")
    print(f"{name},您好,您取款{num}元成功")
    balance(False)
# 主菜单
def menu():
    print("--------主菜单--------")
    print(f"{name},您好,欢迎来到ATM,请选择操作:")
    print("查询余额\t[输入1]")
    print("存款\t\t[输入2]")
    print("取款\t\t[输入3]")
    print("退出\t\t[输入4]")
    return input("请输入您的选择:")
# 设置无限循环确保程序不退出
while True:
    keyboard_input = menu()
    if keyboard_input == "1":
        balance(True)
        continue  # 通过continue进行下一次循环
    elif keyboard_input == "2":
        num = int(input("您需要多少钱?请输入:"))
        deposit(num)
        continue
    elif keyboard_input == "3":
        num = int(input("您需要多少钱?请输入:"))
        get_moeny(num)
        continue
    else:
        print("程序退出")
        break  # 通过break退出循环

数据容器

Python中的数据容器:

一种可以容纳多份数据的数据类型,容纳的每一份数据称之为1个元素。每一个元素,可以是任意类型的数据,如字符串、数字、布尔等

简述:一种可以存储多个元素的Python数据类型

数据容器根据特点的不同,如

  • 是否支持重复元素

  • 是否可以修改

  • 是否有序,等

分为5类,分别是:

列表(list)、元组(tuple)、字符串(str)、集合(set)、字典(dict)

数据容器:list(列表)
基本语法:

以[]作为标记

列表内每一个元素之间用,逗号隔开

列表可以一次存储多个数据类型,且可以为不同的数据类型,支持嵌套。

# 定义一个列表list
my_list = ["itheima", "itcast", "Python"]
print(my_list)
print(type(my_list))
my_list = ["itheima", 666, True]
print(my_list)
print(type(my_list))
# 定义一个嵌套的列表
my_list = [[1,2,3],[4,5,6]]# 列表中有俩个元素,每一个元素又是一个列表
print(my_list)
print(type(my_list))
列表的下标(索引):

如何从列表中取出特定位置的数据,使用下标索引

列表中每一个元素,都有其位置下标索引,从前向后,从0开始,依次递增

语法:列表[下标索引]

可以反向索引:从-1开始,依次递减(-1,-2,-3......)

如果列表是嵌套的列表,同样支持下标索引

my_list = ["Tom","Lily","Rose"]
# 列表[下标索引],从前向后从 0 开始,每次+1   从后向前 -1开始 每次-1
print(my_list[0])
print(my_list[1])
print(my_list[-1])

嵌套的列表

my_list = [[1,2,3],[4,5,6]]
print(my_list[1][1])
列表的常用操作

列表的==方法==:

  • 插入元素

  • 删除元素

  • 清空列表

  • 修改元素

  • 统计元素个数

函数是一个封装的代码单元,可以提供特定功能

在Python中,如果将函数定义为class(类)的成员,那么函数会称之为:==方法==

方法和函数功能一样,有传入参数,有返回值,只是方法的使用格式不同

# 函数
def add (x,y):
	return x+y
class Student:
	def add(self,x,y):
		return x+y

函数的使用:num = add(1,2)

方法的使用: student = Student()

num = student.add(1,2)

列表的查询功能(方法)

  • 查找某元素的下标

功能:查找指定元素在列表的下标,如果找不到,报错ValueError

语法:==列表.index(元素)==

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

列表的修改功能(方法)

  • 修改特定位置(索引)的元素值:

语法:==列表[下标] = 值==

  • 插入元素:

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

  • 追加元素:

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

追加一批元素

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

  • 删除元素:

语法1:==del 列表[下标]==

语法2 :==列表.pop(下标)==

  • 删除某元素在列表中的第一个匹配项

语法:==列表.remove(元素)==

  • 情况列表内容

语法:==列表.clear()==

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

语法:==列表.count(元素)==

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

语法:==len(列表)==

可以得到一个int数字,表示列表内的元素数量


总结列表的特点:

  • 可以容纳多个元素

  • 可以容纳不同类型的元素(混装)

  • 数据是有序存储的(有下标序号)

  • 允许重复数据存在

  • 可以修改(增加或删除元素等)

mylist = ["itcast", "itheima", "python"]
# 查找某元素在列表内的下标索引
index = mylist.index("itheima")
print(f"itheima在列表中的下标索引值是:{index}")
# 修改特定下标的值
mylist[0] = "传智教育"
print(f"列表被修改元素值后,是:{mylist}")
# 插入指定的元素
mylist.insert(1,"best")
print(f"列表插入元素后结果是:{mylist}")
# 在列表的尾部插入元素
mylist.append("黑马程序员")
print(f"列表在追加元素后,结果是:{mylist}")
# 追加一批元素
mylist2 = [1,2,3]
mylist.extend(mylist2)
print(f"列表在追加了一个新的列表后,结果是:{mylist}")
# 删除元素
mylist = ["itcast", "itheima", "python"]
del mylist[2]
print(f"列表删除元素后结果是:{mylist}")
# 方法2
mylist = ["itcast", "itheima", "python"]
element = mylist.pop(2)
print(f"列表删除元素后结果是:{mylist},取出的元素是:{element}")
# 删除某元素在列表中的第一个匹配项
mylist = ["itcast", "itheima", "python","itcast", "itheima", "python"]
mylist.remove("itheima")
print(f"通过remove方法移除元素后,结果是:{mylist}")
# 清空列表
mylist.clear()
print(f"列表被清空了,结果是:{mylist}")
# 统计列表内某元素的数量
mylist = ["itcast", "itheima", "python","itcast", "itheima", "python"]
count = mylist.count("itheima")
print(f"列表中itheima的数量是:{count}")
# 统计列表中元素的数量
mylist = ["itcast", "itheima", "python","itcast", "itheima", "python"]
count = len(mylist)
print(f"列表的元素数量总共有:{count}个")

list列表的遍历

将容器内的元素依次取出进行处理的行为,称之为:遍历、迭代

遍历列表的元素:

  • 可以使用while循环、for循环

  • 使用列表[下标]的方式取出

循环条件如何控制:

  • 定义一个变量表示下标,从0开始

  • 循环条件为 下标值<列表的元素数量

def list_while_func():
    mylist = ["教育", "黑马", "Python"]
    index = 0  # 初始值为0
    while index < len(mylist):
        element = mylist[index]
        print(f"列表的元素:{element}")
        index += 1

list_while_func()
def list_for_func():
    my_list = [1, 2, 3, 4, 5]
    for element in my_list:
        print(f"列表的元素有:{element}")

while循环和for循环上

  • 在循环控制上:

while循环可以自定循环条件并自行控制

for循环不可以自定循环条件,只可以一个个从容器内取出数据

  • 在无限循环上:

while循环可以通过条件控制做到无限循环

for循环理论上不可以,因为被遍历的容器容量不是无线的

  • 在使用场景:

while循环适用于任何想要循环的场景

for循环使用于,遍历数据容器的场景或简单的固定次数循环场景

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值