面向对象语言(Python)——格式化字符串、运算符


 计利当计天下利,求名当求万世名


——Lungcen

目录

Python 的认识

 python区别其他语言的优势

Python数据类型和运算符

一个弱类型的语言

(int)整数类型

进制转换和数字分隔符

 (float)小数/浮点数

(complex) 复数类型

字符串详细解释

(bytes)类型及用法

 (bool)布尔类型

人机交互—— input()函数、print()函数

 字符

格式化字符串

 转换说明符

最小输出宽度 

对齐方式 、小数精度

转义字符

 类型转换

运算符

 算术运算符

 位运算符

 赋值运算符

 比较运算符

 逻辑运算符

三目运算符

优先级和结合性 



Python 的认识


 python区别其他语言的优势

        21世纪是智能的一个时代,是一个计算机的时代,由于AI方面都是一些其他方面的顶尖人才来组成的,他们又不能大量的将时间用在学习Java这些语言,所以就创建了一门简介优美、简单易学、最接近自然语言的程序设计语言——Python,后面逐渐成为了人工智能和大数据时代的第一开发语言。

Python数据类型和运算符

Python的数据类型主要分为七大类:

        Numbers(数字):(int、float)

        bool(布尔):True、False

        String(字符串):成对的单、双、三引号

        List(列表):中括号 [1、2、3、4]

        Tuple(元组):小括号 (1、2、3、4)

        Set(集合):大括号 {1、2、3、4}

        Dictionary(字典):大括号 {name:李华,年龄:18}

一个弱类型的语言

        在强类型的编程语言中,定义变量时要指明变量的类型,而且赋值的数据也必须是相同类型的,C 语言、C++、Java是强类型语言的代表。

        弱类型语言的变量无须声明就可以直接赋值,对一个不存在的变量赋值就相当于定义了一个新变量。 变量的数据类型可以随时改变。

        其实弱类型并不多就代表没有类型,只是代表对类型的要求不是很严格,在书写代码时不用刻意关注类型,但是在编程语言的内部仍然是有类型的

(int)整数类型

整数就是没有小数部分的数字,数学中的整数包括正整数、0 和负整数。

Python中的整数是不分类型,或者说它只有一种类型的整数。

Python 整数的取值范围是无限的,不管多大或者多小的数字,Python 都能轻松处理。

进制转换和数字分隔符

1) 十进制形式:常见的整数就是十进制形式,它由 0~9 共十个数字排列组合而成。

2) 二进制形式:由 0 和 1 两个数字组成,书写时以 0b 或 0B 开头。

3) 八进制形式:八进制整数由 0~7 共八个数字组成,以 0o 或 0O 开头。第一个符号是数字 0,第二个符号是大写或小写的字母 O。 

4) 十六进制形式:由 0~9 十个数字以及 A~F(或 a~f)六个字母组成,书写时以 0x 或 0X 开头。

数字分隔符:用来辨识位数的大小

a = 2 #十进制
b = 0b10 #二进制
c = 0o2 #八进制
d = 0x2 #十六进制

e = 12345
f = 12_345 #便于认识大小
print(a,b) #输出的两个数是一样的

 (float)小数/浮点数

1、十进制形式

        1.2, 23.4, 567.8

2、指数形式

        (aEn   aen)1E2   1e2      都等价于      1x10^2

         a 为尾数部分,是一个十进制数;n 为指数部分,是一个十进制整数

        只要写成指数形式就是小数,即使它的最终值看起来像一个整数。

        例如 14E3 等价于 14000,但 14E3 是一个小数。

(complex) 复数类型

复数,相信大家可能都有点印象,复数由实部(real)和虚部(imag)构成,就是a+bi,并且还有 i 的平方为-1

a1 = 1 + 2j
print("Value: ", a1)
print("Type", type(a1))

a2 = 5 - 1j
print("Value: ", a2)

print("加法: ", a1+a2) #对复数进行简单计算
print("乘法: ", a1*a2)

字符串详细解释

1、若字符串内出现引号

        1、转义

        2、双引号包单引号

        3、单引号包双引号

2、若你输入的字符串很长很长的话,如果直接在工作区里换行的话会报错的,那么你可以在一行的尾巴加反斜杠 \,就可以在工作区里换行

