Python入门 编程基本概念 Day 3

布尔值:

Python3中,把True和False定义成关键字,本质上还是1和0

一些特殊的布尔类型值为False,如False,0,0.0,空值None,空列表对象,空range对象,空迭代对象。其他情况,均为True。 Print(‘False’) #True

运算符:逻辑运算符,位运算符,比较运算符

逻辑运算符:and,or,not

运算符 

格式

说明

or 逻辑或 

x or y

 x为true,则不计算y,直接返回true;x为false,则返回y

and 逻辑与

x and y

 x为true,则返回y的值x为false,则不计算y,直接返回false

not 逻辑非 

not x

x为true,返回false;x为false,返回true

 #测试逻辑运算符

a,b,c=10, 20, 30

print((a<b) and(b<c)) #and并且输出结果是True

print((a>b) or(b>c)) #or或者输出结果是False

print(not(b<c)) #not非输出结果是False

比较运算符:

所有运算符返回1表示真,返回0表示假,这与特殊变量True和False等价

以下假设变量a为15,变量b为30∶

运算符

描述

实例

==

等于-比较对象的值是否相等

(a==b)返回False

!=

不等于-比较两个对象的值是否不相等

(a!=b)返回true

>

大于-返回x是否大于y

(a>b)返回False

<

小于-返回x是否小于y

(a<b)返回true

>=

大于等于-返回x是否大于等于y

(a>=b)返回False

<=

小于等于-返回x是否小于等于y

(a<=b)返回true

a=4

print(a<=30)

#关系运算符可以连用

if(3<a<10):

