《疯狂Python》学习第3课

1.5.4 大小写相关方法

  Python中常用的两个帮助函数

  • dir( ): 列出指定类或模块包含的全部内容(包括函数、方法、类、变量等)。
  • help( ): 查看某个函数或方法的帮助文档。
    Python中str类中与大小写相关的常用方法如下:
  • title( ):将每个单词的首字母改为大写。
  • lower( ):将整个字符串改为小写。
  • upper( ): 将整个字符串改为大写。
    代码示例如下:
a = 'Python is very interesting.'
print(a.title())
print(a.lower())
print(a.upper())

程序输出结果:

Python Is Very Interesting.
python is very interesting.
PYTHON IS VERY INTERESTING.

1.5.5 删除空白

str中可以使用以下方式删除空白

  • strip( ): 删除字符串前后的空白。
  • lstrip( ):删除字符串前面(左边)的空白。
  • rstrip( ) : 删除字符串后面(右边)的空白。

  上述三种方式只是返回字符串前面或后面空白被删除之后的副本, 并没有真正改变字符串本身。
  代码示例:

b=' Hello world , this is Python. '
print(b.lstrip())
print(b.rstrip())
print(b.strip())
print(b)

  输出结果:

Hello world , this is Python. 
 Hello world , this is Python.
Hello world , this is Python.
 Hello world , this is Python. 

  删除字符串前后指定宇符的功能:

b1='Hello world , this is Python'
print(b1.lstrip('Hn'))
#删除左边的H、n
print(b1.rstrip('Hn'))
#删除右边的H、n

  输出结果:

ello world , this is Python
Hello world , this is Pytho

1.5.6 查找、替换相关方法

  str提供了以下常用的执行查找、替换等操作的方法

  • startswith( ):判断字符串是否以指定子串开头。
  • endswith( )::判断字符串是否以指定子串结尾。
  • find( ):查找指定子串在字符串中出现的位置,如果没有找到指定子串,则返回-1。
  • index( ):查找指定子串在字符串中出现的位置,如果没有找到指定子串,则引发ValueError错误。
  • replace( ):使用指定子串替换字符串中的目标子串。
  • translate( ):使用指定的翻译映射表对字符串执行替换。

  代码示例

s = 'crazyit.org is a good site '
print(s.startswith('crazyit'))
print(s.endswith('site'))
print(s.find('org'))
print(s.index('org'))
print(s.find('org', 10))
#将字符串中的所有it 替换成xxxx
print(s.replace('it','xxxx'))
#将字符串中的第1个it 替换成xxxx
print(s.replace('it','xxxx',1))
###################################
#定义翻译映射表97(a) -> 945( α) ,99(c)-> 947(γ),116( t) - >964 (τ)
table={97:945,99 : 947 , 116: 964}
print(table)
print(s.translate(table))

  输出结果

True
False
8
8
-1
crazyxxxx.org is a good sxxxxe 
crazyxxxx.org is a good site 
{97: 945, 99: 947, 116: 964}
γrαzyiτ.org is α good siτe 

  Python为str类提供了一个maketrans( )方法,通过该方法可以非常方便地创建翻译映射表。在使用该方法时只需将需要映射的所有字符作为maketrans( )方法的第一个参数,将所有映射的目标字符作为make trans () 方法的第二个参数即可。
  代码示例如下:

s = 'crazyit.org is a good site '
table1=str.maketrans('act','αγτ')
print(s.translate(table1))

  输出结果同上。

1.5.7 分割、连接方法

  Python为str提供了分割和连接方法:

  • split( ): 将字符串按指定分割符分割成多个短语。
  • join( ):将多个短语连接成字符串。

  代码示例:

a = 'Python is very interesting. I love Python very much'
print(a.split( ))
#使用空白对字符串进行分割,最多只分割前三个单词
print(a.split(None,3))
print(a.split('.'))
mylist=a.split()
#使用'/'作为分割符,将mylist 连接成字符串
print('/'.join(mylist))

  输出结果:

['Python', 'is', 'very', 'interesting.', 'I', 'love', 'Python', 'very', 'much']
['Python', 'is', 'very', 'interesting. I love Python very much']
['Python is very interesting', ' I love Python very much']
Python/is/very/interesting./I/love/Python/very/much

1.6 运算符

  Python中提供以下几种运算符:

  • 赋值运算符
  • 算数运算符
  • 位运算符
  • 索引运算符
  • 比较运算符
  • 逻辑运算符

运算符参考文献

1.6.1 赋值运算符

  赋值运算符用于为变量或常量指定值, Python 使用“ =”作为赋值运算符。也可使用赋值运算利将一个变量的值赋给另一个变量。Python 的赋值表达式是有值的,赋值表达式的值就是被赋的值,因此Python支持连续赋值。赋值运算符还可用于将表达式的值赋给变量。
  代码示例:

d1=13.56
d2=d1+23.45
print(d2)

1.6.2 算数运算符

  Python 支持所有的基本算术运算符,Python支持以下7种基本的算数运算符。
  加运算:“+”还可以作为字符串(包括后面要介绍的序列)的连接运算符。
  代码示例:

