# 数据类型查看的函数 type(数据/变量名)
# 基础数据类型:int float bool
# 容器类型: str list tuple set dict
格式化是字符串所具有的功能,与print无关,哪怕不进行输出,也可以进行字符串的格式化
# 字符串格式化 :格式化是字符串所具有的功能 # print 输出: print函数只能将传入的内容显示到控制台中,与格式化没有任何关系 # 需求:想让小明的年龄,跟着age变量的变化,不断发生变化,那么我们应该怎么做? age = 16 print('小明14岁') # 字符串的格式化 # 格式化输出,到底是print 的功能还是字符串的功能呢? print('小明 %d 岁' % age) # 探索 str1 = '小明 %d 岁' % age print(str1)
格式:
单占位符:'要书写的内容,占位符' % 变量名
多占位符: '要书写的内容,占位符1, 占位符2, 。。。。' % (变量1, 变量2,。。。。)
%之前的占位符数量要和%之后的变量数量相匹配,一一对应否则会报错
# 格式: '字符串,占位符' % 变量 # 在上述格式中,格式化完成后,会将占位符位置填充上对应的变量 # 不同数据类型的变量,要使用不同的占位符进行占位 # 字符串数据使用 %s # 浮点型数据使用 %f # 整型数据使用 %d name = 'xiaoming' age = 18 height = 1.85 weight = 69.5 marriage = False # 一个占位符的格式化输出 print('学员的姓名是 %s' % name) print('学员的年龄是 %d' % age) print('学员的身高是 %f' % height) print('学员的体重是 %f' % weight) print('学生的婚姻状况是 %s' % marriage) # 有多个动态变量的时候,我们就需要使用多个占位符进行占位 # TypeError: not enough arguments for format string # 如果前边有多个占位符,那后边的多个变量要使用括号进行包裹 print('学员的姓名是%s, 学员的年龄是%d岁, 学员的身高是%f米, 学员的体重是%fkg, 学员的婚姻状况是%s' % (name, age, height, weight, marriage)) # 括号内的变量数量不能少于占位符数量 # print('学员的姓名是%s, 学员的年龄是%d岁, 学员的身高是%f米, 学员的体重是%fkg, 学员的婚姻状况是%s' % (name, age, height, weight)) # not all arguments converted during string formatting # 括号内的变量数量不能多于占位符的数量 # print('学员的姓名是%s, 学员的年龄是%d岁, 学员的身高是%f米, 学员的体重是%fkg, 学员的婚姻状况是%s' % (name, age, height, weight,marriage,name)) # 结论:占位符的数量,与%后的变量数量必须保持一致,如果是一个占位符,则可以使用一个变量,如果是多个占位符,那么多个变量必须使用括号包裹起来 # 能否控制变量输出的结果的样式:可以 name = 'xiaoming' age = 18 height = 1.85 weight = 69.5 id = 12 # 需求:1.身高保留两位小数,体重保留三位小数 # 需求:2.学员的id共占用6位,不足位用0填充 # 使用ctrl + d 可以整行复制 print('学员的姓名是%s, 学员的年龄是%d岁, 学员的身高是%f米, 学员的体重是%fkg, 学员的编号是%d' % (name, age, height, weight, id)) # 浮点型保留n位小数: %.nf # 整型占用n位数据,不足位用0补齐 %0nd print('学员的姓名是%s, 学员的年龄是%d岁, 学员的身高是%.2f米, 学员的体重是%.3fkg, 学员的编号是%06d' % (name, age, height, weight, id))
\n:换行符
\t:制表符
%%:在字符串格式化拼接时输出%
# \n 换行符 # 为什么两个print之间可以自动换行 # 在print定义时自动在结尾加上了'\n'所以每次打印结束后,会自动换行 print(123) print('hello world \n') print(456) # 如果不想让其自动换行, 在字符串输入结束后,使用end = '结束符' 可以修改print打印结束后插入的字符 print(123, end='$$$') print(456) # \t 制表符 print('3 4\t5') # %% 输出% # 在不适用字符串格式化拼接时,可以进行%的单独输出 print('我的业绩增长了100%') score = 100 # 在使用字符串格式化的时候,字符串中的%不能单独输出,必须配合占位符,或者使用%%进行输出 print('我的成绩增加了%d%%' % score) # 转译字符:在字符串中,一般情况下n 或者 t这类字母没有特殊含义,如果想给他赋予特殊含义,则需要使用\进行转译
f-string是Python3.6之后出现的格式化语法
格式:f'要输出的字符串{要拼接的变量}'
f可以是大写,也可以是小写,
引号可以是单引号,也可以是双引号
精度控制
{浮点型变量:.nf} 保留n位小数,四舍五入
{整型变量:0nd} 保留n位,不足位用0补齐,如果超出则原样显示
%可以单独输出
# f-string是Python3.6以后推出的格式化方式 name = 'xiaoming' age = 18 height = 1.85 weight = 69.5 score = 98 id = 12345678 # 格式化拼接上述变量 # 传统拼接方式 print('学员的姓名是%s, 学员的年龄是%d, 学员的身高是%f, 学员的体重是%f, 学员的分数是%d%%, 学员的学号是%d' % (name, age, height, weight, score, id)) # 使用f-string进行字符串拼接 # 格式:f'要输出的内容{变量}' print(F'学员的姓名是{name}, 学员的年龄是{age}, 学员的身高是{height}, 学员的体重是{weight}, 学员的分数是{score}%%, 学员的学号是{id}') # 修改格式: print('学员的姓名是%s, 学员的年龄是%d, 学员的身高是%.2f, 学员的体重是%.3f, 学员的分数是%d%%, 学员的学号是%06d' % (name, age, height, weight, score, id)) # 如果需要调整精度 # {整数型变量:06d} 整型占六位,不足位用0补齐 d可以省略 # {浮点型变量:.2f} 浮点型保留两位小数, 四舍五入 # %可以单独输出 print(F'学员的姓名是{name}, 学员的年龄是{age}, 学员的身高是{height:.2f}, 学员的体重是{weight:.3f}, 学员的分数是{score}%, 学员的学号是{id:06d}') print(F'学员的姓名是{name}, 学员的年龄是{age}, 学员的身高是{height:.2f}, 学员的体重是{weight:.3f}, 学员的分数是{score}%, 学员的学号是{id:06}') # 练习: # 输出自己的信息包括,姓名,年龄,身高(保留两位小数),学号(保留6位,不足位用0补齐),使用f-string进行拼接
数据类型转换是为了不同类型数据之间可以进行拼接或运算
格式:数据类型(要转化类型的变量或值)
int和float类型直接可以随意转换
float转换为int类型只保留整数部分
int转换为float类型在末尾添加。0
如果数值型转换为str类型,可以随意转换
如果str类型转换为数值型
float 必须保证str引号内部是浮点型数据或整型数据
int 必须保证str引号内部是整型数据