定义变量和使用
变量的定义
在程序中,有时我们需要对2个数据进行求和,那么该怎样做呢?大家类比一下现实生活中,比如去超市买东西,往往咱们需要一个菜篮子,用来进行存储物品,等到所有的物品都购买完成后,在收银台进行结账即可如果在程序中,需要把2个数据,或者多个数据进行求和的话,那么就需要把这些数据先存储起来,然后把它们累加起来即可
在python中,存储一个数据叫 ,需要一个叫做变量的东西,如下示例:
num1 = 100 # num1就是一个变量,就好比一个小菜篮子
num2 = 87 # num2 也是一个变量
result = num1 + num2 # 把num1和num2这两个 '菜篮子' 中的数据累加,然后放到result里面
- 说明:
- 所谓变量,可以理解为
菜篮子,如果需要存储多个数据,最简单的方式是有多个变量,当然也可以使用一个 - 程序就是用来处理数据的,而变量就是用来存储数据的
- 所谓变量,可以理解为
# Ctrl + enter可以在下方插入一个空行
# 变量:内存地址的别名,作用,用来存储数据的
# 在程序中想要存储数据,就需要使用变量
# 变量的定义:变量名 = 数据值 变量名要遵循标识符定义的规则
# 定义一个变量的name,变量name中存储的数据是'mylgcs'
name = 'mylgcs'
# 定义一个变量age,变量age中存储的时间值是 36
age = 36
# 使用变量中的值,直接使用变量即可
# 使用print函数打印输出name变量中存储的数据值
print(name)
print(age)
# 修改变量中的值 变量名 = 新的数据值
age = 37
print(age)
变量的类型
- 生活中的例子

- 程序中
- 为了更充分的利用内存空间以及更有效率的管理内存,变量是有不同的类型的,如图所示:

- 怎么知道一个变量的类型呢?
- 在python中,只要定义了一个变量。而且它有数据,那么它的类型已经确定了,不需要咋们开发者去说明他的类型,系统会自动辨别
- 可以使用type(变量的名字),来查看变量的类型
# 变量的数据类型,由变量中存储的数据解定的
# 可以使用type()函数得到变量的数据类型,想要进行输出,需要使用print函数
# int 整数
result = 10
print(type(result)) # <class 'int'>
# float 小数
result = 3.14 # 修改变量中存储的数据
print(type(result)) # <class 'float'>
# str 引号引起来的内容就是字符串, 单引号和双引号都可以
name = 'mylgcs'
print(type(name)) # <class 'str'>
# bool 布尔类型, 只有两个值 True, False
result = True
print(type(result)) # <class 'bool'>
标识符
什么是标识符
[!Note|style:flat|label:提示]
开发人员在程序中自定义的一些符号好名称
标识符是自己定义的,如变量名丶函数名等
标识符的规则
标识符由字母丶下划线和数字组成,并且不能以数字开头
python中的标识符是区分大小写的
命名规范
见名知意
[!Note|style:flat|label:提示]
起一个有意义的名字,尽量做到看一眼就知道是什么意思(提高代码可读性)比如:名字 就定义为 name,定义学生用 student
驼峰命名法
[!Note|style:flat|label:提示]
小驼峰式命名法 (lower camel case):第一个单词以小写字母开始;第二个单词的首字母大写,例如:myName、aDog
大驼峰式命名法 (upper camel case):每一个单字的首字母都采用大写字母,例如:FirstName、LastName
还有一种命名法是用下划线“_”来连接所有的单词, 比如send_buf
关键字
什么是关键字
[!tip|style:flat|label:提示]
python一些具有特殊功能的标识符,这就是所谓的关键字
关键字,是python已经使用的了,所以不允许开发者自己定义和关键字相同的名字的标识符
查看关键字
import keyword # 导包,keyword是系统中已经定义好的内容,想要使用就需要导入
print(keyword.kwlist)
输入和输出
- python中的输出
# 打印提示
print('hello world')
print('萨瓦迪卡---泰语,你好的意思')
- 格式化输出
age = 36
print('我今年%d岁' % age)
age += 1
print('我今年%d岁' % age)
age += 1
print('我今年%d岁' % age)
- 在程序中 看到了 % 这样的操作符,就是python中格式化输出。
age = 18
name = 'xiaohua'
print('我的姓名是%s,年龄是%d' % (name, age))
- 常用的格式符号
| 格式符号 | 转换 |
|---|---|
| %c | 字符 |
| %s | 字符串 |
| %d | 有符号十进制整数 |
| %u | 无符号十进制整数 |
| %o | 八进制整数 |
| %x | 十六进制整数(小写字母0x) |
| %X | 十六进制整数(大写字母0X) |
| %f | 浮点数 |
| %e | 科学计算法(小写'e') |
| %E | 科学计算法(大写'E') |
| %g | %f和%e的简写 |
| %G | %f和%E的简写 |
- %f 输出小数默认保留6位小数
height = 170.5
# %f 输出小数默认保留6位小数
print('我的身高是%f cm'% height)
# %.nf 输出小数默认保留6位小数
print('我的身高是%.2f cm'% height)
- 输出50%,
# 输出50%,使用格式化输出的时候,想要输出一个%,需要两个%
print('及格人数占比为%d%%' % 50)
- python3.6以后开始支持f-string,占位统一使用{}占位
name = 'xiaohua'
age = 18
height = 175.0
# python3.6以后开始支持f-string,占位统一使用{}占位,填充数据直接写在{}里面
print(f'我的名字是{name},年龄是{age}岁,身高是{height}cm')
- 转义字符
# 转义字符\n 将\和n组合在一块,作为一个字符使用,\n代表换行
# print()函数输出之后,默认会添加一个换行,如果不想换行可以去掉
print('hello', end='')
print('hello', end='-*-')
print('hello', end='')
print('world', end='')
print('good good study\nday day up')
- 输入
咱们在银行ATM机器前取钱时,肯定需要输入密码,对不?那么怎样才能让程序知道咱们刚刚输入的是什么呢??大家应该知道了,如果要完成ATM机取钱这件事情,需要先从键盘中输入一个数据,然后用一个变量来保存,是不是很好理解啊在Python中,获取键盘输入的数据的方法是采用 input 函数(至于什么是函数,咱们以后的章节中讲解),那么这个 input 怎么用呢?
示例:
password = input('请输入密码')
print('您刚刚输入的米啊是:%s' % password)
[!tip|style:flat|label:提示]
Input的小括号中放入的是,提示信息,用来在获取数据之前给用户的一个简单提示
Input在从键盘获取了数据以后,会存放到等号右边的变量中
Input会把用户输入的任何值都作为字符串来对待
类型转换
从键盘上录入苹果的价格、重量,输出:苹果单价 9.00 元/斤,购买了 5.00斤,需要支付 45.00元.
# 1. 使用input函数获取苹果的价格
price = input('请输入苹果的价格')
# 2. 使用input函数获取购买的重量
weight = input('请输入重量')
# 3. 输出响应的结果
result = float(price) * float(weight) # 类型转换
print(f'苹果单价为{price}元/斤,购买了{weight}斤,需支付{result}元')
类型转换,将原始数据转换为我们需要的数据类型,在这个过程中,不会改变原始的数据,会生成一个新的数据
- 转换为int类型 int(原始数据)
pi = 3.14
num = int(3.14)
print(type(pi)) # float
print(type(num)) # int
# 整数类型转字符串
my_str = '10'
num1 = int(my_str)
print(type(my_str)) # str
print(type(num1)) # int
# 转换为 float
num2 = 10
num3 = float(num2)
print(type(num2)) # int
print(type(num3)) # float
- 将数字类型字符串转换为 float
num = float('3.14')
num1 = float('10')
print(type(num)) # float
print(type(num1)) # float
# eval() 还原原来的数据类型,去掉字符串的引号
num2 = eval('100')
num3 = eval('3.14')
print(type(num2)) # int
print(type(num3)) # float
my_str = eval('hello')
print(my_str) # 会报错,原因是去掉了引号 hello就是变量 我们没有定义这个变量
num4 = eval('num3')
print(num4, type(num4)) # num3 是已经定义好了的变量,可以使用,不会报错
- 常用的数据类型转换
| 函数 | 说明 |
|---|---|
| int(x[,base]) | 将x转换为一个整数 |
| float(x) | 将x转换为一个浮点数 |
| complex(real[,imag]) | 创建一个复数,real为实部,imag为虚部 |
| str(x) | 将对象× 转换为字符串 |
| repr(x) | 将对象x 转换为表达式字符串 |
| eval(str) | 用来计算在字符串中的有效Python表达式,并返回一个对象 |
| tuple(s) | 将序列s转换为一个元组 |
| list(s) | 将序列s转换为一个列表 |
| chr(x) | 将一个整数转换为一个Unicode字符 |
| ord(x) | 将一个字符转换为它的ASCll整数值 |
| hex(x) | 将一个整数转换为一个十六进制字符串 |
| oct(x) | 将一个整数转换为一个八进制字符串 |
| bin(x) | 将一个整数转换为一个二进制字符串 |
运算符
python支持以下几种:
下面以a=10,b=20为例进行计算
| 运算符 | 描述 | 实例 |
|---|---|---|
| + | 加 | 两个对象相加a+b 输出结果 30 |
| - | 减 | 得到负数或是一个数减去另一个数a-b输出结果 -10 |
| * | 乘 | 两个数相乘或是返回一个被重复若干次的字符串a*b输出结果 200 |
| / | 除 | b/a 输出结果2 |
| // | 取整除 | 返回商的整数部分 9//2 输出结果 4,9.0//2.0 输出结果 4.0 |
| % | 取余 | 返回除法的余数b%a 输出结果0 |
| ** | 指数 | a**b 为10的20次方,输出结果 100000000000000000000 |
[!warning|style:flat|label:提示]
混合运算时,优先级顺序为:
**高于*/%//高于+-,为了避免歧义,建议使用()来处理运算符优先级,并且,不同类型的数字在进行混合运算时,整数将会转换成浮点数进行运算。
赋值运算符
| 运算符 | 描述 | 实例 |
|---|---|---|
| = | 赋值运算符 | 把=号右边的结果 赋给 左边的变量,如 num = 1+2 * 3 ,结果num的值为7 |
复合赋值运算符
| 运算符 | 描述 | 实例 |
|---|---|---|
| += | 加法赋值运算符 | c += a 等效于c = c + a |
| -= | 减法赋值运算符 | c -= a 等效于c = c - a |
| *= | 乘法赋值运算符 | c = a 等效 c = c a |
| /= | 除法赋值运算符 | c /= a 等效 c = c / a |
| %= | 取模赋值运算符 | c %= a 等效 c = c % a |
| **= | 幂赋值运算符 | c *= a 等效 c = c * a |
| //= | 取整除赋值运算符 | c //= a 等效 c = c // a |
比较运算符
| 运算符 | 描述 | 示例 |
|---|---|---|
| == | 检查两个操作数的值是否相等,如果是则条件变为真 | 如a=3,b=3,则 (a== b) 为 True |
| != | 检查两个操作数的值是否相等,如果值不相等,则条件变为真。 | 如a=1,b=3,则(a !=b) 为 True |
| > | 检查左操作数的值是否大于右操作数的值,如果是,则条件成立。 | 如a=7,b=3,则(a > b) 为 True |
| < | 检查左操作数的值是否小于右操作数的值,如果是,则条件成立。 | 如a=7,b=3,则(a < b) 为 False |
| >= | 检查左操作数的值是否大于或等于右操作数的值,如果是,则条件成立。 | 如a=3,b=3,则(a >= b) 为 True |
| <= | 检查左操作数的值是否小于或等于右操作数的值,如果是,则条件成立。 | 如a=3,b=3,则(a <= b) 为 True |
逻辑运算符
| 运算符 | 逻辑表达式 | 描述 | 实例 |
|---|---|---|---|
| and | x and y | 布尔"与":如果× 为 False, x and y返回 False,否则它返回y的值。 | True and False,返回False |
| or | x or y | 布尔"或":如果× 是 True,它返回True,否则它返回y 的值 | False or True,返回True |
| not | not x | 布尔"非":如果×为 True,返回False。如果x 为 False,它返回True | not True 返回 False,not False 返回 True |