print("a在3和10之间”)

位运算符:位运算符是把数字看做二进制来计算的

运算符

描述

&

按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0

|

按位或运算符:只要对应的二个二进位有一个为1时,结果为就为1.

^

按位异或运算符:当两对应的二进制位相异时,结果为1

~

按位取反运算符:对数据的每个二进制取反,既把1变为0,把0变为1,~x类似于- x-1

<<

左移动运算符:运算数的每个二进位全部左移若干位,由"<<"右边的数据指定移动的位数,高位丢弃,低位补0

>>

右移动运算符:把">>"左边运算数的每个二进制位全部右移若干位,">>"右边的数指定移动的位数

a = 0b11001

b = 0b01000

print(bin(a | b))  # bin()可以将数字转成二进制表示  '0b11001'

print(bin(a & b))  # 与

print(bin(a ^ b))  # 异或

print(~b)  # ~x相当于-x-1

print(3 << 2)  # 左移一位相当于乘以2,左移两位相当于3*4

print(20 >> 1)  # 右移一位相当于除以2

Python和c,java不一样,Python不支持自增(++)和自减(--)

同一运算符:用于比较两个对象的存储单元,实际上比较的是对象的地址

运算符

描述

is

is是判断两个标识符是不是引用同一个对象

is not

is not是判断两个标识符是不是引用不同对象

is与==的区别:

is用于判断两个变量引用对象是否为同一个,即比较对象的地址

==用于判断引用变量引用对象的值是否相等,默认调用对象的--eq--()方法

整数缓存模式:

命令行模式下,仅仅对小的数字进行缓存,范围为[-5,256],用数组实现,连续分配空间

文件模式下,所有数字都被缓存,缓存到链表中,不连续分配空间

成员运算符:测试实例中包含了一系列成员,包括字符串,列表和元组

运算符

描述

in

如果能在指定的序列中找到值返回True,否则返回False

not in

不在,则返回True

运算级优先级问题:复杂表达式实用小括号组织

位运算和算术运算>比较运算符>赋值运算符>逻辑运算符

字符串基本特点:

字符串的本质是字符序列

Python不支持单字符类型,单字符也是可以作为一个字符串使用的

字符串的编码,Python3默认的是16位的Unicode编码

使用内置函数ord()可以把字符转换成对应的Unicode码

使用内置函数chr()可以把十进制数字转换成对应的字符

引号创建字符串:

我们可以通过单引号和双引号创建字符串

可以创建本身就包含引号的字符串,不用使用转义字符

连续三个单引号和双引号可以创建多行字符串,会保留原来的格式

Python允许空字符串的存在,不包含任何字符且长度为0

len()用于计算字符串包含了多少字符

转义字符:

\t:横向制表符

\n:换行

\b:退格(backspace)

\r:回车

字符串拼接:可以使用+将多个字符串拼接起来

如果+两边都是字符串,则拼接

如果+两边都是数字,则加法运算

如果+两边类型不同,则抛出异常

可以将多个字面字符串直接放到一起实现拼接

字符串复制:使用*可以实现字符串复制

不换行打印:可以通过参数end=‘任意字符串’,实现末尾添加任何内容

Print(‘txt’,end=’ ‘)

Print(‘txt’,end=’##’)

Print(‘txt’)

>>>txt txt##txt

从控制台读取字符串:

我们可以使用input()从控制台读取键盘输入的内容

replace()实现字符串的替换:

a=’1234’

a=a.replace(‘1’,’一’)

print(a)

>>>一234 创建了新的字符串对象,并指向了变量a,而不是修改了之前的字符串

str()实现数字转型字符串

str()可以帮助我们把其它数据类型转换成字符串

当我们调用print()时,解释器自动调用了str()将非字符串的对象转成了字符串

使用[]提取字符:

字符串本质是字符序列,我们可以通过在字符串后面加[],在[]里面指定偏移量

正向搜索:

最左侧第一个字符,偏移量是0,第二个偏移量是1,直到len(str)-1为止

反向搜索:

最右侧第一个字符,偏移量是-1,倒数第二个偏移量是-2,直到-len(str)为止

字符串切片slice操作:

[:]:提取整个字符串

[start:]:从start索引开始到结尾

[:end]:从头开始直到end-1

[start:enf]:从start到end-1

[start:end:step]:从start到end-1,步长是step

切片slice操作可以让我们快速提取子字符串,标准格式为:

[起始偏移量start:终止偏移量end:步长step]

split()分割和join()合并:

split()可以基于指定分隔符将字符串分割成多个字符串(存储到列表中),如果不指定分隔符,则默认使用空白字符

a='to be or not to be'

a=a.split()

>>>['to', 'be', 'or', 'not', 'to', 'be']

a=a.split(‘be’)

>>>['to ', ' or not to ', '']

join()的作用正好和split()相反,用于将一系列字符串连接起来

a=[‘1’,’2’,’3’]

a='*'.join(a)

print(a) >>>1*2*3

import time

time1=time.time()

a=''

for i in range(1000000):

    a+='sx'

time2=time.time()

print('+连接的运算时间:'+str(time2-time1))

time3=time.time()

b=[]

for i in range(1000000):

    b.append('sx')

b=''.join(b)

time4=time.time()

print('join连接的运算时间:'+str(time4-time3))

#+连接的运算时间:0.5150294303894043

#join连接的运算时间:0.2130124568939209

使用字符串拼接符+,会生成新的字符串对象,而join函数在拼接字符串之前会计算所有字符串的长度,然后逐一拷贝,仅仅建立一次对象,推荐使用join函数

字符串驻留机制和字符串比较:

字符串驻留:常量字符串只保留一份

c=’1#’

d=’1#’

print(c is d) #True

字符串比较和同一性:

可以直接使用==和!=对字符串进行比较,是否含有相同的字符

使用is和not is,判断两个对象是否为同一个对象,比较的是对象的地址,即id(object1)和id(object2)是否相等

成员操作符判断子字符串:

使用in和not in 关键字,判断某个字符(字符串)是否存在于字符串中

字符串常用方法:

常用查找方法:

a=’123456’

len():字符串长度 >>>6

a.startswith(‘1’):以指定字符串开头 >>> True

a.endswith(‘6’):以指定字符串结尾 >>> True

a.find(‘2’):第一次出现指定字符串的位置 >>>1

a.rfind(‘6’):最后一次出现指定字符串的位置 >>>5

a.count(‘2’):指定字符串出现了几次 >>>1

a.isalnum():所有字符串全是数字或字母 >>>True

去除首尾信息:

我们可以通过strip()去除字符串首尾指定信息,通过lstrip()去除字符串左边指定信息,rstrip()去除字符串右边指定信息

a='*1*2*3*'

a=a.strip('*')

print(a) #1*2*3

a=a.lstrip('*')

print(a) #1*2*3*

a=a.rstrip('*')

print(a) #*1*2*3

a=' *1*2*3* '

a=a.strip(' ')

print(a) #*1*2*3*

大小写转换

a=’gaoqi love programming,love SXT’

示例 说明 结果

a.  capitalize () 首字母大写 'Gaoqi love  programming , love sxt'

a. title() 每个单词都首字母大写 ‘Gaoqi Love  Programming , Love Sxt’

a. upper() 所有字符全转成大写 'GAOQI LOVEPROGRAMMING ,LOVE SXT'

a. lower() 所有字符全转成小写 ˈgaοqii love  programming , love sxt'

a. swapcase() 所有字母大小写转换 ' GAOQlLOVEPROGRAMMING ,LOVE sxt'

格式排版:

center(),ljust(),rjust()这三个函数用于对字符串进行排版

a='123'

a=a.center(10,'*')

print(a) >>>***123****

a=a.ljust(10,'*')

print(a) >>>123*******

a=a.rjust(10,'*')

print(a) >>>*******123

特征判断方法:

isalnum():是否为字母或数字

isalpha():检测字符串是否只由字母组成(含汉字)

isdigit():检测字符串是否只由数字组成

isspace():检测是否为空白符

isupper():检测是否为大写字母

islower():检测是否为小写字母

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值