python基础

这篇博客详细介绍了Python的基础知识,包括变量定义、数据类型、运算符、条件判断语句(if和while)、循环结构(for和while)、函数的定义和使用、返回值、模块导入、匿名函数、集合与字符串操作、类的定义和实例化,以及对象的初始化方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

一、Python 变量

1、定义

变量名=值

2、变量的类型

2.1数据类型可以分为 数字型 和 非数字型

数字型

  • bool —— 布尔(真假)
  • int —— 整数
  • float —— 浮点数(小数)
  • complex (复数), 如 1 + 2j、 1.1 + 2.2j

非数字型

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

2.2 不同类型变量之间的计算

  •    两个数字型变量是可以直接进行 算数运算的
  •    字符串之间可以使用 + 拼接生成新的字符串
  •    字符串变量 可以和 整数 使用 * 重复拼接相同的字符串

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

3、运算符

运算符描述实例
+10 + 20 = 30
-10 - 20 = -10
*10 * 20 = 200
/10 / 20 = 0.5
//取整除返回除法的整数部分(商) 9 // 2 输出结果 4
%取余数返回除法的余数 9 % 2 = 1
**又称次方、乘方,2 ** 3 = 8

  在 Python 中 * 运算符还可以用于字符串,计算结果就是字符串重复指定次数的结果

In [1]: "-" * 50
Out[1]: '----------------------------------------' 

4、if 判断语句基本语法

在 Python 中,if 语句 就是用来进行判断的,格式如下:

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

注意:代码的缩进为一个 tab 键,或者 4 个空格 —— 建议使用空格

  • 在 Python 开发中,Tab 和空格不要混用!

# if 语句以及缩进部分的代码是一个完整的代码块
# 1. 输入用户年龄
age = int(input("今年多大了?"))

# 2. 判断是否满 18 岁
# if 语句以及缩进部分的代码是一个完整的语法块
if age >= 18:
    print("可以嗨皮……")
else:
    print("你还没长大,应该回家写作业!")

