二、python的数据类型、字符串、输入输出以及运算符--附代码案例

本文详细介绍Python的基础语法,包括字面量、注释、变量、数据类型及转换等内容,并提供了丰富的示例帮助理解。

规则官方强制要求的编写语法不遵守会对影响代码执行
规范官方和大厂建议的编写要求,不强制不遵守也不会对影响代码执行,尽量遵守,让代码更高级、更易懂

2.1 字面量

字面量:在代码中,被写下来的的固定的值(6中常见的数据类型)。
Python中常用的有6种固定的值(数据类型)如下。

python的6种数据类型说明
数字(number)①整数(int):如10、-10
②浮点数(float):如3.14、-0.1
③复数(complex):如4+3j(以j为结尾表示复数)
④布尔(bool) :True表示真,False表示假。
字符串(string)又称文本,由英文下的单引号或者双引号及其英文引号里的任意数量的字符如中文、英文、各类符号、数字等组成。如"HelloWorld"、‘HelloWorld’
列表(list)以 [ ] 作为标识,容器内每一个元素之间用英文逗号隔开
元组(tuple)以 ( ) 作为标识,容器内每一个元素之间用英文逗号隔开
集合(set)以 { } 作为标识,容器内每一个元素之间用英文逗号隔开
字典(dict)以 { } 作为标识,存储的元素是一个个的键值对,容器内每一个元素之间用英文逗号隔开
类型代码实现说明
整数10和现实中的写法一致
浮点数3.14和现实中的写法一致
复数4+3j现实一般用i来表示
布尔数True逻辑数只有True和False
字符串“HelloWorld”程序中需要加上双引号来表示字符串
#注意,#号和注释内容一般建议以一个空格隔开
# 字面量:在代码中,被写下来的的固定的值(6中数据类型)
10				    # 整数字面量
3.14			    # 浮点数字面量
4+3j			    # 复数自字面量
True			    # 布尔数字面量
"HelloWorld"	    # 字符串

print(10)				# 10
print(3.14)				# 3.14
print(4+3j)				# 4+3j
print(True)				# True
print("HelloWorld")		# HelloWorld
"""
单行注释:以#开头,#右边的所有文字当作说明。
多行注释:以一对三个双引号引起来的注释内容,来解释说明一段代码的作用使用方法
"""

2.2 注释

定义:在程序代码中对程序代码进行解释说明的文字。
说明:注释不是程序,不能被执行。
作用:对程序代码进行解释说明,能够大大增强程序的可读性。

注释类型定义说明使用场景是否允许换行是否允许嵌套
单行注释以#开头,#右边的所有文字当作说明#号和注释内容一般建议以一个空格隔开,否则就会提示书写不规范,代码下方会出现波浪线警告一般用于一行或者一段代码进行解释
多行注释以一对三个双引号引起来的注释内容警告不影响代码的执行一般用于python文件、类或方法进行解释

在这里插入图片描述

2.3 变量

定义:在程序运行时,能储存计算结果或能表示值的抽象概念(记录数据)。
特点:程序运行时,可能会改变变量的值。
语法:变量名 = 变量值,其中变量名就是变量本身,=表示赋值(不是等于),变量值就是变量名存储的数值。
功能:把等号右侧的值赋值给等号左侧的变量。

money1 = 50
money2 = 100
# 格式:print("字符串1",变量名1,"字符串2",变量名2......"字符串n",变量名n,)
print("钱包1有", money1 ,",钱包2有:", money2)	# 钱包1有 50 ,钱包2有: 100
money1 = money1 - 10
# 变量值是可变的
print("钱包1有", money1)		# 40

2.4 数据类型

数据是有类型的,但是变量是无类型的,只有在变量存储的数据的时候才有。比如对于字符串变量,不是说变量是字符串,而是说变量存储了字符串。
语法:type(要查看的字面量或者变量)
功能:查看字面量或者变量的数据类型。

my_str = "HelloWorld"
print(type(name))		# 等价于print(type("HelloWorld"))	str类型

2.5 数据类型转换

案例:①从文件中读取的数字,默认是字符串,需要转换成数字类型;
②input()语句,默认结果是字符串,若需要数字也需要转换。

函数功能说明
int(x)将x转化为1个整数字符串内容不是数字类型的不可以通过int()转为整数,浮点数转成整数是向下取整,丢失精度(小数部分)
float(x)将x转化为1个浮点数字符串内容不是整数和浮点数的不可以通过float()转为浮点数
str(x)将x转化为字符串任何数据类型都可以通过str()转化为字符串,只需要加双引号即可
int_num = 12
print(float(int_num))           # 12
print(type(float(int_num)))     # float
print(str(int_num))             # 12
print(type(str(int_num)))       # str

float_num = 3.99
print(int(float_num))           # 3,向下取整
print(type(int(float_num)))     # int
print(str(float_num))           # 3.99
print(type(str(float_num)))     # str