s1='Hello World,'
s2='this is Python.'
s=s1+s2
print(s)

  减运算:还可以作为求负的运算符。
  乘运算:“*”还可以作为字符串(包括后面要介绍的序列) 的连接运算符, 表示将N 个字符串连接起来。
  代码示例:

s='Python '
print(s*5)

  输出示例:

Python Python Python Python Python 

  除运算符:Python 的除法运算符有两个:“/”表示普通除法,使用它除出来的结果与平常数学计算的结果是相同的(即除不尽时,会产生小数部分);而“//”表示整除,使用它除出来的结果只有整数部分,小数部分将会被舍弃。Python 不允许使用0作为除数,否则将会引发ZeroDivisionError 错误。
  %:求余运算。Python 的求余运算符完全支持对浮点数求余。求余运算的结果不一定总是整数,它是使用第一个操作数来除以第二个操作数,得到一个整除的结果后剩下的值就是余数。此求余运算的第二个操作数不能是0 , 否则程序会报出ZeroDivisionError 错误。
  代码示例:

print('5.2 % -2.9的值为:',5.2 % -2.9)

  输出结果:

5.2 % -2.9的值为: -0.5999999999999996

  由浮点数的存储机制导致的。计算机底层的浮点数的存储机制并不是精确保存每一个浮点数的值,暂时不需要花太多的时间去理解浮点数的存储机制,只要知道浮点数在Python 中可能产生精度丢失的问题就行。比如此处正常计算的结果应该是0.6 , 但实际计算出来的结果是一个非常接近0.6的值。
  **:乘方运算符。Python 支持使用"**"作为乘方运算符,同时也可以进行开方计算。

1.6.3 位运算符

  Python支持以下6种位运算符:

  • &:按位与。
  • |:按位或。
  • ^: 按位异或。
  • ~:按位取反
  • <<:左移位运算
  • >>:右移位运算
运算符描述实例
按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0(a & b) 输出结果 12 ,二进制解释: 0000 1100
|按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1(a | b) 输出结果 61,二进制解释:0011 1101
^按位异或运算符:当两对应的二进位相异时,结果为1(a ^ b) 输出结果 49 ,二进制解释: 0011 0001
~按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1 。~x 类似于 -x-1(~a ) 输出结果 -61 ,二进制解释: 1100 0011,在一个有符号二进制数的补码形式。
<<左移动运算符:运算数的各二进位全部左移若干位,由 << 右边的数字指定了移动的位数,高位丢弃,低位补0。a << 2 输出结果 240 ,二进制解释: 1111 0000
>>右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,>> 右边的数字指定了移动的位数a >> 2 输出结果 15 ,二进制解释: 0000 1111

1.6.4 扩展后的赋值运算符

  赋值运算符可以与算术运算符、位运算符等结合,扩展成功能更加强大的运算符。扩展后的赋值运算符如下:

  • +=:对于x+= y , 即对应于x = x+y 。
  • -=:对于x -= y ,即对应于x=x-y 。
  • *=: 对于x *= y ,即对应于x=x* y 。
  • /= : 对于x /= y ,即对应于x = x | y。
  • //= : 对于x//=y ,即对应于x = x//y 。
  • %= : 对于x %=y ,即对应于x=x%y 。
  • **= : 对于x **= y ,即对应于x=x**y。
  • &=: 对于x &=y ,即对应于x = x & y。
  • |= : 对于x |= y,即对应于x = x I y 。
  • ^=:对于x^= y , 即对应于x= x^y 。
  • <<=:对于x<<=y ,即对应于x = x<<y 。
  • >>=:对于x >>= y,即对应于x=x>>y 。

1.6.5 索引运算符

  索引运算符就是方括号,在方括号中既可使用单个索引值,也可使用索引范围。实际上,在使用索引范围时,还可指定步长。
  代码示例:

a='qwertyuiopasdfg'
#获取索引从2到11步长为3
print(a[2:11:2])

  输出结果:

etuoa

1.6.6 比较运算符与bool类型

  Python提供了bool类型来表示真(对)或假(错),Python 使用True 来表示真(对) ,Python使用False 来表示假(错)。
  Python 支持的以下几种比较运算符:

  • >:大于,如果运算符前面的值大于后面的值,则返回True;否则返回False 。
  • >=:大于或等于,如果运算符前面的值大于或等于后面的值,则返回True;否则返回False 。
  • <:小于,如果运算符前面的值小于后面的值,则返回True;否则返回False 。
  • <=:小于或等于, 如果运算符前面的值小于或等于后面的值,则返回True;否则返回False 。
  • 等于,如果运算符前面的值等于后面的值,则返回True;否则返回False 。
  • !=:不等于, 如果运算符前面的值不等于后面的值,则返回True;否则返回False 。
  • is:判断两个变量所引用的对象是否相同,如果相同则返回True 。
      Python 的两个bool值分别是True 和False,但实际上True也可被当成整数1 使用, False 也可被当成整数0 使用。也就是说,True 、False 两个值完全可以参与各种算术运算。
      代码示例:
