目录
一、数据类型
判断数据类型——type()
## type的用法
# 1.使用type直接输出类型信息
# type查看的是变量存储的数据的类型。因为变量无类型,但是它存储的数据有类型。
print(type(12))
# <class 'int'>
# 2.使用变量存储type语句的结果
d = 12.13
print(type(d))
# <class 'float'>
# 3.查看变量中存储的数据类型信息
name = "张三"
name_type = type(name)
print(name_type)
# <class 'str'>
二、数据类型的转换
# 浮点型转换为字符串
num_str = str(-9.63)
print(num_str, type(num_str))
# -9.63 <class 'str'>
# 字符串转为整型
num = int("97")
print(num, type(num))
# 97 <class 'int'>
# 字符串转为浮点型
num2 = float("20.30")
print(num2, type(num2))
# 20.3 <class 'float'>
# 字符串转为数值,字符串内容必须都是数字
# num3 = int("黑马程序员") 错误写法
# print(num3, type(num3)) 错误写法
num4 = int("9")
print(num4, type(num4))
# 9 <class 'int'>
# 整型转换为浮点型
num5 = float(11)
print(num5, type(num5))
# 11.0 <class 'float'>
# 浮点型转换为整型,注意精度丢失
num6 = int(12.36)
print(num6, type(num6))
# 12 <class 'int'>
# 转换为布尔类型
# False的情况:
print(bool(0))
print(bool(0.0))
print(bool(""))
print(bool(''))
print(bool(()))
print(bool([]))
print(bool(""))
# print(bool({})
# 其他转为布尔类型的结果都是True
三、标识符
用户编写代码时,对变量、类方法等编写的名字,叫做标识符。
(一)标识符命名的规则
- 内容限定
标识符命名中,只允许出现:
英文、中文(不推荐)、数字、下划线(_) 这四类元素,其余任何内容都不被允许。
注意:不能以数字开头!
- 大小写敏感
- 不可使用关键字(以下为python中的关键字)
示例:
# 1.内容限定
# 1_name = "张三"
# name_! = "张三"
_name = "张三"
_name1 = "张三"
name_1 = "张三"
# 2.大小写敏感
Zhangsan = "张三"
zhangsan = "张三"
print(Zhangsan, zhangsan)
# 3.不可使用关键字
# class = 1
# if = 45
# def = 5
Class = 2
print(Class)
(二)变量的命名规范
- 见名知意
- 下划线命名法
- 英文字母全小写
四、运算符
(一)算数运算符
(二)赋值运算符
(三)复合赋值运算符
(四)比较运算符
(五)逻辑运算符
五、字符串扩展
(一)字符串的三种定义方式
1.单引号定义法
name = '张三'
2.双引号定义法
name = "张三"
3.三引号定义法
name = """
张三
"""
如果字符串本身包含特殊符号的解决办法:
# 包含双引号
name = '"北京欢迎你"'
print(name)
#"北京欢迎你"
# 包含单引号
name = "'北京欢迎你'"
print(name)
#'北京欢迎你'
# 转义字符
name = "\"北京欢迎你\""
print(name)
# "北京欢迎你"
name = "\'北京欢迎你\'"
print(name)
# '北京欢迎你'
(二)字符串拼接
name = "张三"
print("我叫" + name + ",来自北京")
注意:无法和非字符串类型进行拼接
# 错误写法:
name = "张三"
tel = 4004804848
print("我叫" + name + ",来自北京,电话是:" + tel)
# TypeError: can only concatenate str (not "int") to str
(三)字符串格式化
1.使用格式符号
其中的,%s
% 表示:我要占位
s 表示:将变量变成字符串放入占位的地方
name = "张三"
city = "北京"
class_num = 5
tel = 4004804848
salary = 10453.45
# 单个字符串拼接
message = "我叫%s" % name
print(message)
# 我叫张三
# 多个字符串拼接
message = "我叫%s,来自%s" % (name, city)
print(message)
# 我叫张三,来自北京
# 不同数据类型
message = "我叫%s,来自%s,电话是:%s,薪资是%s" % (name, city, tel, salary)
print(message)
# 我叫张三,来自北京,电话是:4004804848,薪资是10453.45
# 使用其他占位符
message = "我叫%s,来自%s,住在%d楼,薪资是%f" % (name, city, class_num, salary)
print(message)
# 我叫张三,来自北京,住在5楼,薪资是10453.450000
2.快速字符串格式化
f"内容{变量}"的格式来快速格式化
这种写法不做精度控制,也不理会类型,适用于快速格式化字符串
name = "李四"
city = "上海"
class_num = 6
tel = 40047741780
salary = 19871.12
# f:format
message = f"我叫{name},来自{city},住在{class_num}楼,薪资是{salary}"
print(message)
# 我叫李四,来自上海,住在6楼,薪资是19871.12
(四)格式化的精度控制
可以使用辅助符号"m.n"来控制数据的宽度和精度
m,控制宽度,要求是数字(很少使用),设置的宽度小于数字自身,不生效
.n,控制小数点精度,要求是数字,会进行小数的四舍五入示例:
- %5d:表示将整数的宽度控制在5位,如数字11,被设置为5d,就会变成:[空格][空格][空格]11,用三个空格补足宽度。
- %5.2f:表示将宽度控制为5,将小数点精度设置为2。小数点和小数部分也算入宽度计算。如,对11.345设置了%7.2f 后,结果是:[空格][空格]11.35。2个空格补足宽度,小数部分限制2位精度后,四舍五入为 .35。
- %.2f:表示不限制宽度,只设置小数点精度为2,如11.345设置%.2f后,结果是11.35。
num1 = 17
num2 = 11.345
num3 = 17.645
print("数字17宽度限制5,结果是%5d" % num1)
# 数字17宽度限制5,结果是 17
print("数字17宽度限制1,结果是%1d" % num1)
# 数字17宽度限制1,结果是17
print("数字17.645小数精度2,结果是%.2f" % num2)
# 数字17.645小数精度2,结果是11.35
print("数字11.345宽度限制7,小数精度2,结果是%7.2f" % num2)
# 数字11.345宽度限制7,小数精度2,结果是 11.35
print("数字17.645宽度限制7,小数精度2,结果是%7.2f" % num3)
# 数字17.645宽度限制7,小数精度2,结果是 17.64
"""
关于为什么 num2 = 17.645 的结果是 17.64 而不是 17.65,
这与浮点数在计算机中的内部表示有关。
在计算机中,浮点数的精度是有限的,并且在进行四舍五入时可能会出现微小的误差。
因此,即使是 17.645 经过四舍五入后,结果可能会是 17.64 而不是 17.65。
"""
(五)对表达式进行格式化
表达式:一条具有明确执行结果的代码语句。
如:1 + 1、5 * 2,就是表达式,因为有具体的结果,结果是一个数字
又或者,常见的变量定义:name = “张三” age = 11 + 11
等号右侧的都是表达式,因为它们有具体的结果,结果赋值给了等号左侧的变量。
六、键盘输入
——相当于java的Scanner scanner = new Scanner(System.in);
print("请输入姓名:")
name = input()
print("您的姓名是:%s" % name)
# 或者
name = input("请输入姓名:")
print("您的姓名是:%s" % name)
# 默认获取到的数据是字符串类型
name = input("请输入姓名:")
print("您的姓名是:%s" % name, "数据类型是:", type(name))
# 请输入姓名:张三
# 您的姓名是:张三 数据类型是: <class 'str'>
转换数据类型:
num = input("请输入数字:")
num2 = int(num)
print("您输入的数据类型为:", type(num2))
# 请输入数字:12
# 您输入的数据类型为: <class 'int'>
num = input("请输入小数:")
num2 = float(num)
print("您输入的数据类型为:", type(num2))
# 请输入小数:12.56
# 您输入的数据类型为: <class 'float'>