elif(可以将 ifelif 和 else 以及各自缩进的代码,看成一个 完整的代码块

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

 while 循环

while 条件(判断 计数器 是否达到 目标次数):
    条件满足时,做的事情1
    条件满足时,做的事情2
    条件满足时,做的事情3
# 1. 定义一个计数器变量,从数字1开始,循环会比较方便
row = 1

while row <= 5:

    print("*" * row)

    row += 1

while 嵌套

while 条件 1:
    条件满足时,做的事情1
    条件满足时,做的事情2
    条件满足时,做的事情3
    ...(省略)...
    
    while 条件 2:
        条件满足时,做的事情1
        条件满足时,做的事情2
        条件满足时,做的事情3
        ...(省略)...
    
        处理条件 2
    
    处理条件 1

for循环

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



for i in range(1, 10):

 

02. 函数基本使用

2.1 函数的定义

定义函数的格式如下:

def 函数名():

    函数封装的代码
    ……

3.1 函数参数的使用

  • 在函数名的后面的小括号内部填写 参数
  • 多个参数之间使用 , 分隔
def sum_2_num(num1, num2):

    result = num1 + num2
    
    print("%d + %d = %d" % (num1, num2, result))

sum_2_num(50, 20)
# 只有在调用函数时,函数的方法体才会被执行
# 函数执行完成之后,会重新回到之前的程序中,继续执行后续的代码

例:

name = "小明"


# 解释器知道这里定义了一个函数
def say_hello():
    print("hello 1")
    print("hello 2")
    print("hello 3")

print(name)
say_hello()
print(name)

04. 函数的返回值

  • 在程序开发中,有时候,会希望 一个函数执行结束后,告诉调用者一个结果,以便调用者针对具体的结果做后续的处理
  • 返回值 是函数 完成工作后,最后 给调用者的 一个结果
  • 在函数中使用 return 关键字可以返回结果
  • 调用函数一方,可以 使用变量接收 函数的返回结果

注意:return 表示返回,后续的代码都不会被执行

06. 使用模块中的函数

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

  • 模块 就好比是 工具包,要想使用这个工具包中的工具,就需要 导入 import 这个模块
  • 每一个以扩展名 py 结尾的 Python 源代码文件都是一个 模块
  • 在模块中定义的 全局变量函数 都是模块能够提供给外界直接使用的工具

匿名函数

>>Sum=lambda x,y:x+y        //冒号之前的是匿名函数的参数,冒号后面的是匿名函数的返回值
>>Sum(2,3)

6.1 第一个模块体验

步骤

  • 新建 hm_10_分隔线模块.py
    • 复制 hm_09_打印多条分隔线.py 中的内容,最后一行 print 代码除外
    • 增加一个字符串变量
name = "程序员"
  • 新建 hm_10_体验模块.py 文件,并且编写以下代码:
import hm_10_分隔线模块

hm_10_分隔线模块.print_line("-", 80)
print(hm_10_分隔线模块.name)

07.Python集合与字符串

1.1 列表的定义

  • List(列表) 是 Python 中使用 最频繁 的数据类型,在其他语言中通常叫做 数组
  • 专门用于存储 一串 信息
name_list = ["zhangsan", "lisi", "wangwu"]

1.3 循环遍历

  • 遍历 就是 从头到尾 依次列表 中获取数据

    • 循环体内部 针对 每一个元素,执行相同的操作
  • Python 中为了提高列表的遍历效率,专门提供的 迭代 iteration 遍历

  • 使用 for 就能够实现迭代遍历

# for 循环内部使用的变量 in 列表
for name in name_list:

    循环内部针对列表元素进行操作
    print(name)

2. 元组

  • Tuple(元组)与列表类似,不同之处在于元组的 元素不能修改
    • 元组 表示多个元素组成的序列
    • 元组Python 开发中,有特定的应用场景
  • 用于存储 一串 信息数据 之间使用 , 分隔
  • 元组用 () 定义
  • 元组的 索引0 开始
    • 索引 就是数据在 元组 中的位置编号
info_tuple = ("zhangsan", 18, 1.75)

元组中 只包含一个元素 时,需要 在元素后面添加逗号

info_tuple = (50, )
  • 在 Python 中,可以使用 for 循环遍历所有非数字型类型的变量:列表元组字典 以及 字符串

元组和列表之间的转换

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

3. 字典

3.1 字典的定义

  • dictionary(字典) 是 除列表以外 Python 之中 最灵活 的数据类型
  • 和列表的区别
    • 列表有序 的对象集合
    • 字典无序 的对象集合
  • 字典用 {} 定义
  • 字典使用 键值对 存储数据,键值对之间使用 , 分隔
    • key 是索引
    • value 是数据
    • 之间使用 : 分隔
    • 键必须是唯一的
    • 可以取任何数据类型,但 只能使用 字符串数字元组
xiaoming = {"name": "小明",
            "age": 18,
            "gender": True,
            "height": 1.75}

2、查询

由于字典是无序的,故要获取字典的值,必须通过key来获取;
 a、字典[key]——》获取key值对应的值

注意:key值必须是存在的,否则会报KeyError

    student={'name':'alice','age':12,'sex':'boy'}
    print(student['name'])  #alice
    print(student['sex'])   #boy
    print(student['score'])   #KeyError: 'score'

b、字典.get(key)——>通过key获取值

注意:key值不存在的不会报错,结果是none

某个key值肯定存在的时候用a型,key值可能不存在的时候用b型;

print(student.get('score')) #None

c、直接遍历字典(推荐使用)

通过for-in遍历字典拿到的是key值

for x in student:
    print(student[x])

(二)字典相关操作

1、字典相关运算

== 判断两个字典的值是否相等

is 判断两个字典的地址是否相等

in 和 not in 判断字典中是否包含某个键值(key),非键值

   dic1 = {'a': 1, 'b': 2}
   aa = dic1
   print(dic1 is aa)  #True
   print({'a': 100, 'b': 200} == {'b': 200, 'a': 100})   #True
   print({'a': 100, 'b': 200} is {'b': 200, 'a': 100})  #False
   print('abc' in {'abc': 100, 'a': 200})  # True
   print('abc' in {'100': 'abc', 'a': 200})  # False

(三)字典的函数和方法

1、 len(字典)--> 获取键值对的个数

dict1 = {'a': 1, 'b': 2, 'c': 3, 'd': 4}  
print(len(dict1))#4

04. 字符串

4.1 字符串的定义

  • 字符串 就是 一串字符,是编程语言中表示文本的数据类型

在 Python 中可以使用 一对双引号 " 或者 一对单引号 ' 定义一个字符串

4.3 字符串的切片

  • 切片 方法适用于 字符串列表元组
    • 切片 使用 索引值 来限定范围,从一个大的 字符串切出 小的 字符串
    • 列表元组 都是 有序 的集合,都能够 通过索引值 获取到对应的数据
    • 字典 是一个 无序 的集合,是使用 键值对 保存数据

 

字符串[开始索引:结束索引:步长]

5.4 完整的 for 循环语法

  • Python 中完整的 for 循环 的语法如下:
for 变量 in 集合:
    
    循环体代码
else:
    没有通过 break 退出循环,循环结束后,会执行的代码

应用场景

  • 迭代遍历 嵌套的数据类型时,例如 一个列表包含了多个字典
  • 需求:要判断 某一个字典中 是否存在 指定的 值
    • 如果 存在,提示并且退出循环
    • 如果 不存在,在 循环整体结束 后,希望 得到一个统一的提示
students = [
    {"name": "阿土",
     "age": 20,
     "gender": True,
     "height": 1.7,
     "weight": 75.0},
    {"name": "小美",
     "age": 19,
     "gender": False,
     "height": 1.6,
     "weight": 45.0},
]

find_name = "阿土"

for stu_dict in students:

    print(stu_dict)

    # 判断当前遍历的字典中姓名是否为find_name
    if stu_dict["name"] == find_name:
        print("找到了")

        # 如果已经找到,直接退出循环,就不需要再对后续的数据进行比较
        break

else:
    print("没有找到")

print("循环结束")

8、类

1 定义只包含方法的类

  • Python 中要定义一个只包含方法的类,语法格式如下:
class 类名:

    def 方法1(self, 参数列表):
        pass

    def 方法2(self, 参数列表):
        pass

·1.2 创建对象

  • 当一个类定义完成之后,要使用这个类来创建对象,语法格式如下:
对象变量 = 类名()
  • 在 类的外部,通过 变量名. 访问对象的 属性和方法
  • 在 类封装的方法中,通过 self. 访问对象的 属性和方法
  • 由 哪一个对象 调用的方法,方法内的 self 就是 哪一个对象的引用
  • 在类封装的方法内部,self 就表示 当前调用方法的对象自己
  • 调用方法时,程序员不需要传递 self 参数
  • 在方法内部
    • 可以通过 self. 访问对象的属性
    • 也可以通过 self. 调用其他的对象方法
  • 改造代码如下:
class Cat:

    def eat(self):
        print("%s 爱吃鱼" % self.name)

tom = Cat()
tom.name = "Tom"
tom.eat()

lazy_cat = Cat()
lazy_cat.name = "大懒猫"
lazy_cat.eat()

1.3 初始化方法

  • 当使用 类名() 创建对象时,会 自动 执行以下操作:
    1. 为对象在内存中 分配空间 —— 创建对象
    2. 为对象的属性 设置初始值 —— 初始化方法(init)
  • 这个 初始化方法 就是 __init__ 方法,__init__ 是对象的内置方法

__init__ 方法是 专门 用来定义一个类 具有哪些属性的方法

1.4 在初始化方法内部定义属性

  • 在 __init__ 方法内部使用 self.属性名 = 属性的初始值 就可以 定义属性
  • 定义属性之后,再使用 Cat 类创建的对象,都会拥有该属性
class Cat:

    def __init__(self):

        print("这是一个初始化方法")

        # 定义用 Cat 类创建的猫对象都有一个 name 的属性
        self.name = "Tom"

    def eat(self):
        print("%s 爱吃鱼" % self.name)

# 使用类名()创建对象的时候,会自动调用初始化方法 __init__
tom = Cat()

tom.eat()

1.5 改造初始化方法 —— 初始化的同时设置初始值

  • 在开发中,如果希望在 创建对象的同时,就设置对象的属性,可以对 __init__ 方法进行 改造
    1. 把希望设置的属性值,定义成 __init__ 方法的参数
    2. 在方法内部使用 self.属性 = 形参 接收外部传递的参数
    3. 在创建对象时,使用 类名(属性1, 属性2...) 调用
class Cat:

    def __init__(self, name):
        print("初始化方法 %s" % name)
        self.name = name
    ...

tom = Cat("Tom")
...

lazy_cat = Cat("大懒猫")
...

 

 

 

 

 

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值