print("1和True是否相等:",1 == True)
print("0和False是否相等:",0 == False)
print("5和5.0是否相等:",5 == 5.0)

  输出结果:

1True是否相等: True
0False是否相等: True
55.0是否相等: True

  is和==的区别

==只比较两个变量的值,但is 要求两个变量引用同一个对象。

  代码示例:

import time
a=time.gmtime()
b=time.gmtime()
print(a==b)
print(a is b)

  输出结果:

True
False

  a 、b 两个变量都代表当前系统时间,因此a 、b 两个变的时间值是相等的,故程序使用“==”判断返回True 。但由于a 、b 两个变量分别引用不同的对象(每次调用gmtime( )函数都返回不同的对象),因此a is b 返回False 。
  Python 提供了一个全局的id() 函数来判断变量所引用的对象的内存地址,,如果两个对象所在的内存地址相同,,则说明这两个对象其实是同一个对象。
  代码示例:

print(id(a))
print(id(b))

  输出结果:

9093736
37647360

1.6.7 逻辑运算符

  逻辑运算符用于操作bool类型的变量、常量或表达式,逻辑运算的返回值也是bool值。
  Python支持以下三个逻辑运算符:

  • and : 与,前后两个操作数必须都是True才返回True;否则返回False ,
  • or:或,只要两个操作数中有一个是True,就可以返回True;否则返回False。
  • not :非, 只需要一个操作数,如果操作数为True,则返回False;如果操作数为False ,则返回True 。
      需要购买一本书名必须以“ Python ”结尾的图书,且图书价格小于50 元或该图书是基于正式版的。代码示例:
bookName='疯狂Python'
price=79
version='正式版'
if bookName.endswith('Python') and ( price > 50 or version == '正式版'):
    print('您打算购买这本Python教程吗?')
else:
    print("不购买。")

实际使用逻辑运算符时,一定要合理的使用圆括号保证运算顺序。

1.6.8 三目运算

  三目运算符,又称条件运算符,是计算机语(c,c++,java等)的重要组成部分。它是唯一有3个操作数的运算符,所以有时又称为三元运算符。一般来说,三目运算符的结合性是右结合的。例如Java中最常见的三目运算:<表达式1> ? <表达式2> : <表达式3>;
  Python 可通过if 语句来实现三目运算符的功能,作为三目运算符的ifi吾句的语法格式如下:
True_statements if expression else False_statements
  三目运算的计算规则:先对逻辑表达式expression求值,如果逻辑表达式返回Trne ,则执行并返回Trn e statements 的值;如果逻辑表达式返回False , 则执行并返回False_statements 的值。
  代码示例

a=3
b=5
st = "a大于b" if a > b else "a不大于b"
print(st)
#输出结果:a不大于b

  Python 允许在三目运算符的True_statements 或False_statements 中放置多条语.目前支持以下两种放置方式:

  • 多条语句以英文逗号隔开: 每条语句都会执行,程序返回多条语句的返回值组成的元组。
  • 多条语句以英文分号隔开:每条话句都会执行,程序只返回第一条语句的返回值。
      代码示例1:
st = print ("crazyit"), ' a 大于b' if a > b else 'a 不大于b'
print(st)

'''
输出结果
crazyit
(None, 'a 不大于b')
'''

  代码示例2

st = print ("crazyit");' a 大于b' if a > b else 'a 不大于b'
print(st)
#输出结果:
crazyit
(None, 'a 不大于b')

  三目运算符支持嵌套,通过嵌套三目运算符, 可以执行更复杂的判断。例如:

c = 5
d = 5
print ("c 大于d") if c > d else ( print ("c 小于d" ) if c < d else print("c 等于d"))
#输出:c 等于d

  上面代码首先对c > d 求值,如果该表达式为True , 程序将会执行并返回第一个表达式:print (“c 大于d”); 否则系统将会计算else 后面的内容:( print (“c 小于d” ) if c < d else print(“c 等于d”)),该三目运算符再次判断c<d ,如果该表达式为True ,将会输出“ c 小于d ”;否则只剩下“ c 等于d ” 一种情况,自然就输出该字符串了。

1.6.9 in运算符

  Python 提供了in 运算符,用于判断某个成员是否位于序列,Python 也提供了in 的反义词:not in 。

1.6.10 运算符的结合性和优先级

  Python 语言中的大部分运算符也是从左向右结合的,只有单目运算符、赋值运算符和三目运算符例外,它们是从右向左结合的,也就是说,它们是从右向左运算的。
  乘法和加法是两个可结合的运算符,也就是说,这两个运算符左右两边的操作数可以互换位置而不会影响结果。
  运算符有不同的优先级,所谓优先级就是在表达式运算中的运算顺序。

运算符说明Python运算符优先级
索引运算符x[index]或x [index:index2[:index3]]18、19
属性访问x. attribute17
乘方**16
按位取反~15
符号运算符+或-14
乘、除*、/、//、%13
加、减+或-12
位移>>、<<11
按位与&10
按位异或^9
按位或\8
比较运算==、!=、>、>=、<、<=7
is运算符is 、is not6
in运算in、not in5
逻辑非not4
逻辑与and3
逻辑或or2

  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值