当前位置:   article > 正文

面试 Python 基础八股文十问十答第四期_python 八股文50题

python 八股文50题

面试 Python 基础八股文十问十答第四期

作者:程序员小白条个人博客

相信看了本文后,对你的面试是有一定帮助的!关注专栏后就能收到持续更新!

⭐点赞⭐收藏⭐不迷路!⭐

1)什么是猴子补丁?

猴子补丁(Monkey Patching)是指在运行时动态修改类或模块的行为的一种技术。在 Python 中,由于其动态特性,可以在运行时修改已加载的类或模块的属性或方法,以实现特定的需求或修复 bug。猴子补丁常用于测试、调试或临时性修改代码,但过度使用可能导致代码难以理解和维护,因此应谨慎使用。

2)Python中的字典是什么?

在 Python 中,字典(Dictionary)是一种无序的、可变的、键-值对(key-value pair)集合类型。字典通过键来访问值,而不是通过索引。字典的键必须是不可变的类型(如整数、字符串、元组等),而值可以是任意类型。字典的特点包括:

  • 无序性: 字典中的元素没有固定的顺序,即无法通过索引来访问。
  • 可变性: 字典中的元素可以动态添加、删除和修改。
  • 键的唯一性: 字典中的键是唯一的,每个键只能对应一个值,但值可以重复。

字典使用大括号 {} 来创建,每个键值对之间用逗号 , 分隔。示例:my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}

3)请解释使用*args和**kwargs的含义

  • *args
    
    • 1

    **kwargs
    
    • 1

    是 Python 中用于处理函数参数的特殊语法:

    • *args 表示接受任意数量的位置参数(Positional Arguments),它会将参数打包成一个元组(Tuple)传递给函数。
    • **kwargs 表示接受任意数量的关键字参数(Keyword Arguments),它会将参数打包成一个字典(Dictionary)传递给函数。

这两个语法经常与普通参数一起使用,通常按照以下顺序定义:普通参数、*args**kwargs

示例:

def example_func(a, b, *args, **kwargs):
    print("a:", a)
    print("b:", b)
    print("args:", args)
    print("kwargs:", kwargs)

example_func(1, 2, 3, 4, name='John', age=30)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

在这个例子中,ab 是普通参数,*args 接受额外的位置参数,**kwargs 接受额外的关键字参数。

4)请写一个Python逻辑,计算一个文件中的大写字母数量

下面是一个简单的 Python 逻辑,用于计算一个文件中的大写字母数量:

def count_uppercase(file_path):
    try:
        # 打开文件
        with open(file_path, 'r') as file:
            # 读取文件内容
            content = file.read()
            # 计算大写字母数量
            uppercase_count = sum(1 for char in content if char.isupper())
            return uppercase_count
    except FileNotFoundError:
        print("文件不存在")
        return None

# 示例用法
file_path = 'example.txt'  # 文件路径
uppercase_count = count_uppercase(file_path)
if uppercase_count is not None:
    print("文件中的大写字母数量:", uppercase_count)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

这段代码首先尝试打开指定路径的文件,然后读取文件内容并使用 isupper() 方法检查每个字符是否为大写字母,最后统计大写字母的数量并返回。如果文件不存在,则会捕获 FileNotFoundError 异常并打印相应的提示信息。

5)什么是负索引?

在 Python 中,负索引是指从序列末尾开始计数的索引。通常,序列的第一个元素的索引是 0,而倒数第一个元素的索引是 -1,倒数第二个元素的索引是 -2,依此类推。负索引提供了一种方便的方式来访问序列的最后几个元素,尤其是在不知道序列长度的情况下。

示例:

my_list = [1, 2, 3, 4, 5]
print(my_list[-1])  # 输出:5,访问最后一个元素
print(my_list[-2])  # 输出:4,访问倒数第二个元素
  • 1
  • 2
  • 3

6)如何以就地操作方式打乱一个列表的元素?

可以使用 random.shuffle() 函数来就地打乱列表的元素。这意味着它会直接修改原始列表,而不是创建一个新的打乱后的列表。

示例:

import random

my_list = [1, 2, 3, 4, 5]
print("原始列表:", my_list)

random.shuffle(my_list)
print("打乱后的列表:", my_list)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

在这个示例中,random.shuffle() 函数被调用后,my_list 中的元素顺序被随机打乱。

7)解释Python中的join()和split()函数

  • join() 函数用于将序列中的元素连接成一个字符串。它接受一个可迭代对象(如列表、元组、集合等)作为参数,然后使用指定的字符串作为连接符将序列中的元素连接起来,返回一个新的字符串。

示例:

my_list = ['Hello', 'world', 'Python']
result = ' '.join(my_list)
print(result)  # 输出: Hello world Python
  • 1
  • 2
  • 3
  • split() 函数用于将一个字符串分割成多个子字符串,并将这些子字符串放入一个列表中。它接受一个分隔符作为参数,如果不提供分隔符,则默认使用空白字符(空格、制表符、换行符等)作为分隔符。

示例:

my_string = "Hello world Python"
result = my_string.split()
print(result)  # 输出: ['Hello', 'world', 'Python']
  • 1
  • 2
  • 3

8)Python区分大小写吗?

是的,Python 是区分大小写的。这意味着在 Python 中,标识符(如变量名、函数名、类名等)、关键字和字符串都是区分大小写的。例如,变量名 myVarmyvar 是不同的变量名。

9)Python中的标识符长度能有多长?

Python 中的标识符(如变量名、函数名、类名等)长度理论上是没有限制的,但通常建议不要超过 79 个字符。长标识符可以提高代码的可读性,但过长的标识符可能会影响代码的可维护性和可理解性。

10)怎么移除一个字符串中的前导空格?

可以使用 strip() 函数来移除字符串中的前导空格。strip() 函数会移除字符串开头和结尾处的空白字符(包括空格、制表符、换行符等)。

示例:

my_string = "   Hello, world!   "
result = my_string.strip()
print(result)  # 输出: "Hello, world!"
  • 1
  • 2
  • 3

在这个示例中,strip() 函数将移除字符串开头和结尾处的空格,返回结果为 "Hello, world!"

前后端总计已经 1100+ Star,2W+ 访问!

⭐点赞⭐收藏⭐不迷路!⭐

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/酷酷是懒虫/article/detail/754711
推荐阅读
相关标签
  

闽ICP备14008679号