3、长字符串,就是很才很长,但是不想加反斜杠,可以用三个双引号 """ 或者三个单引号 ''' 

#需要用\进行转义,不然会报错的
str1 = 'I\'m GOD!'
str2 = "英文的双引号是\",中文的双引号是“"

#使用双引号包围含有单引号的字符串
str1 = "I'm GOD!"
#使用单引号包围含有双引号的字符串
str2 = '英文的双引号是",中文的双引号是“'

s1 = 'kljfdsklhf dshfj dfjk fdasfksdhf \
kldshf ksdhf ncbv hsf jbahf oiahf. I a b  sd.'

s2 = """kljfdsklhf dshfj dfjk fdasfksdhf
kldshf ksdhf ncbv hsf jbahf oiahf.I a b  sd."""

(bytes)类型及用法

字节串(bytes)和字符串(string)的对比:

(1)字符串由若干个字符组成,以字符为单位进行操作;

         字节串由若干个字节组成,以字节为单位进行操作。

(2)字节串和字符串除了操作的数据单元不同之外,它们支持的所有方法都基本相同。

(3)字节串和字符串都是不可变序列,不能随意增加和删除数据。

bytes 只负责以字节序列的形式(二进制形式)来存储数据

1、如果字符串的内容都是 ASCII 字符,那么直接在字符串前面添加b前缀就可以转换成 bytes。

2、bytes 是一个类,调用它的构造方法,也就是 bytes(),可以将字符串按照指定的字符集转换成 bytes;如果不指定字符集,那么默认采用 UTF-8。

3、字符串本身有一个 encode() 方法,该方法专门用来将字符串按照指定的字符集转换成对应的字节串;如果不指定字符集,那么默认采用 UTF-8。

4、bytes 类也有一个 decode() 方法,通过该方法可以将 bytes 对象转换为字符串

#通过构造函数创建空 bytes
b1 = bytes()
#通过空字符串创建空 bytes
b2 = b''
#通过b前缀将字符串转换成 bytes
b3 = b'http://www.baidu.com/python/'
#为 bytes() 方法指定字符集
b4 = bytes('百度', encoding='UTF-8')
#通过 encode() 方法将字符串转换成 bytes
b5 = "百度".encode('UTF-8')

# b4、b5的 输出如下:
# b'\xe7\x99\xbe\xe5\xba\xa6'
# b'\xe7\x99\xbe\xe5\xba\xa6'

 (bool)布尔类型

True 和 False 是 Python 中的关键字,当作为 Python 代码输入时,一定要注意字母的大小写,否则解释器会报错。

有趣的是,在python中布尔类型还可以当做整数来对待,即 True 相当于整数值 1,False 相当于整数值 0。

人机交互—— input()函数、print()函数

input() 函数的用法为:str = input(tipmsg)

str 表示一个字符串类型的变量,input 会将读取到的字符串放入 str 中。

tipmsg 表示提示信息,它会显示在控制台上,告诉用户应该输入什么样的内容;

如果不写 tipmsg,就不会有任何提示信息。

print() 函数的用法为:print (value,...,sep='',end='\n',file=sys.stdout,flush=False)

value 参数可以接受任意多个变量或值

print() 函数默认以空格隔开多个变量,改变分隔符可通过 sep 参数进行设置;

print() 函数输出之后总会换行, end 参数的默认值是 “\n”;

file 参数指定 print() 函数的输出目标,参数的默认值为 sys.stdout,该默认值代表了系统标准 输出,也就是屏幕;

print() 函数的 flush 参数用于控制输出缓存,该参数一般保持为 False 即可;

name = '你好'
age = 8
#同时输出多个变量和字符串
print("姓名:", name, "年龄:", age)
print("姓名:", name, "年龄:", age, sep=' — ')
print(40,end="\t")
print(50)
print(60,end=" ^—^ ")
print(70)

 字符


格式化字符串

一个以 % 开头的转换说明符对各种类型的数据进行格式化输出

例如:age = 3

print("战鹰战鹰我%d岁啦!" % age)

 转换说明符

转换说明符只是一个占位符,它会被后面表达式的值(需要加 % 号)代替。

%d、%i 转换为带符号的十进制整数

%o 转换为带符号的八进制整数

%x、%X 转换为带符号的十六进制整数

%e 转化为科学计数法表示的浮点数(e 小写)

%E 转化为科学计数法表示的浮点数(E 大写)

%f、%F 转化为十进制浮点数

%g 智能选择使用 %f 或 %e 格式

%G 智能选择使用 %F 或 %E 格式

%c 格式化字符及其 ASCII 码

%r 使用 repr() 函数将表达式转换为字符串

%s 使用 str() 函数将表达式转换为字符串

最小输出宽度 

n = 12121212
print("%10d." % n) #%10d 表示输出的整数宽度至少为10

print("%5d." % n) #%5d 表示输出的整数宽度至少为5

#对于整数和字符串,当数据的实际宽度小于指定宽度时,会在左侧以空格补齐
#当数据的实际宽度大于指定宽度时,会按照数据的实际宽度输出
url = "http://www.baidu.com"
print("%35s." % url)
print("%20s." % url)

对齐方式 、小数精度

- 指定左对齐

+ 表示输出的数字总要带着符号;正数带 + ,负数带 - 。

0 表示宽度不足时补充 0,而不是补充空格。

默认右对齐,可以向左用0填充符号

对于整数,指定左对齐时,在右边补 0 是没有效果的,因为这样会改变整数的值。

对于小数,以上三个标志可以同时存在。

对于字符串,只能使用 - 标志,因为符号对于字符串没有意义,而补 0 会改变字符串的值。

小数精度:精度值需要放在最小宽度之后,中间用点号 . 隔开;

也可以不写最小宽度,只写精度。

m 表示最小宽度n 表示输出精度 . 是必须存在的

例如:%m.nf          %.nf

n = 123123
print("%09d" % n)# %09d 表示最小宽度为9,左边补0
print("%+9d" % n)# %+9d 表示最小宽度为9,带上符号
f = 121.8
print("%-+010f" % f)# %-+010f 表示最小宽度为10,左对齐,带上符号
s = "Hello world"
print("%-10s." % s)# %-10s 表示最小宽度为10,左对齐

f = 3.1415926
print("%8.3f" % f)# 最小宽度为8,小数点后保留3位

转义字符

 ASCII 编码为每个字符都分配了唯一的编号,称为编码值。

在 Python 中,一个 ASCII 字符除了可 以用它的实体(也就是真正的字符)表示,还可以用它的编码值表示,这种使用编码值来间接地表示字 符的方式称为转义字符。

转义字符以 \0 或者 \x 开头,以 \0 开头表示后跟八进制形式的编码值,以 \x 开头表示后跟十六进 制形式的编码值,Python 中的转义字符只能使用八进制或者十六进制。

\0dd  \xhh        dd 表示八进制数字,hh 表示十六进制数字。

\n 换行符,将光标位置移到下一行开头

\r 回车符,将光标位置移到本行开头

\t 水平制表符,也即 Tab 键,一般相当于四个空格

\b 退格(Backspace),将光标位置移到前一列

\\ 反斜线         \' 单引号         \" 双引号

\ 在字符串行尾的续行符,即一行未完,转到下一行继续写

 类型转换

int(x) 将 x 转换成整数类型

float(x) 将 x 转换成浮点数类型

complex(real,[,imag]) 创建一个复数 str(x) 将 x 转换为字符串

repr(x) 将 x 转换为表达式字符串

eval(str) 计算在字符串中的有效 Python 表达式,并返回一个对象

chr(x) 将整数 x 转换为一个字符

ord(x) 将一个字符 x 转换为它对应的整数值

hex(x) 将一个整数 x 转换为一个十六进制字符串

oct(x) 将一个整数 x 转换为一个八进制的字符串

输出信息除了用占位符,还可以用 + 连接,不过条件是需要 + 两端的类型一致

height = 175.6

print("您的身高:"+height) #由于height是浮点型不能和字符串连接

# 可以让浮点型进行类型转换为字符串


运算符


 算术运算符

算术运算符也即数学运算符,用来对数字进行数学运算,比如加减乘除。

常用算术运算符图片

+ 加法运算符,除了做加法,还可以当做字符串拼接符

- 减法运算符,除了可以用作减法运算之外,还可以用作求负运算(正数变负数,负数变正数)

*乘法运算符, 除了可以用作乘法运算,还可以用来重复字符串

/ 表示普通除法,使用它计算出来的结果和数学中的计算结果相同。

// 表示整除只保留结果的整数部分,舍弃小数部分

                                        注意是直接丢掉小数部分,而不是四舍五 入。

% 运算符,用来求得两个数相除的余数,包括整数和小数。

** 运算符,用来求一个 x 的 y 次方,也即次方(乘方)运算符。

                        由于开方是次方的逆运算,所以也可以使用 ** 运算符间接地实现开方运算。

 位运算符

Python 位运算按照数据在内存中的二进制位(Bit)进行操作, 位运算符只能用来操作整数类型,它按照整数在内存中的二进制形式进行计算

位运算符

 & 按位与运算符,运算规则是:只有参与 & 运算的两个位都为 1 时,结果才为 1,否则为 0。

例如 1&1 为 1, 0&0 为 0, 1&0 也为 0,这和逻辑运算符 && 非常类似。

& 运算符操作的是数据在内存中存储的原始二进制位,而不是数据本身的二进制形式;其他位运算符也一样

以-9为例:1111 1111 -- 1111 1111 -- 1111 1111 -- 1111 0111 (-9 在内存中的存储)

-0000 0000 -- 0000 0000 -- 0000 0000 -- 0000 1001 (-9 的二进制形式)

|按位或运算符,运算规则是:两个二进制位有一个为 1 时,结果就为 1,两个都为 0 时结果才为 0。

例如 1|1 为 1, 0|0 为0,1|0 为1,这和逻辑运算中的 || 非常类似。

^按位异或运算符,运算规则是:参与运算的两个二进制位不同时,结果为 1,相同时结果为 0。例 如 0^1 为 1, 0^0 为 0, 1^1 为 0。

~ 按位取反运算符,为单目运算符(只有一个操作数),右结合性,作用是对参与运算的二进制位取 反。例如 ~1 为0, ~0 为1,这和逻辑运算中的 ! 非常类似。

<<左移运算符 , 用来把操作数的各个二进制位全部左移若干位,高位丢弃,低位补 0。

>>右移运算符,用来把操作数的各个二进制位全部右移若干位,低位丢弃,高位补 0 或 1。 如果数据的最高位是 0,那么就补 0;如果最高位是 1,那么就补 1。

 赋值运算符

赋值运算符用来把右侧的值传递给左侧的变量(或者常量)

可以直接将右侧的值交给左侧的变 量,也可以进行某些运算后再交给左侧的变量

比如加减乘除、函数调用、逻辑运算

python扩展后的赋值运算符

 比较运算符

比较运算符,也称关系运算符,用于对常量、变量或表达式的结果进行大小比较。

如果这种比较是 成立的,则返回 True(真),反之则返回 False(假)。

比较运算符

 

== 用来比较两个变量的值是否相等,而 is 则用来比对两个变量引用的是否是同一个对象

如何判断两个对象是否相同呢?答案是判断两个对象的内存地址。如果内存地址相同,说明 两个对象使用的是同一块内存,当然就是同一个对象了

 逻辑运算符

逻辑运算符

 逻辑运算符用于操作 bool 类型的表达式,执行结果也是 bool 类型,这两点其实都是错误的!

Python 逻辑运算符可以用来操作任何类型的表达式,不管表达式是不是 bool 类型;

同时,逻辑运算的结果也不一定是 bool 类型,它也可以是任意类型。

and 和 or 不一定会计算右边表达式的值,有时候只计算左边表达式的值就能得到 最终结果。

如果逻辑运算符的两边都是数值,那么and 和 or 运算符会将其中一个表达式的值作为最终结果,而不是将 True 或者 False 作为最 终结果。

and 运算:

                如果左边表达式的值为假,那么就不用计算右边表达式的值了,因为不管右边表达式的值 是什么,都不会影响最终结果,最终结果都是假,此时 and 会把左边表达式的值作为最终结果。

                如果左边表达式的值为真,那么最终值是不能确定的,and 会继续计算右边表达式的值, 并将右边表达式的值作为最终结果。

or 运算:

                 如果左边表达式的值为真,那么就不用计算右边表达式的值了,因为不管右边表达式的值 是什么,都不会影响最终结果,最终结果都是真,此时 or 会把左边表达式的值作为最终结果。

                如果左边表达式的值为假,那么最终值是不能确定的,or 会继续计算右边表达式的值, 并将右边表达式的值作为最终结果。

三目运算符

三目运算符(条件运算符):exp1 if contion else exp2

condition 是判断条件,exp1 和 exp2 是两个表达式。

如果 condition 成立(结果为真),就执行 exp1,并把 exp1 的结果作为整个表达式的结果;

如果 condition 不成立(结果为假),就执行 exp2,并把 exp2 的结果作为整个表达式的结果。

优先级和结合性 

优先级和结合性

所谓结合性,就是当一个表达式中出现多个优先级相同的运算符时,先执行哪个运算符:先执行左 边的叫左结合性,先执行右边的叫右结合性。

Python 中大部分运算符都具有左结合性,也就是从左到右执行;

只有 ** 乘方运算符、单目运算符 (例如 not 逻辑非运算符)、赋值运算符和三目运算符例外,它们具有右结合性,也就是从右向左执行。


 计利当计天下利,求名当求万世名


——Lungcen

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lungcen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值