【10月更文挑战第4天】
1.基础概念
python就是将不同的数据划分成了不同的类型
就像我们生活中的数据有数字、字符等数据一样
小知识点:
注释:#
全体注释:Alt+F3
取消注释:Alt+F4
2.数值类型
数值类型概括
数值类型分为三种:整型int 浮点型 float 布尔型 bool
整型:1 2 3 4 5 6
浮点型: 1.1 3.1415926 5.20
布尔型:True False
我们在交互模式中输入type(数据)就能显示你所输入的数据的类型
type能够在交互模式查看数据类型
type在交互模式的用法:
123
type(123)
<class 'int'>
type(1.5)
<class 'float'>
type(True)
<class 'bool'>
在括号内输入你想判断的数据,直接回车就能返回这个数据的类型
对于交互模式中bool值的判断:
123
2>1
True
1<0.5
False
1>2
False
输入我们要判断的表达式,然后系统会对这个表达式进行判断,返回对应的bool值
注意我们这个的bool类型的两个值True和False 开头的字母一定要是大写的,否则是会报错的
为什么这个布尔值是属于数值类型呢?
#为什么这个布尔值是属于数值类型呢?
#我们在交互模式使用True+1就输出了一个2
#使用False+1就是输出的是1
True+1
2
False+1
1
实际上False表示的是0
True表示的是1
我们在交互模式利用上述的加法就能判断出这个结果
所以我们的True除了表示真,还能表示1
False除了表示假,还能表示0
算术运算符
运算符 | 意义 | 例子 |
---|---|---|
+ | 两个数相加 | 10+2=12 |
- | 两个数相减 | 10-2=8 |
* | 两个数相乘 | 10*2=20 |
/ | 两个数相除,结果为浮点数(小数) | 10/2=5.0 |
// | 两个数想除,结果为向下取整数 | 10//2=5 |
% | 取模,返回两个数相除的余数 | 10%3=1 |
** | 幂运算,返回乘方结果 | 10**2=100 |
在我们的python中,True和False同时也代表着1和0,我们可以直接进行运算
True+False=1
对于表中的两个操作符:/和//
一个/的话就是编译器会进行小数的保留
两个//的话就是编译器会将小数部分删除,仅仅只保留住整数部分
对于%这个运算符的话,10/3=3....1
那么这个1就是10%3的结果,就是余数
运算符使用方法:
2*3
6
10**2
100
10/3
3.3333333333333335
10//3
3
10%3
1
我们的所有运算符符号一定要用英文符号
我们在进行算术运算中,只要我们的连个数据中一个数据是浮点数的话,那么结果一定会是浮点数的
一个数据是浮点数,结果一定是浮点数的:
10//3.0
3.0
10//2.0
5.0
只要有浮点数参与运算,那么结果一定是浮点数
对于负数进行呢取整以及其他的操作:
-10//5
-2
-10/3
-3.3333333333333335
-10//3
-4
如果我们是对负数进行取整的话,假如-10//3=-4
因为我们进行取整的话就是比原先不取整的值小一些
不管是整数还是负数都一样,取整就直接将小数部分剔除了
取余%--两数相处,商为余数,取余数部分
幂运算 **就是几次方 10**2=100
-10%3
2
-10//4
-3
为什么-10%3得到的是2呢,因为%是进行求余数的操作的
我们的-10//4=-3 我们这里是直接取整的,后面剩下的我们没要直接舍去
但是-4*3=-12
就是说明我们的余数是2,被丢弃的那一部分是2
那么我们的-12+2=-10
那么-10%3=2
所以说负数取余数的话是有技巧的
就是-12< -10的相隔是2
## 概念:
字符串有三种定义方式:
1.单引号
2.双引号
3.三引号(三对单引号和三对双引号)
单引号和双引号使用时注意事项
python
Traceback (most recent call last):
File "<pyshell#0>", line 1, in <module>
python
NameError: name 'python' is not defined
#如果不加引号就是会报错的
'python'
'python'
"python "
'python '
如果我们在交互模式直接输入python这串字符的话,那么是肯定会报错的
我们需要将这串字符用引号包裹起来
如果我们不用引号括起来的,那么编译器就会以为这个是一个名称,就会检查我们这个名字有没有定义过,没有定义是一定会报错的
如果是文本数据的话,我们一定要用引号括起来的,不然是会报错的
英文和中文的引号是不一样的
我们需要的是英文版本的引号
我们利用type()来进行数据类型的判断,这里编译器输出的是str就是字符串
字符串类型的判断:
type('python')
<class 'str'>
type("python")
<class 'str'>
type('123')
<class 'str'>
单引号和双引号本质上是没有多大的区别的
我们在交互模式输入"python"和'python' 输出的结果都是'python'
引号是对应匹配的
单引号对单引号
双引号对双引号
单引号带来的错误:
'I'am fine
SyntaxError: invalid syntax
#我们如果是这么写的话那么就会报错的
#因为单引号和双引号是成双成对的进行配对的
对于这个单引号带来的错误
如果我们的句子里面已经有单引号的话,那么我们是需要用双引号进行括起来的
如果我们还是用单引号的话,那么因为匹配的问题我们后面的那个单引号就没有配对成功了,就会报错
所以我们是需要进行一个双引号的包裹的
"I'am fine" #回车
"I'am fine"
双引号和双引号匹配成功,那么中间的内容就会被括起来的,那么我们编译器就将中间的内容进行输出
'this is "box"'
'this is "box"'
引号是成对出现的,就近匹配的
单包双,双包单
•单引号和双引号区分的原因:为了嵌套【引号里面还有引号】使用,如果有这种情况,需要使用两种不同的引号
三引号使用时注意事项
三引号 三对单引号 三对双引号
'''
dsad d
dfk
dsbfkj
dasdas
'''
"""
dsad d
dfk
dsbfkj
dasdas
"""
我们使用三对单引号的话我们是能够实现任意换行的
直接将大型的文本进行注释
包裹在三引号之内的我们能随意换行进行注释
只有三引号能实现换行的操作
单引号和双引号是不能实现这个操作的
字符串加号和星号
数字+数字---相加
字符串+字符串--拼接
字符串的+法使用:
#交互模式
'2'+'3'
'23'
2+3
5
字符1+字符1得到的就是11
就是相当于拼接
数字*数字---两个数字进行相乘
字符串*正整数---字符串重复多少次
字符串的*的使用:
'5201314'*6
'520131452013145201314520131452013145201314'
三种格式化
%格式化
语法:'格式化的字符串'%(填充的数据)
占位符:我们需要在字符串里面占一个位置,用于放后面填充的数据
三种占位符:%s字符串 %d整数 %f浮点数
print('你的成绩是%f'%(12.4))
通过字符串内的占位符,然后我们在字符串外面输入我们要填充的数字
对于%f的话我们这里默认是6位小数
如果我们是想进行小数位的控制的话,那么我们需要在%和f中间加上.n
保留几位小数,这个n就是几
设置小数位的方法:
#设置小数位
print('你的成绩是%f'%(12.4))#默认保留6位小数
print('你的成绩是%.2f'%(12.4))#我们将其设置为2位小数
设置长度,超过我们设置的长度我们就不进行处理
如果没有超过我们设置的长度的话,我们就进行填充处理
默认的话是填充空格的
我们可以使其填充的数字是0
一般是不填充符号类的
#编辑模式
print('%3d'%(1))
print('%d'%(1))
#交互模式
1
1
#可见的区别
如何将不足长度的地方设置为0呢?
我们在%3d前面加上0
那么不满足长度的地方就会自动填充为0了
只有长度不够的时候才会进行填充的
我们在表达num1+num2的结果的时候我们也是能用占位符的
输出 数字+数字=和 的格式:
#编辑模式
num1=eval(input("请输入数据1:"))
num2=eval(input("请输入数据2:"))
##print(num1+num2)
#我们使用格式化进行表示最终的结果
print('%d'%(num1+num2))
print('%f+%f=%f'%(num1,num2,num1+num2))
#每个占位符和数据进行对应的
#交互模式
请输入数据1:5
请输入数据2:6
11
5.000000+6.000000=11.000000
在这个表达式中对于%f那行代码的另一种写法
print('%s+%s=%s'%(num1,num2,num1+num2))
#我们直接将这个%f替换成%s就行了
#交互模式
5+6=11
为什么我们能进行代码中这么交换呢?
就是我们将这个代码中三个占位符对应的数据先转换为字符串
然后在打印的时候我们就能通过print将引号去掉了
但是还是不建议这种写法
如果是写%f的话,我们在前面加上.n进行小数位的控制
'%d'%(数据)
foramt占位符
语法:'格式化的字符串'.format(填充数据)
一定要看清楚
format前面有个小数点,别忘了加
占位符:{}
设置小数位数::.nf---保留n位小数 这里是冒号+点+nf 冒号的作用就是区分数据和格式的
format使用方法:
#编辑模式
print('你的大小是{:.2f}'.format(12.4))
print('你的大小是{:03d}'.format(1))
#交互模式
你的大小是12.40
你的大小是001
一定要在花括号里面写冒号
输出 数字+数字=和 的格式
#编辑模式
num1=eval(input("请输入数据1:"))
num2=eval(input("请输入数据2:"))
print('{}+{}={}'.format(num1,num2,num1+num2))
#交互模式
请输入数据1:5
请输入数据2:5
5+5=10
'{:,nf}.format()'
f表达式
这里的f是format的缩写
占位符:{}
语法格式:f'{格式化的数据}'
保留n个小数:
#编辑模式
print(f'{1:.2f}')#打印1保留两位小数
#冒号的作用是分割数据和格式
#交互模式
1.00
'f{格式化的数据:,nf}'
设置数据长度,不足填充数据,超过不做处理
#编辑模式
print(f'{1:05d}')
#交互模式
00001
输出 数字+数字=和 的格式
#编辑模式
num1=eval(input("请输入数据1:"))
num2=eval(input("请输入数据2:"))
print(f'{num1}+{num2}={num1+num2}')
print(f'{num1:03}+{num2:03}={num1+num2:03}')
#交互模式
请输入数据1:5
请输入数据2:6
5+6=11
005+006=011
对于花括号中的冒号的话,我们如果对数据有要求的话我们是能对其在冒号后面进行要求的
比如说在冒号后面加03d
如果没有要求的话我们是可以直接在花括号里面写个数据就行了
这三种方法中我感觉f表达式是最简单的格式化
小题目
1.键盘输入用户名,键盘输入密码,将用户名和密码信息进行格式化输出
格式为:'用户xxx你好,你的密码为xxx'
#编辑模式
name=input("请输入你的姓名")
code=input("请输入你的密码")
print('%s你好,你的密码是%s'%(name,code))
print('{}你好,你的密码是{}'.format(name ,code))
print(f'{name}你好,你的密码是{code}')
#交互模式
请输入你的姓名kyk
请输入你的密码666
kyk你好,你的密码是666
kyk你好,你的密码是666
kyk你好,你的密码是666
2.键盘输入用户电话,以及话费,用格式化进行输出了
tel=eval(input("请输入你的电话"))
money=eval(input("请输入话费"))
#因为我们这里输入的money是一个字符串,我们是不能对其小数位作调整的,不然是会报错的
#如果想要调整话费的小数点位的话,我们需要将我们输入的数据转换为浮点型
print(f'用户:{tel:013d},你这个月的话费为{money:.2f}')
#经过打印我们知道如果我们是字符串的话,长度不够的情况下,是在右边进行补空格的操作的
#那么我们将这个字符串类型进行改变,改成整形的话,那么填充的数字就是左边
#我们指定长度为13位,不满的话就填充0
关于不同类型对齐的知识
字符串在打印的时候长度不够的时候是在左边进行空格填充的操作的
整型就是在右边进行填充
那么我们如果进行数据在打印的时候的对齐方式呢?
我们可以在打印的时候使用对齐符
左对齐,右边填充<
右对齐,左边填充>
居中,两边填充^
那么是如何使用这三个符号呢?
字符串对齐符号的使用方式:
#字符串类型在右边填充,整形类型在左边填充
#设置填充数据的对齐方式----填充符 对齐方式 长度 -> 0<5 (长度为5,不足填充0,左对齐)
num=123
#左对齐<
print(f'{num:<5}') #长度为5不足填充空格
print(f'{num:0<5}')#长度为5不足填充0
#右对齐>
print(f'{num:>5}')
#居中^
print(f'{num:0^5}')
#左对齐就在右边填充0,右对齐就在左边填充0,数据居中对齐就是在两边填充0
填充符 对齐方式 长度 -> 0<5 (长度为5,不足填充0,左对齐)
这里是以f表达式为例子