Python变量常量及数据类型
四、变量和常量📸
1、行和缩进
行:在python中没有语句的结束符号,都是通过换行来起一行新的语句。
缩进:js中的代码块是通过{}来限制的,但是在python中没有大括号,是通过相同的缩进来表示,一般采用一个tab键(4个空格)
通过缩进可以限制相同作用域的代码快,一般格式**:加缩进**。
# 声明一个变量,并初始化赋值
a = int(input("请输入一个数:"))
def play():
'''该方法实现输出加法的求和运算'''
b = 23
if a >= 23:
print(a + b)
print(a - b)
if a <= 23:
print(a * b)
2、变量(重点)
变量:在代码运行过程中,其值会发生改变数据
python中的变量定义的时候是没有数据类型的,其类型是初始化值的类型。
1)变量的定义:变量名 = 初始化值
age = 18
age = 20
对这两条语句的理解:
- 浅:将age变量的值改为20
- 深:变量age其实是一个引用,只是指向了内存中的实际对象的地址
一行可以创建对个变量:a = b = c = 12
2)变量的特点
- 变量定义的时候不需要指定数据类型
- 变量赋值什么数据,就是什么类型,可以通过==type()==查看
age = 23
# <class 'int'>
print(type(age))
- 变量不初始化不能使用
- 变量名是标识符,需要符合命名规范
3、常量
常量:在代码运行过程中,其值不发生变化的量。
1)定义常量
其实这种数据在python没有相关的限制,但是可以人为定义常量。
PI = 3.1415926
看到PI是大写的,认为是常量,不能改他的值,但实际上你可以随便改。
2)字面值的常量
- 整数常量:12
- 浮点数常量:12.12
- 字符串:“abc”
五、python中的数据类型
python中的变量定义不需要指定数据类型,但是赋值什么数据,就具备了什么数据类型。
1、支持的数据类型
1)标准数据类型
- 数值类型:整数、浮点数
- 布尔类型:True、False
- 字符串类型:‘’ 或者""
- 列表类型
- 元组类型
- 集合类型
- 字典类型
注意:
- python中没有专门的字符类型概念,一个字符的字符串:‘a’
- 布尔类型和复数类型可以统一划归到数值类型中
2)其他划分
序列类型:包括字符串、列表和元组三个,是个统称。“aabcdefg”
- 数据有序
- 可遍历
- 可索引
- 可重复
- 有的可改变、有的不可改变
映射类型:数据都是由键值对组成,对应字典数据类型
2、数值类型(重点)
在语言编程中,所有的要素最终都要以数值、字符串的形式存储。
- 年龄:整数
- 薪资:浮点型数据
- 姓名:字符串
- 咱们班学生的成绩:[浮点型,浮点型,浮点型…]
1)整数
内存有多大,数据就可以存多少,而且整数永远是准确的。
# 先输出2个整数类型
print(20)
print(123456789)
# 返回数据类型
print(type(20))
# 通过变量的形式存储,age在没初始化之前是没有数据类型的,初始化什么值,就是什么类型
age = 20 # 用age变量名表示年龄
print(type(age))
# python中整形数据的范围:内存有多大,数据就可以存多少,而且整数永远是准确的
print(123456789123456789123456789)
2)浮点型数据
浮点型数据是有精度,默认保留17位有效数字,再高的就不准确了
# 输出2个浮点型数据
print(3.1415926)
print(3.1415926123456789)
# 查看浮点型数据的数据类型
print(type(3.1415926))
salary = 120900.99
# <class 'float'>
print(type(salary))
3)布尔类型
布尔类型只有两个值,True和False。
# 输出布尔类型数据
print(True)
print(False)
flag = True
# <class 'bool'>
print(type(flag))
4)整数的进制转换方法
进制的类型:
- 二进制:由0、1组成,以0b开头,bin()
- 八进制:由0、1、2、3、4、5、6、7组成,以0o开头,oct()
- 十进制:由0、1、2、3、4、5、6、7、8、9组成,无前缀
- 十六进制:由0、1、2、3、4、5、6、7、8、9、a、b、c、d、e、f组成,以0x开头,hex()
# 输出一个二进制类型数据,ob是二进制数据类型(bin())
print(0b10)
print(0b00)
print(0b11)
# 0o是八进制数据类型(oct())
print(0o10)
print(0o00)
print(0o77)
# 十进制是不用前缀
print(31)
# 0x是16进制数据类型(hex())
print(0x10)
print(0x00)
print(0xff)
进制转换的方法:
# 进制转换的方法
print(int(0b11))
print(oct(0b11))
print(oct(11))
print(hex(11))
print(int(0xf))
5)常见是数学运算方法
# 数值类型数据的常用数学运算函数
# 大部分都数学运算方法都被定义一个math模块中(是python自带的)
# 导入模块(python自带的模块或者安装的第三方的模块)
import math
print(abs(-1))
print(math.ceil(3.14)) # 比这个浮点数大的最近的一个整数
print(math.floor(3.14)) #比这个浮点数小的最近的一个整数
print(math.sqrt(4)) # 开根方
print(math.pi)
# 生成一个随机的整数,会用到random模块
import random
print(random.randint(1000,10000))
math模块中的常用方法的使用:
import math
# math模块中的常用方法的使用
"声明一个变量,初始化赋值"
y = 2
z = 16
# 返回x的绝对值
x = -5
print(abs(x))
# 返回x的5次方
print(pow(y, 5))
# 计算16的平方根
print(math.sqrt(z))
# 取不大于3.14的最大整数
print(math.floor(3.14))
# 取不小于3.14的最大整数
print(math.ceil(3.14))
print(round(3.14))
# 使用math模块中的sin方法计算正弦值
# 将角度转换为弧度
angle_in = math.radians(45)
print(math.sin(angle_in))
angle_log = math.log(100)
print(angle_log)
print(math.pi)
# 使用math模块中的exp方法计算指数值
print(math.exp(2))
猜数字游戏,随机产生一个100以内的整数,用户来猜,猜中终止
import random
# 生成随机数
number = random.randint(1, 100)
# 提示用户输入
print("猜一个1到100之间的整数,包括1和100。")
guess = int(input("请猜一下这个数字是多少:"))
# 记录猜测次数
guess_count = 1
# 判断是否猜中
while guess != number:
if guess < number:
print("你猜的数字太小了,请再试一次。")
else:
print("你猜的数字太大了,请再试一次。")
guess = int(input("请猜一下这个数字是多少:"))
guess_count += 1
# 猜中后输出结果
print("恭喜你,你猜对了!")
print("你一共猜了{}次。".format(guess_count))