1. 引言
Python是一种高级编程语言,语法简单、易学易用,受到广大编程爱好者和专业人士的追捧。Python丰富的编程思维和强大的内置函数库,为程序员提供了很多方便实用的工具。本文将介绍Python中的15个短代码示例,帮助读者更好地理解Python的编程思维。
2. 使用lambda函数排序(sorted)
lambda函数介绍
在Python中,lambda函数是一种匿名函数,可以用来简化复杂的代码,节省程序员的时间。lambda函数的语法很简单:
lambda 参数: 表达式
其中,参数是用来接收数据的变量,“:”之后是要执行的表达式。下面是一个示例:
f = lambda x:x+1
print(f(1)) # 输出 2
代码示例
下面的代码示例是用lambda函数对列表进行排序,输出前3个元素:
l = [(2, 'b'), (3, 'a'), (1, 'c')]
s = sorted(l, key=lambda x:x[0])
print(s[:3])
上述代码使用sorted函数进行排序,其中key参数传入lambda函数作为排序依据。上述代码的结果是:
[(1, 'c'), (2, 'b'), (3, 'a')]
上述代码首先创建一个元组列表,然后使用lambda函数将列表按照第一个元素从小到大排序,并输出前3个元素。
3. 使用列表解析式(List Comprehensions)
列表解析式介绍
列表解析式是Python中的一种简写技巧,可以用来方便快捷地创建列表。列表解析式的语法很简单:
[表达式 for 变量 in 序列]
其中,表达式是要执行的操作,变量是用来接收序列中的元素,序列可以是列表、元组等。下面是一个示例:
squares = [x*x for x in range(1, 11)]
print(squares)
上述代码输出1至10的平方数,结果如下:
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
代码示例
下面的代码示例是使用列表解析式处理字符串,将字符串首字母变成大写,其他字母变成小写:
s = "hello, world!"
s = ' '.join([word.capitalize() for word in s.split()])
print(s)
上述代码处理字符串,使用split函数将字符串分割成单词,然后使用capitalize函数将单词的首字母变成大写,其他字母变成小写,最后使用join函数将单词拼接起来。
4. 使用map函数
map函数介绍
map函数是Python中的内置函数之一,可以对序列进行操作,返回一个处理后的序列。map函数的语法很简单:
map(函数, 序列)
其中,函数是处理序列的函数,序列可以是列表、元组等。下面是一个示例:
def func(x):
return x * x
a = [1, 2, 3, 4, 5]
b = map(func, a)
print(list(b))
上述代码定义了一个函数,该函数将传入的参数平方后返回,然后使用map函数将列表a中的元素都平方,并将结果存储在列表b中。结果如下:
[1, 4, 9, 16, 25]
代码示例
下面的代码示例是使用map函数将字符串转换成数字,并将结果存储在列表中:
a = ['1', '2', '3', '4', '5']
b = list(map(int, a))
print(b)
上述代码使用map函数将字符串列表a中的每个元素转换成数字,并将结果存储在列表b中。结果如下:
[1, 2, 3, 4, 5]
5. 使用filter函数
filter函数介绍
filter函数是Python中的内置函数之一,可以对序列进行筛选,返回满足条件的元素。filter函数的语法很简单:
filter(函数, 序列)
其中,函数是用来筛选序列的函数,序列可以是列表、元组等。下面是一个示例:
def func(x):
return x % 2 == 0
a = [1, 2, 3, 4, 5]
b = filter(func, a)
print(list(b))
上述代码定义了一个函数,该函数将传入的参数进行判断,如果是偶数就返回True,否则返回False。然后使用filter函数对列表a中的元素进行判断,将满足条件的元素存储在列表b中。结果如下:
[2, 4]
代码示例
下面的代码示例是使用filter函数对字符串列表进行筛选,只输出包含字母“o”的单词:
a = ['hello', 'world', 'python', 'program']
b = list(filter(lambda x: 'o' in x, a))
print(b)
上述代码使用filter函数对列表a中的元素进行判断,将包含字母“o”的元素存储在列表b中。结果如下:
['hello', 'world', 'program']
6. 使用reduce函数
reduce函数介绍
reduce函数是Python中的内置函数之一,可以对序列进行计算,返回一个结果。reduce函数的语法很简单:
reduce(函数, 序列)
其中,函数是用来计算序列的函数,序列可以是列表、元组等。下面是一个示例:
from functools import reduce
def func(x, y):
return x + y
a = [1, 2, 3, 4, 5]
b = reduce(func, a)
print(b)
上述代码定义了一个函数,该函数将传入的两个参数相加,然后使用reduce函数对列表a中的元素进行累加,得到最终结果。结果如下:
15
代码示例
下面的代码示例是使用reduce函数对字符串列表进行拼接,得到一个字符串:
from functools import reduce
a = ['hello', 'world', 'python', 'program']
b = reduce(lambda x, y: x + ' ' + y, a)
print(b)
上述代码使用reduce函数对字符串列表a中的元素进行拼接,得到最终的字符串。结果如下:
hello world python program
7. 使用try-except语句
try-except语句介绍
在Python中,try-except语句用于捕获和处理异常。当程序执行过程中出现错误时,可以使用try-except语句来捕获异常,避免程序崩溃。try-except语句的语法很简单:
try:
程序代码1
except 错误类型1:
程序代码2
except 错误类型2:
程序代码3
...
其中,try块中包含程序代码1,当程序执行过程中出现错误时,会跳转到对应的错误类型的except块中,执行程序代码2、程序代码3等。下面是一个示例:
try:
a = 1 / 0
except ZeroDivisionError:
print("除数不能为0")
上述代码试图将1除以0,会发生ZeroDivisionError异常。当发生该异常时,上述代码会跳转到except块中,输出错误信息“除数不能为0”。
代码示例
下面的代码示例是使用try-except语句处理文件读取错误,避免程序崩溃:
try:
f = open('file.txt', 'r')
content = f.read()
f.close()
except FileNotFoundError:
print("文件不存在")
上述代码试图打开一个文件,如果文件不存在,会发生FileNotFoundError异常。当发生该异常时,上述代码会跳转到except块中,输出错误信息“文件不存在”,避免程序崩溃。
8. 使用yield语句
yield语句介绍
在Python中,yield语句用于生成一个生成器(Generator),可以迭代返回值。使用yield语句可以避免一次性生成大量数据,提高程序的效率。yield语句的语法很简单:
def func():
...
yield 返回值1
...
yield 返回值2
...
其中,func函数使用yield语句返回一个生成器,当程序调用该函数时,会依次返回其中的多个值。下面是一个示例:
def func():
for i in range(5):
yield i*i
g = func()
for x in g:
print(x)
上述代码定义了一个生成器函数,该函数可以产生5个数字的平方,然后使用for循环依次输出生成器函数中的值。结果如下:
0
1
4
9
16
代码示例
下面的代码示例是使用yield语句生成斐波那契数列:
def fib(n):
a, b = 0, 1
for i in range(n):
yield a
a, b = b, a+b
g = fib(10)
for x in g:
print(x)
上述代码定义了一个生成器函数,该函数可以产生斐波那契数列的前10项,然后使用for循环依次输出生成器函数中的值。结果如下:
0
1
1
2
3
5
8
13
21
34
9. 使用enumerate函数
enumerate函数介绍
在Python中,enumerate函数可以对列表、元组等序列进行遍历,返回索引和对应的值。enumerate函数的语法很简单:
enumerate(序列)
其中,序列是要遍历的列表、元组等序列,enumerate函数会返回包含索引和对应值的元组。下面是一个示例:
a = ['hello', 'world', 'python', 'program']
for i, x in enumerate(a):
print(i, x)
上述代码遍历列表a中的元素,返回每个元素的索引和对应值。结果如下:
0 hello
1 world
2 python
3 program
代码示例
下面的代码示例是使用enumerate函数遍历一个字符串,并返回包含字符和对应索引的元组:
s = "hello, world!"
for i, x in enumerate(s):
print(i, x)
上述代码遍历字符串s中的每个字符,返回每个字符的索引和对应值。结果如下:
0 h
1 e
2 l
3 l
4 o
5 ,
6
7 w
8 o
9 r
10 l
11 d
12 !
10. 使用zip函数
zip函数介绍
在Python中,zip函数可以将多个序列进行压缩,返回一个包含多个序列相同位置值的元组。zip函数的语法很简单:
zip(序列1, 序列2, ...)
其中,序列可以是列表、元组等,zip函数会返回多个序列相同位置值的元组,直至所有序列中的元素被遍历完成。下面是一个示例:
a = [1, 2, 3]
b = ['a', 'b', 'c']
c = zip(a, b)
print(list(c))
上述代码将列表a和列表b进行压缩,返回一个包含多个序列中相同位置的元素的元组。结果如下:
[(1, 'a'), (2, 'b'), (3, 'c')]
代码示例
下面的代码示例是使用zip函数合并两个列表,并使用列表解析式提取相加的结果:
a = [1, 2, 3]
b = [4, 5, 6]
c = [x + y for x, y in zip(a, b)]
print(c)
上述代码将列表a和列表b进行压缩,然后使用列表解析式将相加过的元素放入列表c中。结果如下:
[5, 7, 9]