str_int_num = "10"                  # 字符串里面的内容是整数,可以转化为整数和浮点数
print(int(str_int_num))             # 10
print(type(int(str_int_num)))       # int
print(float(str_int_num))           # 10
print(type(float(str_int_num)))     # float

str_float_num = "10.01"               # 字符串里面的内容是浮点数,可以转化为浮点数,但不能转化为整数
# print(int(str_float_num))           # ValueError:不可转换
# print(type(int(str_float_num)))     # error
print(float(str_float_num))           # 10.01
print(type(float(str_float_num)))     # float

str_num = "python"              # 字符串里面的内容是不是数字类型,不可以转化为整数和浮点数
# print(int(str_num))           # ValueError:不可转换
# print(type(int(str_num)))     # error
# print(float(str_num))         # ValueError:不可转换
# print(type(float(str_num)))   # float

在这里插入图片描述

2.6 标识符

定义:变量名、方法名、类名、包名统一的称为标识符。
功能:用来做内容的标识。
规则:①不可以使用关键字,否则会报SyntaxError语法错误;②只能由数字、下划线、英文、中文组成,不能使用其他字符,否则会报SyntaxError语法错误;③开头不允许是数字,否则会报SyntaxError语法错误;④区分大小写。
在这里插入图片描述
规范:①不推荐使用中文;②见名知意,简洁明了;③涉及多单词组合,使用下划线分隔命名;④全部小写。

2.7 运算符

2.7.1 算数运算符

