python进阶,在第一期的基础上做了极大的优化,整体更加美观易懂
二、数据类型
print("hello")
print("world!!!")
print("hello", end=" ")
print("world!!!")
# 结果
>>>hello
>>>world!!!
>>>hello world!!!
检测数据类型关键字->type(功能:检测数据类型)
# type()->括号内放要检测的数据 print(type(num_2)) print(type(3.9))
num_1 = 10
num_2 =1.01
print(type(num_1))
# 结果:
>>> <class 'int'>
>>> <class 'float'>
>>> <class 'float'>
num_3 = True
num_4 = False
print(type(num_3))
print(type(num_4))
# 结果
>>> <class 'bool'> # 无论是True还是False都是布尔型(bool)
>>> <class 'bool'>
== 判断等号右边是否等于等号左边
# 例如:
print(10 == 9) # 9不等于10 为假
print(10 == 10) # 10等于10 为真
# 结果
>>> False # 假
>>> True # 真
num_5 = "12"
num_6 = "2.01"
num_7 = "hello world!"
num_8 = "false"
print(type(num_5)) # 结果均为str(字符串类型)
print(type(num_6))
print(type(num_7))
print(type(num_8))
# 结果:
>>> <class 'str'>
>>> <class 'str'>
>>> <class 'str'>
>>> <class 'str'>
2.1.2、4复杂数据类型
列表 ( list)
> num_9 = [10, 20, 30] # 中间英文逗号隔开
print(type(num_9))
# 结果:
>>> <class 'list'>
元组 (tuple)
num_10 = (11, 21, 31)
print(type(num_10))
# 结果:
>>> <class 'tuple'>
集合 (set)
num_11 = {12, 22, 33}
print(type(num_11))
# 结果:
>>> <class 'set'>
字典 (dict)
dict ->放的是键值对 :键: 值
num_12 = {"name": "cnm", "age": 30, "gender": "man"}
# 键值中间需要有英文状态冒号,左边为键右边为值->该代码数据类型为字符串类型,可去掉“值”的引号
print(type(num_12))
# 结果:
# <class 'dict'>
2.2.1、格式化输出
# 例如伍六七今年17岁体重21.01学号id为1314521
name_1 = "wu liu qi"
age_1 = 17
weight_1 = 21.01
stu_id = 1314521
print("姓名:%s" % name_1)
print("年龄:%d" % age_1)
print("体重:%f" % weight_1)
print("学号ID:%d" % stu_id)
# 结果
>>> 姓名:wu liu qi
>>> 年龄:17
>>> 体重:21.010000 # 默认六位小数
>>> 学号ID:1314521
# 对于我这种有强迫症的人来说真的是太难了,数字不对齐,体重后面居然显示六位小数,直接头也麻了,于是将代码略作修改,现在好看多了
print("姓名 :%s" % name_1)
print("年龄 :%d" % age_1, "岁")
print("体重 :%.2f" % weight_1, "公斤") # %.2f表示小数点后面显示2位小数
print("学号ID :%07d" % stu_id) # %07d表示输出的整数显示位数为7位,不足7位的 以0补全,超出7位则原样输出
# 结果
>>> 姓名 :wu li uqi
>>> 年龄 :17 岁
>>> 体重 :21.01 公斤
>>> 学号ID :1314521
# 想了想觉得还是不靠谱,怎么可以打这么多print,试试把他们一行输出
print("姓名:%s\n年龄:%d\n体重:%3.02f\n学号:%d" % (name_1, age_1, weight_1, stu_id))
# 结果
>>> 姓名:wu li uqi
>>> 年龄:17
>>> 体重:21.01
>>> 学号:1314521
2.2.2、格式化输出拓展
# 想了想仍然觉得不靠谱,各种类型直接让我头大,于是想到了f格式化
# 语法:f"{表达式或者是变量}"
print(f"姓名:{name_1}\n年龄:{age_1}\n体重:{weight_1}\n学号{stu_id}") # B格满满
# 结果
>>> 姓名:wu li uqi
>>> 年龄:17
>>> 体重:21.01
>>> 学号1314521》
name_2 = input("请输入姓名:")
print("%s你天天压榨我" % name_2) # ->输入的数据类型统一为字符串类型
# 结果
>>> 请输入姓名:张三
>>> 张三你天天压榨我
2.4、数据类型转换
# 还是那行熟悉的代码
name = input("请随便输入一串数字:") # 输入的数据类型默认为字符串
print(type(name)) # 打印输入内容的数据类型
print(type(int(name))) # 对内容进行数据转换
print(type(float(name)))
print(type(str(name)))
# 结果
>>> <class 'str'> ->数据类型结果为字符串
>>> <class 'int'> ->数据类型结果为整型
>>> <class 'float'>
>>> <class 'str'>
list1 = [10, 20, 30]
print(tuple(list1))
print(type(tuple(list1))) # 将列表转换为元组
# 结果:
>>> [10, 20, 30]
>>> <class 'tuple'>
t1 = (10, 20, 30)
print(list(t1))
print(type(list(t1)))
# 结果
>>> [10, 20, 30]
>>> <class 'list'>
# 将所有类型换为字符串类型,再用eval恢复
num0 = "乐趣"
num1 = "乐趣.乐趣"
num2 = "False"
num3 = "{10, 20, 30}"
print(type(eval(num0)))
print(type(eval(num1)))
print(type(eval(num2)))
print(type(eval(num3)))
# 结果:
>>> <class 'int'>
>>> <class 'float'>
>>> <class 'bool'>
>>> <class 'set'>