[Python] Python编程无限进步...

以下是笔者总结的一些在使用Python进行编程的过程中所思考和总结的一些有趣的玩意儿。

1. 实现PTA平台认可的不定行输入

line = []
while True:
    try:
        line.append(input())
    except:
        break

2. 辨别输入的字符串是否全为数字(int,float,complex)

  • eval()函数强大的处理函数。
try:
    data = eval(input()) 
    if type(data) in (int,float,complex):
        print("yes")
    else:
        print("no")
except:
    print("no")
  • eval()返回字符串表达式中的值或者表达式的计算结果,只要是数就会有值!
  • eval()还可以根据格式将字符串合理得转化为列表、元组、集合、字典。

例题: 7-51 jmu-python-简单计算器 (20 分)

3. Python中查找某一个键是否在字典中。

  • 使用的是in方法。
  • 比如当前有一个字典ditc要看键 key是否在dict中我们可以用:if key in dict:来测试。

4. Python中map函数的用法:

Python中map函数的用法

5. Python中的sample函数的用法:

Python中的sample函数的用法

6. Python中的字典的键值是可以用一个表达式来表示的。

7-3 四则运算(用字典实现) (30 分)

7. Python中对列表元素实现格式控制输出。

在Python中,你可以通过不同的方式来控制列表的输出格式。下面是几种常见的方法:

7.1. 使用循环和字符串拼接:
my_list = [1, 2, 3, 4, 5]
output = "["
for item in my_list:
    output += str(item) + ", "
output = output.rstrip(", ") + "]"
print(output)
  • 这种方法使用循环遍历列表的每个元素,并在字符串末尾添加逗号。然后,通过使用rstrip()方法删除末尾多余的逗号并添加右括号。
7.2. 使用str.join()方法:
my_list = [1, 2, 3, 4, 5]
output = "[" + ", ".join(str(item) for item in my_list) + "]"
print(output)
  • 这种方法使用str.join()方法将列表中的每个元素转换为字符串, 并使用指定的连接符(这里是逗号和空格)将它们连接起来。
7.3. 使用str.format()方法:
my_list = [1, 2, 3, 4, 5]
output = "[{}]".format(", ".join(str(item) for item in my_list))
print(output)
  • 这种方法使用str.format()方法,其中使用大括号{}表示要插入的值。 通过在大括号中使用str.join()方法将列表中的元素连接起来,并将结果插入到最外层的方括号中。

8. Python中str.join()的用法

  • str.join()是字符串对象的方法,用于将一个可迭代对象(如列表、元组等)中的元素连接成一个字符串。它的语法如下:

string.join(iterable)
其中,string是指定要连接的字符串,而iterable是要连接的可迭代对象。join()方法会遍历可迭代对象中的每个元素,并使用指定的字符串将它们连接起来。

下面是一些常见的用法示例:

8.1 使用逗号将字符串列表连接起来:
my_list = ['Apple', 'Banana', 'Orange']
result = ', '.join(my_list)
print(result)

# 输出: Apple, Banana, Orange
8.2 用空格将元组中的单词连接起来:
my_tuple = ('Hello', 'World')
result = ' '.join(my_tuple)
print(result)

# 输出: Hello World
8.3 使用空字符串将字符列表连接为一个单词:
my_list = ['H', 'e', 'l', 'l', 'o']
result = ''.join(my_list)
print(result)

# 输出: Hello
  • 需要注意的是,join()方法只能用于连接字符串类型的元素,如果可迭代对象中包含其他类型的元素,则需要先将其转换为字符串。可以使用列表推导式或生成器表达式在连接之前将元素转换为字符串。在最终的结果中,没有任何连接符号出现在第一个元素之前或最后一个元素之后。

9. Python中swap()的写法

def swap(a, b):
    a, b = b, a
    return a, b

x = 10
y = 20
x, y = swap(x, y)
print(x, y)  # 输出:20 10
  • 此处的swap()函数使用了解构赋值的方式,将变量a和b的值互相交换,并通过return语句返回交换后的结果。
  • 在主程序中,调用swap()函数并将返回的结果再次赋值给变量x和y,实现了交换。

10. Python中赋值语句更加强大的一些原因!

10.1 多重赋值:
  • Python允许同时给多个变量赋值,这样可以在一行代码中同时对多个变量进行赋值操作,而不需要使用额外的中间变量。例如:x, y = 10, 20
10.2 解构赋值:
  • Python的赋值语句支持解构赋值,可以将一个可迭代对象(如列表、元组、字典等)中的元素一次性赋值给多个变量,从而方便地进行元素提取。例如:a, b, c = [1, 2, 3]
10.3 增强赋值:
  • Python提供了一系列的增强赋值运算符,例如+=、-=、*=等,它们可以在赋值的同时进行运算操作,使得代码更加简洁和可读。例如:x += 5等价于x = x + 5
10.4 链式赋值:
  • Python允许连续赋值,如x = y = z = 0,使得多个变量同时被赋予相同的值
10.5 序列解包:
  • 在Python中,可以使用赋值语句将序列(如列表或元组)的元素解包(unpack)到单独的变量中,从而方便地进行数据提取和交换。例如:a, b = b, a可以交换两个变量的值。

11. Python中动态初始化一个二维数组

# 定义行数和列数  
rows = 3  
cols = 4  
  
# 创建一个空列表作为二维数组  
array = [[0] * cols for _ in range(rows)]  
  
# 打印二维数组  
for row in array:  
    print(row)
  • 在这个示例中,我们首先定义了行数和列数。然后,我们创建了一个空列表 array,使用列表解析式的方式在每一行中创建了一个长度为 cols 的列表,并将其初始化为0。这样,我们就创建了一个二维数组。

12. Eval函数的强大功能之一——直接将符合格式的字面量的字符串转化为值

在这里插入图片描述

  • 如图所示,对于形如[1, 2, 2, 3, 4, 5, 4]这样子的输入,如果我们用处理字符串的逻辑去一个一个处理它,取出其中的数字,然后再整合为数字列表,这显然是一件很繁琐的事情,事出反常必有妖,它虽然长得不像日常的输入,但是它却长得很规范,想规范的输出,这就在暗示着有更简单的处理方案。
  • Python中的eval()函数可以将一个字符串形式的列表解析为实际的列表。