术语运算符实例结果
*10 * 330
/10 / 33.333333
取整除//10 // 33
取模(取余)%10 % 31
指数**10**31000
+10 + 313
-10 - 37
print("1 + 1 = ", 1 + 1)
print("2 - 1 = ", 2 - 1)
print("3 * 3 = ", 3 * 3)
print("4 / 2 = ", 4 / 2)
print("11 // 2 = ", 11 // 2)
print("9 % 2 = ", 9 % 2)
print("2 ** 2 = ", 2 ** 2)

在这里插入图片描述

2.7.2 赋值运算符

术语运算符实例等价结果
赋值=a = 2; b = 3;a = 2; b = 3;
加等于+=a = 0; a += 2;a = 0; a = a+2a = 2;
减等于-=a = 5; a -= 3;a = 5; a = a-3a = 2;
乘等于*=a = 1; a *= 2;a = 1; a = a * 2a = 2;
除等于/=a = 4; a /= 2;a = 4; a = a / 2a = 2;
取模等于%=a = 5; a %= 3;a = 5; a = a % 5a = 2;
整除等于//=a = 5; a//= 3;a = 5; a = a // 3a = 1;
幂指数等于**=a = 10; a **= 2;a = 10; a = a*aa = 100;
# 赋值运算符
num = 1 + 2 * 3
# 复合赋值运算符
num = 1
num += 1 # num = num + 1
print("num += 1: ", num)    # 2
num -= 1
print("num -= 1: ", num)    # 1
num *= 4
print("num *= 4: ", num)    # 4
num /= 2
print("num /= 2: ", num)    # 2.0
num = 11
num %= 4
print("num %= 2: ", num)    # 3

num **= 3
print("num **=2: ", num)    # 27

num = 9
num //= 2
print("num //= 2:", num)    # 4

2.7.3 比较运算符

python语言的比较运算中, "真"用数字"True"来表示, "假"用数字"False"来表示(很多语言是用True和False来分真假,C语言是底层语言,用1和0来表示真假),其中布尔类型首字母大写。

布尔值逻辑在底层的本质
True1
False0

语法:变量名 = 布尔类型字面量
来源:布尔类型的数据,不仅可以通过定义得到,也可以通过比较运算符进行内容比较得到。

术语运算符实例结果
大于或等于>=4 >= 3True
小于或等于<=4 <= 3False
大于>4 > 3True
小于<4 < 3False
不等于!=4 != 3True
等于==4 == 3False

数字类型之间的比较:
在这里插入图片描述
字符串之间的比较:
在这里插入图片描述

bool1 = True
print(f"布尔值是:{bool1},类型是{type(bool1)}")	# True	bool

2.7.4 逻辑运算符

术语运算符实例结果
逻辑与,等价于数学中的“且”anda and b当a和b两个表达式都为真时,a and b的结果才为真,否则为假
逻辑或,等价于数学中的“或”ora or b当a和b两个表达式都为假时,a or b的结果才是假,否则为真
逻辑非,等价于数学中的“非”notnot a如果a为真,那么not a的结果为假;如果a为假,那么not a的结果为真。相当于对a取反

2.8 字符串

2.8.1 定义

定义方式语法
单引号定义‘单引号定义,不允许换行,不允许嵌套’
双引号定义“双引号定义,不允许换行,不允许嵌套”
三引号定义‘"三引号定义,允许换行,不允许嵌套’",三引号定义法和多行注释的写法一样,如果使用变量接收它,它就是字符串;不使用变量接收它,就作为多行注释使用

2.8.2 字符串的引号嵌套

输出语法
输出双引号使用单引号定义法,内含双引号
输出单引号使用双引号定义法,内含单引号
输出非三引号使用转移字符\来将引号解除效用,变成普通的符号
define1 = '单引号定义'
define2 = "双引号定义"
define3 = """
三引号定义
只有三引号定义支持换行
"""
print('单引号定义:', define1, "类型是:", type(define1))		# 单引号定义 str
print("双引号定义:", define2, "类型是:", type(define2))		# 双引号定义 str
print("三引号定义:", define3, "类型是:", type(define3))		# 三引号定义\n只有三引号定义支持换行	str

print("'输出单引号'")		# '输出单引号'
print('"输出双引号"')		# "输出双引号"
print("\'输出单引号\'")		# '输出双引号'
print("\"输出双引号\"")		# "输出双引号"

2.8.3 字符串的拼接

字符串之间的拼接通过+完成字符串的拼接,不能用于字符串和数字类型进行拼接。否则会报TypeError类型错误。
在这里插入图片描述

bank = "交通银行"
telephone = 95566
print(bank + "的电话:")					# 交通银行的电话
print(bank + "的电话:" + telephone)		# TypeError

2.8.4 字符串的格式化

问题:①如果变量过多,拼接字符串会很麻烦;②字符串无法和数字类型或者其他类型的数据完成拼接。
解决:字符串格式化。

2.8.4.1 占位型拼接

语法:"字符串 数据类型占位符" % 变量
说明:%s中的%表示占位,s表示将变量变成字符串放入占位的地方。
功能:%s先占个位置,将%后面的变量变成字符串放到占位的位置。
注意:多个变量占位,变量要用括号括起来,并按照占位的顺序填入,变量之间用逗号分隔。

如下图:数字也能用%s占位,这里是将数字转换成字符串,也就是数字57,变成字符串"57"被放入占位的地方。
在这里插入图片描述

数据类型占位符转化
%s将内容转换成字符串,放入占位位置
%d将内容转换成整数,放入占位位置
%f将内容转换成浮点型,放入占位位置

如果让数字以原本的面貌拼接进去。将代码更改成如下形式:

subject = "Python大数据"
class_num = 57
avg_salary = 16781.0
message = "%s学科,北京%d期,毕业平均工资%f元" % (subject, class_num, avg_salary)
print(message)		# Python大数据学科,北京57期,毕业平均工资16781.000000元

2.8.4.2 格式化

语法:f"字符串1{变量3}字符串2{变量1}....字符串m{变量n}"
说明:f表示formet格式化,利用{ }进行占位,{ }里面填写变量。
功能:快速格式化字符串。
说明:格式化字符串不需要精度控制,不限制数据类型,原样输出。适合对精度没有要求的输出。

subject = "Python大数据"
class_num = 57
avg_salary = 16781.0
message = f"{subject}学科,北京{class_num}期,毕业平均工资{avg_salary}元"
print(message)		# Python大数据学科,北京57期,毕业平均工资16781.0元

2.8.5 格式化的精度控制

问题:上个案例中,非格式化方法去输出字符串,浮点数输出的时候出现很多位小数。
原因:没有控制精度。
语法:%m.nf来控制数据的宽度和精度,精度可能会被四舍五入。
说明: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。
请添加图片描述

2.8.6 表达式格式化

表达式:一条具有明确执行结果代码语句
例如:1 + 1、5 * 2,就是表达式,因为有具体的结果,结果是一个数字;又或者常见的变量定义,name = “张三”,age = 11 + 11,等号右侧的都是表达式,因为它们有具体的结果,结果赋值给等号左侧的变量。
作用:在无需使用变量进行数据存储的时候,可直接格式化表达式,简化代码。
在这里插入图片描述

2.9 数据的输入和输出

语法:print(字面量1/变量名1,字面量2/变量名2......,sep=,end=)
说明:如果sep=不写任何字符,默认多个参数之间的分隔符为一个空格,输出到屏幕的时候多个字面量/变量名之间用1个空格分隔。如果end=不写任何字符,默认是换行符,输出到屏幕的时候会自动换行。
作用:打印字面量/直接打印变量值,把内容输出到标准输出设备(屏幕)。
语法:input("提示性字符串语句")
作用:在标准输入设备中(键盘)输入内容,读取输入的字符串。
注意:无论键盘输入什么数据类型,获取到的数据都是字符串,要想input()得到结果是数字类型,需要数据类型转换。

print("请输入PI的值:")
pi = input()        # 程序在这句代码中断运行,等待键盘输入字符串并读取,接着执行下一句
print(type(pi))     # str
print(pi)

print("请输入PI的值:")
pi = float(input())     # 数据类型转换
print(type(pi))         # float
print(pi)

pi = float(input("请输入PI的值:"))   # 等价于print("请输入PI的值:") 加上 pi = float(input())
print(type(pi))                     # float
print(pi)

在这里插入图片描述

码字不易,如果大家觉得有用,请高抬贵手给一个赞让文章上推荐让更多的人看到吧,也可以评论提出意见让后面的文章内容越来越生动丰富。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值