Python技能树——进阶语法讲解(2)

目录

with…as…

异常捕获

字符串方法

lambda 表达式


1* with…as…

在 Python 中,with...as...常见于文件操作或数据库操作,在文件使用自后,它会自动释放资源。不像其他方法那样,忘记了关闭文件,另一种方法我给忘了,反正用with...as...足够了。

而open()函数有两个参数:文件名和模式。

有四种打开文件的不同方法(模式):

  • "r" - 读取 - 默认值。打开文件并进行读取,若文件不存在将会报错。
  • "a" - 追加 - 打开供追加的文件,文件不存在则创建该文件。
  • "w" - 写入 - 打开文件进行写入,文件不存在则创建该文件。
  • "x" - 创建 - 创建指定的文件,文件存在则返回错误。

此外,您可以指定文件是应该作为二进制还是文本模式进行处理。

  • "t" - 文本 - 默认值。文本模式。
  • "b" - 二进制 - 二进制模式(例如图像)。

如果什么都不写,就是默认的"rt"。

简要的展示一下用法:

with open("coco names.txt","rt") as f:
    data = f.read()

否则:

f = open("coco names.txt")
try:
    data = f.read()
finally:
    f.close()

2* 异常捕获

如果程序错误了将会终止运行,那要如何避免程序被强迫终止,出现问题提示出问题,然后继续运行呢?那么这就是 try … except 语句使用的场景了。

它的语法格式是:

try:
	可能会出错的代码
except 异常对象:
	处理异常代码

按照上方的样子,我们有一下形式的代码:

num1 = 15
num2 = 0
try:
    num3 = num1 / num2
except:
    print("除数不能等于 0 ")

或:

num1 = 16
num2 = "夏天是冰红茶"
try:
    num3 = num1 / num2
except ZeroDivisionError:
    print("除数不能等于 0 ")

except TypeError:
    print("除数类型错误")

第二种是指出了错误发出的类型,如果不知道采用第一种就就可以了。

3* 字符串方法

字符串是编程中很重要的一类,下面的字符串都是正确的形式:

ID = "夏天是冰红茶"
ID = '夏天是冰红茶'
ID = """夏天是冰红茶"""
ID = '''夏天是冰红茶'''

字符串的切片:

ID_name = "夏天是冰红茶" 
print(ID_name) #打印全部
print(ID_name[0:6]) # 打印全部
print(ID_name[0]) # 打印字符串的第一个字符
print(ID_name[-1]) # 打印字符串的最后一个字符
print(ID_name[5]) # 打印字符串的最后一个字符
print(ID_name[:2]) # 输出夏天
print(ID_name[3:]) # 输出冰红茶

#运行台#

夏天是冰红茶

夏天是冰红茶



夏天
冰红茶

#- 夏天是冰红茶

#-  0 1  2  3 4 5

 find()方法:

ID_name = "夏天是冰红茶"
a=ID_name.find("冰")
print(a)

#运行台# 

3

使用find()方法可以求某个字符在字符串当中的索引值。

 title() 方法:

ID_name = "maAKtsc"
a=ID_name.title()
print(a)

#运行台# 

Maaktsc

使用title()方法使字符串只让首字母大写。 

upper() && lower() :

ID_name = "maAKtsc"
a=ID_name.upper()
print(a)
a=ID_name.lower()
print(a)

#运行台# 

MAAKTSC

maaktsc

count()计数 :

txt = "I love apples, apple are my favorite fruit"
x = txt.count("apple", 10, 24)
print(txt[10:25])
print(f"出现了{x}次")

#运行台#

les, apple are 
出现了1次

格式:string.count(value, start, end)

4* lambda 表达式

 lambda 用作另一个函数内的匿名函数时。

def myfunc(n):
  return lambda a : a * n

mydoubler = myfunc(2)
mytripler = myfunc(3)

print(mydoubler(11))
print(mytripler(11))

#运行台#

22
33

 python技能树——(1条消息) lambda函数-进阶语法-CSDNPython入门技能树

猜你喜欢

转载自blog.csdn.net/m0_62919535/article/details/126717064