四、数据类型:
4.1 数据类型
在学习字面量的时候,我们了解到:数据是有类型的。
目前在入门阶段,我们主要接触如下三类数据类型:
string、****int、float这三个英文单词,就是类型的标准名称。
4.2 **type()**语句
那么,问题来了,如何验证数据的类型呢?
我们可以通过type()语句来得到数据的类型:
语法:
type(被查看类型的数据)
4.3 **type()**语句的使用方式
- 在print语句中,直接输出类型信息:
- 用变量存储type()的结果(返回值):
4.4 **type()**语句的使用方式
查看的都是<字面量>的类型,能查看变量中存储的数据类型吗?
那当然:可以
变量有类型吗?
我们通过type(变量)可以输出类型,这是查看变量的类型还是数据的类型?
查看的是:变量存储的数据的类型。因为,变量无类型,但是它存储的数据有。
#方式1: 使用print直接输出类型信息
print(type("妄北y"))
print(type(666))
print(type(11.345))
#方式2: 使用变量存储type()语句的结果
string_type = type("妄北y")
int_type = type(666)
float_type = type(11.345)
print(string_type)
print(int_type)
print(float_type)
#方式3: 使用type()语句,查看变量中存储的数据类型信息
name = "妄北y"
name_type = type(name)
print(name_type)
4.5 字符串类型的不同定义方式
字符串有3种不同的定义方式:
五、数据类型转换:
5.1 为什么要转换类型
数据类型之间,在特定的场景下,是可以相互转换的,如字符串转数字、数字转字符串等
那么,我们为什么要转换它们呢?
数据类型转换,将会是我们以后经常使用的功能。
如:
•从文件中读取的数字,默认是字符串,我们需要转换成数字类型
•后续学习的input()语句,默认结果是字符串,若需要数字也需要转换
•将数字转换成字符串用以写出到外部系统
•等等
•
用途很多,那么让我们来学习一下如何转换吧。
5.2 常见的转换语句
**同前面学习的****type()**语句一样,这三个语句,都是带有结果的(返回值)
我们可以用print直接输出
或用变量存储结果值
# 将数字类型转化为字符串
num_str = str(11)
print(type(num_str),num_str)
float_str = str(11.345)
print(type(float_str),float_str)
# 将字符串转换成数字
num = int("11")
print(type(num),num)
num2 = float("11.345")
print(type(num2),num2)
# 整数转浮点数
float_num = float(11)
print(type(float_num),float_num)
# 浮点数转整数
int_num= int(11.345)
print(type(int_num),int_num)
5,3 类型转换注意事项
类型转换不是万能的,毕竟强扭的瓜不会甜,我们需要注意:
-
任何类型,都可以通过str(),转换成字符串
-
字符串内必须真的是数字,才可以将字符串转换为数字
六、标识符:
6.1 什么是标识符
在Python程序中,我们可以给很多东西起名字,比如:
变量的名字
方法的名字
类的名字,等等
这些名字,我们把它统一的称之为标识符,用来做内容的标识。
所以,标识符:
是用户在编程的时候所使用的一系列名字,用于给变量、类、方法等命名。
6.2 标识符命名规则
Python中,标识符命名的规则主要有3类:
•
内容限定
•
大小写敏感
•
不可使用关键字
(1) 标识符命名规则 - 内容限定
标识符命名中,只允许出现:
•英文
•中文
•数字
•下划线(_)
这四类元素。
其余任何内容都不被允许。
(2) 标识符命名规则 - 大小写敏感
以定义变量为例:
Andy = “安迪1”
andy = “安迪2”
字母a的大写和小写,是完全能够区分的。
(3) 标识符命名规则 - 不可使用关键字
6.3 变量命名规范
学完了标识符(变量、类、方法)的命名规则后,我们在来学习标识符的命名规范。
•变量名
•类名
•方法名
不同的标识符,有不同的规范。
我们目前只接触到了:变量。所以,目前学习:变量的命名规范。
•见名知意
•下划线命名法
英文字母全小写
(1) 变量命名规范 - 见名知意
变量的命名要做到:
•明了:尽量做到,看到名字,就知道是什么意思
•简洁:尽量在确保“明了”的前提下,减少名字的长度
(2) 变量命名规范 - 下划线命名法
多个单词组合变量名,要使用下划线做分隔。
(3) 变量命名规范 - 英文字母全小写
七、运算符:
7.1 算术(数学)运算符
7.2 算术运算符的演示
加减乘除和求平方,我们在前面已经使用过啦。
现在在带上:整除以及求余数,一起试一试吧。
print("1 + 1结果是:%d"%(1 + 1))
print("2 - 1结果是:%d"% (2 - 1))
print("1 * 3结果是:%d" % (1 * 3))
print("9 / 3结果是:%d" % (9/ 3))
print("9 // 2(9整除2)结果是:%d"% (9 // 2))
print("9 %% 2(9余2的结果是)结果是:%d" % (9 % 2))
print("2 的 6 次方是:结果是:%d" % (2 ** 6))
7.3 赋值运算符
八、字符串扩展:
8.1 字符串的三种定义方式
字符串在Python中有多种定义形式:
单引号定义法:name = ‘妄北y’
双引号定义法:name = ”妄北y“
三引号定义法:name = ”“”妄北y““”
三引号定义法,和多行注释的写法一样,同样支持换行操作。
使用变量接收它,它就是字符串
不使用变量接收它,就可以作为多行注释使用。
8.2 字符串的引号嵌套
如果我想要定义的字符串本身,是包含:单引号、双引号自身呢?如何写?
单引号定义法,可以内含双引号
双引号定义法,可以内含单引号
可以使用转移字符(\)来将引号解除效用,变成普通字符串
8.3 字符串拼接
如果我们有两个字符串(文本)字面量,可以将其拼接成一个字符串,通过+号即可完成,如:
print("Hello " + "Linux")
输出:
不过一般,单纯的2个字符串字面量进行拼接显得很呆,一般,字面量和变量或变量和变量之间会使用拼接,如:
name = "妄北"
print("大家好呀,我的名字叫" + name + "很高兴认识大家")
既然,字符串和变量进行拼接,我们来完成一个小需求:
定义2个变量:
•name,内容是“妄北”
•address,内容是“建材城东路9号”
要求写程序通过print语句以及字符串拼接的方式输出:
name = "妄北"
address = "建材城东路9号"
print("大家好呀,我的名字叫" + name + "很高兴认识大家。我家的地址是:" + address + ",欢迎来我家做客")
既然可以和字符串变量完成拼接,那么,是否可以和其它变量类型如数字类型完成拼接呢?
name = "妄北"
year = 11
print("大家好呀,我的名字叫" + name + "很高兴认识大家。我的年龄为" + year)
9f70391746424619bf88778242bdc266.png 8.4 字符串格式化
我们会发现,这个拼接字符串也不好用啊
1. 变量过多,拼接起来实在是太麻烦了
2. 字符串无法和数字或其它类型完成拼接。
所以,有没有其它方式,即方便又支持拼接其它类型呢?
这个方式,就是字符串的格式化
我们可以通过如下语法,完成字符串和变量的快速拼接。
其中的,%s
•% 表示:我要占位
•s 表示:将变量变成字符串放入占位的地方
所以,综合起来的意思就是:我先占个位置,等一会有个变量过来,我把它变成字符串放到占位的位置。
那,数字类型呢?可以不可以占位?
那必须可以,我们来尝试如下代码:
数字也能用%s占位吗?
可以的哦,这里是将数字 转换成了 字符串哦
也就是数字57,变成了字符串"57"被放入占位的地方
数字类型,也太没有地位了吧,竟然要被转成字符串拼接。
有没有体面一点的方式,让数字以其原本的面貌拼接进去呢?
格式符号 | 转化 |
%s | 将内容转换成字符串,放入占位位置 |
%d | 将内容转换成整数,放入占位位置 |
%f | 将内容转换成浮点型,放入占位位置 |
安排。
Python中,其实支持非常多的数据类型占位
最常用的是如下三类
如下代码,完成字符串、整数、浮点数,三种不同类型变量的占位
name = "妄北"
set_up_year = 2002
stock_price = 19.99
message ="我是::%s,我出生于:%d,我的CSDN余额为 %f "% (name,set_up_year,stock_price)
print(message)
8.5 格式化的精度控制
如下代码,完成字符串、整数、浮点数,三种不同类型变量的占位后运行结果
浮点数19.99,变成了19.990000输出
这里我们就要讲解一下,字符串格式化之“数字精度控制”
我们可以使用辅助符号"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 = 11
num2 = 11.345
print("数字11宽度限制5,结果: %5d" % num1)
print("数字11宽度限制1,结果: %1d" % num1)
print("数字11.345宽度限制7,小数精度2,结果﹔:%7.2f" % num2)
print("数字11.345不限制宽度,小数精度2,结果∶%.2f" % num2)
8.6 字符串格式化方式2
字符串格式化 - 快速写法
目前通过%符号占位已经很方便了,还能进行精度控制。
可是追求效率和优雅的Python,是否有更加优雅的方式解决问题呢?
name = "妄北"
set_up_year = 2002
stock_price = 19.99
print(f"我是::{name},我出生于:{set_up_year},我的CSDN余额为 {stock_price} ")
8.7****对表达式进行格式化
刚刚的演示,都是基于变量的。
可是,我想更加优雅些,少写点代码,直接对“表达式”进行格式化是否可行呢?
那么,我们先了解一下什么是表达式。
表达式:一条具有明确执行结果的代码语句
如:
1 + 1、5 * 2,就是表达式,因为有具体的结果,结果是一个数字
又或者,常见的变量定义:
name = “张三” age = 11 + 11
等号右侧的都是表达式呢,因为它们有具体的结果,结果赋值给了等号左侧的变量。
那么,对于字符串格式化,能否直接格式化一个表达式呢?
可以,上代码:
print( "1 * 1的结果是: %d" %(1 * 1))
print(f"1 * 1的结果是:{1 * 1}")
print("字符串在Python中的类型是:%s" % type('字符串'))
在无需使用变量进行数据存储的时候,可以直接格式化表达式,简化代码哦
九、数据输入:
9.1 获取键盘输入
试想一下,我们经常遇到过程序需要我们输入信息的场景。
比如:银行取钱
9.2 input****语句(函数)
我们前面学习过print语句(函数),可以完成将内容(字面量、变量等)输出到屏幕上。
在Python中,与之对应的还有一个input语句,用来获取键盘输入。
•数据输出:print
•数据输入:input
使用上也非常简单:
•使用input()语句可以从键盘获取输入
•使用一个变量接收(存储)input语句获取的键盘输入数据即可
print("请告诉我你是谁")
name = input()
print("Get!!!你是:%s" % name)
在前面的代码中,输出”请告诉我你是谁?“的print语句其实是多余的
input()语句其实是可以在要求使用者输入内容前,输出提示内容的哦,方式如下:
如图,在input的括号内直接填入提示内容即可。
9.3 input****语句获取的数据类型
我们刚刚试验的都是输入了字符串类型的数据。
那么如果我们输入数字类型或其它类型,结果会如何?
那么,让我们通过前面学习过的???
**type()**语句
来验证一下输入内容的数据类型吧。
可以看到,无论键盘输入何种类型的数据
最终的结果都是:字符串类型的数据
大佬觉得有用的话点个赞 👍🏻 呗。
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍
🔥🔥🔥任务在无形中完成,价值在无形中升华,让我们一起加油吧!🌙🌙🌙
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注:Python)
.gif)
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
[外链图片转存中…(img-b3A6Jfi6-1713720578333)]
[外链图片转存中…(img-z6odTow1-1713720578334)]
[外链图片转存中…(img-4W64p765-1713720578334)]
[外链图片转存中…(img-K68uy8gC-1713720578335)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注:Python)