1、字面量
在代码中,被写下来的固定的值,被称之为字面量
Python中常用的6种值(数据)类型
1.1 字符串
又称文本,是有任意数量的字符,如中文,英文,各类符号,数字等组成,所以叫字符的串
在Python中,字符串需要用双引号(“”),包围起来,被引号包围的内容,都是字符串
1.2 如何输出字面量
print(字面量)
2、注释
2.1 注释作用
在程序代码中对程序代码进行解释说明的文字
2.2 注释分类
单行注释
以#开头,在#右边的所有文字都是说明,而不是执行的程序,起到辅助说明的作用
(代码规范:#号和注释内容中间建议以一个空格隔开)
多行注释
以 一对三个双引号 引起来(“”“xxxx”“”)来解释说明一段代码的作用使用方法
(使用:点击shift键,同时点击三次引号键,然后回车)
3、变量
指在程序运行时,能储存计算结果或能表示值的抽象概念
简单说,变量就是程序运行时,记录数据用的
变量的定义格式: 变量名称 = 变量的值 = 表示赋值,将等号右侧值赋予给左侧的变量,可以通过变量来代替值 |
---|
print语句输出多份内容
print(内容1,内容2,…,内容n)
"""
演示变量的操作
"""
# 定义一个变量,用来记录钱包金额
money = 50
# 输出变量记录的内容
# 在输出中如果想在print中输出多份内容,则需要用逗号隔开
print("钱包还有:",money)
# 叫变量,说明这个值可以改变
# 如果买东西花10元,还剩多少
# 不用重新定义变量名
money = money - 10
print("买东西花了10元,还剩余:",money,"元")
4、数据类型
最初阶段的数据类型:
type()语句使用方式
type()是有返回值的,所以可以定义变量去接收
"""
数据类型的使用
"""
# 方式1:使用print直接输出类型信息
print(type("hello"))
print(type(11))
print(type(11.23))
"""
输出结果:
<class 'str'> str就是string的缩写
<class 'int'>
<class 'float'>
"""
# 方式2:使用变量存储type()语句的结果
string_type = type("hello world")
int_type = type(222)
float_type = type(22.2)
print(string_type)
print(int_type)
print(float_type)
"""
输出结果
<class 'str'>
<class 'int'>
<class 'float'>
"""
# 方式3 使用type()语句,查看变量中存储的数据类型信息
name = "hello"
name_type = type(name)
print(name_type)
"""
输出结果:
<class 'str'>
"""
问题1:
变量是否有类型?
通过type(变量),查看的是变量存储的数据类型,因为变量无类型,但是存储的数据有
所以如果说字符串变量,指的不是变量是字符串,而是它存储了字符串
5、数据类型的转换
5.1 使用数据转换的原因
如:
- 从文件中读取的数字,默认是字符串,需要转换成数字类型
- input()语句,默认结果是字符串,若需要数字也需要转换
- …
5.2 常见的转换语句
语句(函数) | 说明 |
---|---|
int(x) | 将x转换为一个整数 |
float(x) | 将x转换为一个浮点数 |
str(x) | 将对象x转换为字符串 |
这三个语句,和type()一样,都是带有结果(返回值)的,可以用print直接输出,也可以利用变量存储结果值
"""
数据类型转换
"""
# 将数字类型转换成字符串
# 说明不仅可以转换类型,同时不会破坏变量中的内容
num_str = str(11)
print(type(num_str),num_str)
float_str = str(11.3)
print(type(float_str),float_str)
"""
输出结果:
<class 'str'> 11
<class 'str'> 11.3
"""
# 将字符串转换成数字
str_num = int("111")
print(type(str_num),str_num)
str_float = float("23.23")
print(type(str_float),str_float)
"""
输出结果:
<class 'int'> 111
<class 'float'> 23.23
"""
# 错误例子 字符串转数字,前提是字符串内的内容都是数字
# num = int("hello")
# print(type(num),num)
"""
输出结果:
Traceback (most recent call last):
File "D:\Python lean\03_数据类型转换.py", line 31, in <module>
num = int("hello")
ValueError: invalid literal for int() with base 10: 'hello'
"""
# 整数转浮点数
float_num = float(11)
print(type(float_num),float_num)
"""
输出结果:
<class 'float'> 11.0
"""
# 浮点数转整数
# 会丢失精度
int_num = int(11.2344)
print(type(int_num),int_num)
"""
输出结果:
<class 'int'> 11
"""
总结:
- 任何数据类型都可以转换成字符串
- 字符串转数字,前提是字符串全部内容都是数字
- 浮点数转整数会丢失精度,即小数部分会丢失
6、标识符
概念:
用来做内容的标识称为标识符
如:
- 变量的名字
- 方法的名字
- 类的名字
Python中,标识符命名的规则:
- 内容限定(英文、中文、数字、下划线)(不推荐使用中文,数字不可以开头)
- 大小写敏感
- 不可使用关键字
变量命名规范
- 见名知意
- 下划线命名法(多个单词组合时使用)
- 英文字母全小写
"""
标识符的应用
"""
# 规则1 内容限定,只能使用:中文,英文,数字,下划线。不能以数字开头
# 1_name = "李四"
"""
运行结果:
SyntaxError: invalid decimal literal(语法错误)
"""
# 规则2:大小写敏感
name = "李四"
Name = "张三"
print(name)
print(Name)
"""
运行结果:
李四
张三
"""
# 规则3:不可使用关键字
#错误:def = 1
7、运算符
算术(数字)运算符
赋值运算符
标准赋值运算符
8、字符串拓展内容
8.1 字符串的三种定义方式
- 单引号定义法
- 双引号定义法(常用)
- 三引号定义法
其中三引号定义法和多行注释的写法一样,同样支持换行操作,使用变量接收就是字符串,不接收时,则可以作为多行注释使用
字符串的引号嵌套
即在定义的字符串本身中包含引号
- 单引号定义法,可以内含双引号
- 双引号定义法,可以内含单引号
- 可以使用转义字符(\)来将引号解除,变成普通字符串(注意转义字符\是放在引号的前面)
"""
字符串的引号嵌套
"""
# 单引号定义法 可以内含双引号
print('"你好"')
"""
运行结果:
"你好"
"""
# 双引号定义法 可以内含单引号
print("'hello'")
"""
运行结果:
'hello'
"""
# 使用转义字符\
# \放在引号的前面,也就是将引号解除
print("\"hello world\"")
print("\'hello world\'")
"""
运行结果:
"hello world"
'hello world'
"""
8.2 字符串拼接
如果两个字符串,可以通过+号拼接成一个字符串
# 字符串字面量之间的拼接
print("你好"+"world")
# 输出结果:你好world
# 字符串字面量和字符串变量的拼接
name = "张三"
print("我的名字叫:"+name)
"""
运行结果:
我的名字叫:张三
"""
但是一般来说,字面量和变量或者变量和变量之间会使用拼接
但是字符串时不能通过加号和整数(浮点数)进行拼接,即使用“+”号,不能和非字符串类型进行拼接
print("你好"+"world")
# 输出结果:你好world
name = "张三"
age = 19
# print("我的名字叫:"+ name +",今年"+age+"岁。")
"""
运行结果:
TypeError: can only concatenate str (not "int") to str
说明整数不能通过加号和字符串进行拼接
"""
print("我的名字叫:"+name)
8.3 字符串格式化
利用加号拼接字符串的缺点
- 变量过多时,拼接起来会很长,很麻烦
- 字符串和数字或者其他类型不能拼接,只能是字符串间拼接
所以利用字符串格式化可以解决
多个变量占位时,变量要用括号括起来,并按照占位的顺序填入
"""
字符串的拼接(不使用加号)
可以和其他类型进行拼接,不仅仅只能字符串间
即字符串的格式化
"""
name = "张三"
age = 19
# 正常情况下
print("我叫"+name)
# 输出结果:我叫张三
message = "我叫李四,今年%s岁" % age
"""
使用字符串格式化情况下
message中的%s
%表示:我要占位置
s表示:将变量变成字符串放入占位的地方
所以,意思就是我要占位置,等会有一个变量来,我把它变成字符串放到占位的位置
"""
print(message)
# 输出结果:我叫李四,今年19岁
"""
多个变量下的格式化
"""
# 方式一:如果只是字符串的拼接可以混合使用
print("我叫"+name+",今年%s岁"% age)
# 方式二:利用字符串格式化,其中多个变量占位,这些变量要用括号括起来,并要按照顺序填入
print("我叫%s,今年%s岁"%(name,age))
# 注意上边的age变量,数字也是可以用%s来表示,不过上述的意思是将age整型先变成字符串类型,然后放入对应位置
"""
输出结果:
我叫张三
我叫李四,今年19岁
我叫张三,今年19岁
我叫张三,今年19岁
"""
Python常用的数据类型占位:
8.4 字符串格式化的精度控制(主要是浮点类型)
使用辅助符号“m.n”控制数据的宽度和精度。如%4.2f,%2.4d,m和.n均可以省略
m,控制宽度,要求是数字(很少使用),设置的宽度小于数字自身,不生效
.n,控制小数点精度,要求是数字,会进行小数的四舍五入
num1 = 11.2
num2 = 11.3456
num3 = 11
print("数字11宽度限制5,结果是:%5d"%num1)
print("数字11宽度限制1,结果是:%1d" % num1)
print("数字11.3456宽度限制7,小数精度2,结果是:%7.2f" % num2)
print("数字11.3456不限制,小数精度2,结果是:%.2f" % num2)
"""
运算结果:
数字11宽度限制5,结果是: 11
数字11宽度限制1,结果是:11
数字11.3456宽度限制7,小数精度2,结果是: 11.35
数字11.3456不限制,小数精度2,结果是:11.35
"""
8.5 字符串格式化方式2
语法:f"{变量}",即就是在字符串前加入f即可
这种方式的特点:
- 不理会类型
- 不做精度控制
- 适合对精度没有要求的时候快速使用
"""
快速格式化方式
语法:f"{占位}"
"""
name = "张三"
age = 18
print(f"我的名字叫{name},今年{age}岁了")
"""
运行结果:
我的名字叫张三,今年18岁了
"""
8.6 对表达式进行格式化
表达式:一条具有明确执行结果的代码语句,如1+1,type(“字符串”),3*5等
在无需使用变量进行数据存储的时候,可以直接格式化表达式,简化代码
print("1 * 2的结果是:%d" % (1*2))
print(f"1*2的结果是:{1*2}")
print("字符串在python中的类型是:%s" % type("字符串"))
"""
运行结果:
1 * 2的结果是:2
1*2的结果是:2
字符串在python中的类型是:<class 'str'>
"""
9、数据输入(input)
在Python中的输入,输出语句
- 数据输入:print
- 数据输出:input
- 使用input()语句可以从键盘获取输入,使用一个变量接收(存储)input语句获取的键盘输入数据即可
- 可以使用:input(提示信息),用来在使用者输入内容之前显示提示信息
- 无论键盘输入什么类型的数据,获取的数据永远都是字符串类型
"""
input的使用
"""
print("请输入你的姓名:")
name = input()
print(f"我叫{name}")
"""
运行结果:
请输入你的姓名:
小明
我叫小明
"""
# 方式二、可以精简代码
name = input("请输入你的姓名:")
print("我叫%s" % name)
"""
运行结果:
请输入你的姓名:小明
我叫小明
"""
# ----------------------------------
# input语句输入的内容默认都是字符串,如果想要改变的话就需要类型转换
num = input("请输入一个数字:")
print("这个数字的类型是:",type(num))
"""
运行结果:
请输入一个数字:23
这个数字的类型是: <class 'str'>
"""
num = input("请输入一个数字:")
# 类型转换
num = int(num)
print("这个数字的类型是:",type(num))
"""
运行结果:
请输入一个数字:236
这个数字的类型是: <class 'int'>
"""