用来查询变量所指的对象类型
- >>> a, b, c, d = 20, 5.5, True, 4+3j
- >>> print(type(a), type(b), type(c), type(d))
- <class 'int'> <class 'float'> <class 'bool'> <class 'complex'>
- 基础数据类型
- # coding:utf-8
- 字符串 = ""
- 布尔型 = True
- 整数 = 1
- 浮点数 = 0.1
- if __name__ == '__main__':
- print(type(字符串))
- print(type(布尔型))
- print(type(整数))
- print(type(浮点数))
判断变量是否为某种类型:
- >>> a = 111
- >>> isinstance(a, int)
- True
- >>>
- >>> class A:
- ... pass
- ...
- >>> class B(A):
- ... pass
- ...
- >>> isinstance(A(), A)
- True
- >>> type(A()) == A
- True
- >>> isinstance(B(), A)
- True
- >>> type(B()) == A
- False
注:Python3 中,bool 是 int 的子类
- >>> issubclass(bool, int)
- True
字符串变量 = input("提示信息:")
# 可以打印一个值,也可以打印多个值,
# 重要的参数:
# sep:设置多个之间是用什么值连接,默认是空格字符' '
# end:设置最后一个值后面追加什么值,默认换行字符'\n'
# 这两个参数谁在前面谁在后面都可以,但是这两个值需要放在其他要打印的值得后面
print("name", ":",end='', sep='----')
| 转义字符 | 描述 |
|---|---|
| \\ | 反斜杠符号 |
| \' | 单引号 |
| \" | 双引号 |
| \n | 换行 |
| \t | 横向制表符(tab) |
如果需要字符串输出”\n”或者”\t”, 在字符串前面加 r,就代表转义字符不转义,原样输出
- print("hello\tworld\nhello\\world")
- print(r"hello\tworld\nhello\\world")
问题:input()接收⽤户输⼊的数据都是字符串类型,如果⽤户输⼊1,想得到整型该如何操作?
答案:转换数据类型即可,即将字符串类型转换成整型。
示例:计算苹果价格
- # 1. 提示用户输入苹果的单价
- price = float(input("苹果的单价:"))
- # 2. 提示用户输入苹果的重量
- weight = float(input("苹果的重量:"))
- # 3. 计算金额
- money = price * weight
- print(money)
将字符串中的数据转换成Python表达式原本类型
- str1 = '10'
- str2 = '[1, 2, 3]'
- str3 = '(1000, 2000, 3000)'
- print(type(eval(str1)))
- print(type(eval(str2)))
- print(type(eval(str3)))
| 函数 | 描述 |
|---|---|
| 将x转换为一个整数 | |
| 将x转换到一个浮点数 | |
| bool([x]) | bool() 函数用于将给定参数转换为布尔类型,如果没有参数,返回 False。 bool 是 int 的子类 |
| 创建一个复数 | |
| 将对象 x 转换为字符串 | |
| 将对象 x 转换为表达式字符串 | |
| 用来计算在字符串中的有效Python表达式,并返回一个对象 | |
| 将序列 s 转换为一个元组 | |
| 将序列 s 转换为一个列表 | |
| 转换为可变集合 | |
| 创建一个字典。d 必须是一个 (key, value)元组序列。 | |
| 转换为不可变集合 | |
| 将一个整数转换为一个字符 | |
| 将一个字符转换为它的整数值 | |
| 将一个整数转换为一个十六进制字符串 | |
| 将一个整数转换为一个八进制字符串 |
格式化字符串就是把一个或者多个值以某种格式插入到字符串中进行格式化,通过print拼接成一个字符串显示出来
python格式化字符串:
%s 字符串格式
%d 整数格式
%f 浮点数格式 浮点数的值默认保留小数点后六位
%% 输出%
注:%d和%f要求值必须得是数字形式
例:
1、一个值,%s
- name = 'tom'
- age = '29'
- # 一个值得时候
- s = '我叫%s,我今年5岁了' % name
- print(s)
2、两个值,%s、%d ,元组
-
- # 有两个值需要进行格式化的时候,需要把变量放在一个元组里面
- s = '我叫%s,我今年%d岁了' % (name, age)
- print(s)
3、%d、%f
# 数字n 最小打印宽度是n
# - 左对齐打印,空格补在右边
# 0 表示宽度不足的时候补0,超出原样输出
# .n 表示小数点后保留n位小数,只能用于有小数位的情况
- s = '我叫%-5s,我今年%05.1f岁了' % (name, age)
- print(s)
4、字典
- # 如何把字典里的值插入到字符串中
- # 直接把字典的名字放在百分号后面,把键放在括号里面,键必须字符串,而且键不能加引号
- a = {'name': 'tome', 'age': 19}
- s = '我叫%(name)s,我今年%(age)05d岁了' % a
Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能
格式化字符串除了%s,还可以写为 f'{表达式}'f-string 格式化字符串以 f 开头,后面跟着字符串,字符串中的表达式用大括号 {} 包起来,它会将变量或表达式计算后的值替换进去
- # 我的名字是TOM,明年19岁了
- print('我的名字是%s,明年%d岁了' % (name, age + 1))
- # 我的名字是TOM,明年19岁了
- print(f'我的名字是{name}, 明年{age + 1}岁了')
f-string 是 python3.6 之后版本添加的,这种方式明显更简单了,不用再去判断使用 %s,还是 %d。
在 Python 3.8 的版本中可以使用 = 符号来拼接运算表达式与结果:
- >>> x = 1
- >>> print(f'{x+1}') # Python 3.6
- 2
-
- >>> x = 1
- >>> print(f'{x+1=}') # Python 3.8
- x+1=2