变量与数据类型

一、变量

补充:注释

注释用于对代码进行解释说明,增强代码的可读性,从而增强代码的可维护性。在python中注释分为两种写法(三引号、#号)。注释的主力是#号。

image-20260624140821163

vscode 中的快捷键

快速注释:ctrl + /

1、注释的使用原则

并非越多越好,只在一些关键代码加注释就可以了。

注释所包含的内容不会执行,可以通过注释临时取消掉一些代码的运行

1.1 变量引入

(1)变量是什么?

量:指的是事物的状态
变:指的是事物的状态是可以发生变化的

变量指的是可以把事物的状态给记录下来,并且以后是可以变化的,变量其实就是一种存取数据的机制

(2)为何要用变量?

在控制计算机运行时,我们期望计算机能够像人一样记住事物的状态,并且这个状态在后期变化之后记忆会同步更新。

一个程序由算法+数据结构组成,即 程序=数据+功能

  • 每个功能都是围绕着处理数据而展开,而变量就是一种存取数据的机制,使用了计算机的内存资源。即变量是一种存取内存的机制

(3)如何用变量?

变量的使用必须遵循原则:先定义、后引用

image-20260624143237369
#1、如何定义
age = 18

#2、如何引用变量
print(age)

#3、错误示范:先引用,后定义
print(x)
x = 111

1.2 变量

定义一个变量,就会开辟一块新的内存空间。变量名绑定了这个内存空间的地址,而内存空间中存放了变量的值。变量由三大组成部分:

  • 变量名:是用来访问变量值的一种方式
  • 赋值符号:负责把变量值的内存地址绑定给变量名
  • 变量值:就是我们存的是的状态,也就数据

定义变量要申请内存空间,但不用了需要回收内存,python解释器已经为我们设计了内存管理机制,后面专题讲解。

(1)变量名

1、变量名的命名规范

大前提:变量名的命名必须见名知意,然后尽可能地精简

不好的示范:

# 1、不建议使用无意义名称
asdfasdfasdf = 18
print(asdfasdfasdf)

# 2、不建议使用中文名称,也不建议拼音。
年龄 = 18
nianling = 18
print(年龄)

正确示范:

# 正确示范
age = 18
name = "yss"
level = 10
salary = 3.1

变量的命名规范(3条)

# 1、变量名的命名必须由字母、数字、下划线构成
age_of_yss = 18
print(age_of_yss)
age_1 = 18
print(age_1)

# 2、不能以数字开头
1age = 18 # 错误
123 = 18 # 错误

# 3、变量名不能使用python语言中的关键字,会覆盖掉原本的功能()。
print = 123  # 错误
if = 123  # 错误
['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from','global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']

变量名的命名风格

# (1)驼峰体(大驼峰、小驼峰)
ageOfYss = 18 # 去掉下划线,连接处大写
userID = 10 # 缩略词同时大写

# (2)纯小写字母+下划线(推荐)
age_of_yss = 18

# 但函数名,类名推荐驼峰体。

(2)变量值

变量值的两大特征:id号和变量类型

# (1)id号:就是变量值在内存中唯一的身份证号,id号反应的是内存地址,但它并不是内存地址。
# id号可以用于判断是否为同一个内存地址。
age = 18
age1 = age
print(id(age))
print(id(age1)) # 会指向同一个id号

# (2)type类型: 变量值有自己的类型
age = 18
print(type(age))

name = "老王"
print(type(name))

salary = 3.1
print(type(salary))

1.3 常量

常量就是不变的量,在python中没有专门定义的常量的语法,但写程序需要用到常量,所以我们用纯大写变量名,表示定义常量。虽然它本质还是变量,但我们就把它当常量用了,后面就不要再更改它。而在go语言中,需要使用const关键字定义这是一个常量,然后go程序就在语法层面不支持更改该常量了。

# 变量名纯大写字母代表这是一个常量
AGE = 18
print(AGE)
AGE = 19
print(AGE)

# go语法
const age int = 18
age = 19

二、数据类型

知识储备:编程语言的分类

1、编译型、解释型

2、强类型、弱类型

强类型指的是数据类型彼此之间有明确的边界,不能直接混用,除非强制做类型转换。shell就是一种弱类型语言。
10 + int("20")

3、静态语言、动态语言

静态语言:在运行之前就已经确定下变量的类型,比如go语言,定义变量时必须声明变量类型。
var x int = 10
动态语言:运行到那行代码才去确定变量的类型,比如python,定义时无需指定,运行时会自动识别。

python是一门解释型、强类型、动态语言。

go语言是一门编译型、强类型、静态语言。

2.1 数字

(1)整型

我们期望计算机能够处理年龄、等级、个数等这样的整数状态,并对其进行加减乘除。

age = 18
print(type(age))

print(age + 1)
print(age * 10)
  • python2中整型分为 long int 、 int

(2)浮点型

如果需要处理身高、体重、薪资等数据,整型无法表达,于是引入了浮点型。

salary = 3.1
print(type(salary))


res = salary + 0.1
res = salary + 10
print(res,type(res))
print(10 > 3.1)

整型、浮点型、复数都是数字,是可以直接进行运算的。

2.2 字符串str

定义:在引号里包含一系列的字符str,在这里双引号,单引号都没有区别。只需要注意引号的嵌套即可。

1、引号的使用

name = "yss杨尚松"
name = 'yss杨尚松'
name = """yss杨尚松"""
name = '''
yss杨尚松1
yss杨尚松2
yss杨尚松3
'''

name = "yss写的书'python高级项目开发'"
print(name,type(name))

作用:用于记录描述性质的内容
msg = """
此刻我想吟一首小诗
歌颂我的老婆
她美丽的头发
好像一只炸毛鸡
"""
print(msg)

2、字符串的加法
用法:仅限于在字符串之间相加,也可以乘以一个整型数字代表重复加了n次;但不建议这种方式,尤其在上规模的代码下,因为它有效率问题,在执行加法时,会申请新的空间用于存储字符串之拼接值。

msg1 = "我的名字是"
msg2 = "大yss"
print(msg1 + msg2)

print(msg1 + 10)  # 错误
print(msg1 + "10")  # 正确

msg2 = "大yss"
print(msg2 * 3)

2.3 列表list

定义:在[]内用逗号分割开多个任意类型的值,这种类型成为list。

l = [111, 3.1, "aaa", [666, 777]]
print(type(l))
print(l[3][1])

作用:用于按位置存多个值,并且可以按位置取出指定的值

  • 索引:列表中存储的值对应有编号[0 1 2] ,或者[-3 -2 -1]
  • 支持多维列表,如在二维列表中,infos[1][-1]依次列举下标即可取出子列表中的元素
        0        1                      2
names = ["张三", "李四asdfasfasdasdf", "王五"]
print(names[1])
print(names[2])
print(names[-1])
print(names[3])

练习1:存一个人的信息
info = ["yss", 18, 80.1]
print(info[1])

练习2:存多个人的信息
infos = [
    ["yss", 18, 80.1],
    ["tom", 19, 81.1],
    ["jack", 20, 82.1]
]
print(infos[1][-1])

列表更擅长存储同一属性的多个值,但如果是不同属性的值,最好的方法是使用字典进行存储。

2.4 字典dict

定义:在{}内用逗号分割开多个key:value的元素,其中value可以是任意类型的值,key通常是字符串类型用来对值做一个描述

dic = {"k1":111,"k2":2222}
print(dic["k1"])
print(type(dic))

用途:用key取对应值,擅长存多个不同属性的值,因为key可以对value有描述性的效果

info = ["egon", 18, 80.1,33.1,10]
info = {
    "name": "egon",
    "age": 18,
    "weight": 80.1,
    "salary": 33.1,
    "level": 10
}
print(info["weight"])

练习

练习:存一个的信息:名字、年龄、等级、公司信息
dic = {
    "name": "egon",
    "age": 18,
    "level": 10,
    "company_info": {
        "cname": "xxx公司",
        "address": "上海浦东",
        "phone": "13010101"
    }
}

print(dic["company_info"]['phone'])

有序性

  • 字典:无序
  • 列表:有序

2.5 布尔型bool

1、显式的布尔值

结果明确就是True或False

x = True
x = False
print(type(x))

布尔值通常不会直接定义,而是是通过比较运算得到的

age1 = 18
age2 = 10
print(age1 > age2)

2、隐式的布尔值

字面上看,它根本就不是True或False,就一个值。其实所有类型的数据都能当条件使用,都可以表达真假。其中0、None、空这三种代表的布尔值为False,其余全为True。

作用:记录真假两种状态,通常用于作为条件、作为判断的依据;但尽量不要用隐式的bool值,因为它不够清晰。

if age1 > age2:
    print("第一个人的年龄大")
else:
    print('第二个人的年龄大')

msg=""

if len(msg) == 0:
    print("没有内容")
else:
    print("有内容")
posted @ 2026-06-24 17:27  cuckooyang  阅读(13)  评论(0)    收藏  举报