DAY02
Posted huao990928
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DAY02相关的知识,希望对你有一定的参考价值。
一、格式化输出方式:
格式化的输出方式就是用%表示占位符,后面接变量的类型,具体的代码如下:
name = input("请输入姓名:") age = input("请输入年龄") person = "我叫%s,今年%d岁啦" %(name,int(age)) print(person)
常见的字符转换说明符
d i | 转换为带符号的十进制的整数 |
o | 转换为带符号的八进制整数 |
x X | 转换为带符号的十六进制的整数 |
e E f |
e, E 转换为浮点数(是转化为科学计数法的形式) f 是转换成十进制浮点数的形式 |
s | 使用str()函数将变量转换为字符串 |
r |
使用repr()函数将变量转换为字符串 |
使用转换符指定转换后的最小宽度:
代码演示:
num = -28 print("num is %6i" %num) print("num is %6o" %num) print("num is %6x" %num) print("num is %6e" %num) print("num is %6r" %num)
运行结果:
D:\常用软件\Python3.7\python文件\python.exe D:/学习资料/项目/练习/lianxi.py num is -28 num is -34 num is -1c num is -2.800000e+01 num is -28
这一段代码 %6i 的意思就是:%表示占位符,6表示整个结果的长度为6为,不够时用空格进行补齐。i 表示转化成为整数。所以可以看到 -28 前面有三个空格
在默认的情况下转换出来的字符串总是右边进行对其的,不够的时候进行补充空格,但是python允许改变这种形式
代码演示:
num = -28 print("num is %06i" %num) print("num is %-6o" %num) print("num is %+6x" %num) print("num is %6e" %num) print("num is %6r" %num)
运行结果:
num is -00028 num is -34 num is -1c num is -2.800000e+01 num is -2
python支持以下的标志进行对字符串输出的改写:
0:表示用0对不够的位数进行补全。只能在决定位数的前面不能在决定位数的后面
+:表示数值总是要带着符号(正数带 + 号,复数带 - 号)
-:表示字符串输出的时候进行左边对齐
控制浮点数的精度:
代码演示:
num = 23.986790909078979 print("这个小数是:%9.5e" %num)
运行结果:
num = 23.986790909078979 print("这个小数是:%9.5e" %num)
%9.5表示算上小数点一共九位小数,小数点后面5位小数
也可以在外面加上(+ ,- ,0 ,等进行修饰)
在占位符中打印百分号:
代码演示:
num = "huao" print("我叫%r ,今年效率提升了3%%" %num)
运行结果:
num = "huao" print("我叫%r ,今年效率提升了3%%" %num)
与字符串中含有单引号或者双引号用\反斜杠进行转义的不同,占位符%中含有%只能在前面加上%号就可以将%进行输出了
二、编码方式详解
计算机的编码和电报的差不多的,在早期的时候人们发电报是通过电流的变化来的。比如约定八位表示一个字节00000000表示我,00000001表示你,这样通过记录电流的强弱规律,在通过译码本就能知道发送的是什么了。计算机网络底层的传送也是这样。计算机里面存储的都是010101010的一些数字
计算机的编码形式。在早期计算机开始进行编码的时候由于是美国人发明的一开始并没有考虑到中文的形式,最原始的编码叫ASCII码,
之间的进位关系为:
8 bit(位) =1byte(字节)
1024byte = 1KB
1024kb = 1MB
1024KB = 1GB
1024GB = 1TB
后来随着计算机的普及出现了万国码 unicode 在unicode中采用4位表示一个中文,由于2的32次方能表示的数量巨大,而中文大约中有9万个会造成浪费。
所以又出现了utf-8 一个中文表示3个字节,后来utf-8就成为通用的字符编码了。
这里需要注意的是:
utf-8中:
英文只占一个字节
欧洲文字占两个字节
中文占三个字节
因为占一个字节的原因是因为英文只有26个字母,算上大小写以及各种符号以就100多种左右,而2的7次方等于128就可以包容下了。
但是为什么是8位而不是7位呢,因为人家预留一位以便以后进行使用,这也是为什么ASCII码的第一位都是0的原因,是用来预留给以后进行使用的。
中文差不多有九万个字,而2的24次方足以包含,所以中文就是三个字节
gbk编码:
gbk编码是中国国产的编码。实在ASCII码的基础进行改造而来的,所以gbk只支持中文和英文以及ASCII中的一些字符文字
三、运算符:
一些基本的运算符:
+ | 加法 |
- | 减法 |
* | 乘法 |
/ | 除法 |
% | 取余 |
// | 取整 |
>= | 大于等于 |
<= | 小于等于 |
== | 等于 |
!= | 不等于 |
& | 与 |
| | 或 |
~ | 取反 |
重点要介绍的就是布尔运算符(and , or ,not )(与,或,非)
and : 两边都成立,才返回Ture
or : 两边只要有一边成立就返回Ture
应用:
当两边是比较运算符时:
代码演示:
print(5>3 and 6>4 and 7<8 or 4<7 and 8>9)
运行结果:
D:\常用软件\Python3.7\python文件\python.exe D:/学习资料/项目/练习/lianxi.py
True
优先级:
()号>and>or
遇见and和or混合的先计算and在计算or就行,所以最后的结果是Ture
当两边是数字的时候:
and
代码演示:
print(1 and 3) print(0 and 8)
运行结果:
D:\常用软件\Python3.7\python文件\python.exe D:/学习资料/项目/练习/lianxi.py 3 0
or
代码演示
print(1 or 3) print(0 or 8)
运行结果:
D:\常用软件\Python3.7\python文件\python.exe D:/学习资料/项目/练习/lianxi.py
1
8
在python中
除了0以外的数字就是Ture ,0就是False
只用记住在 or 中 x or y x 为真值就直接输出x ,否则则输出Y
而在 and 中 和 or 恰恰相反 x为真值就输出Y ,否则则输出X
以上是关于DAY02的主要内容,如果未能解决你的问题,请参考以下文章