网站开发 专有名词,江油移动网站建设,信用网站系统建设方案,关于网站建设需要了解什么东西系列文章目录 个人简介#xff1a;机电专业在读研究生#xff0c;CSDN内容合伙人#xff0c;博主个人首页 Python面试专栏#xff1a;《Python面试》此专栏面向准备面试的2024届毕业生。欢迎阅读#xff0c;一起进步#xff01;#x1f31f;#x1f31f;#x1f31f; …系列文章目录 个人简介机电专业在读研究生CSDN内容合伙人博主个人首页 Python面试专栏《Python面试》此专栏面向准备面试的2024届毕业生。欢迎阅读一起进步 码字不易如果觉得文章不错或能帮助到你学习可以点赞收藏评论关注哦 文章目录 系列文章目录Python 编程面试问题84. range(0,20)[2:-2]执行结果85. 用Python编写程序以生成星形三角形。86. 用Python编写程序生成Fibonacci序列。87. 用一行Python代码从给定列表中取出所有的奇数和偶数。88. 用Python编写程序以检查数字是否为质数。89. 编写程序检查数字是否为阿姆斯特朗数。90. 用Python编写程序以检查序列是否是回文。91. 用Python编写程序检查一序列中所有数字是否唯一。92. 编写程序查找文本文件中最长的单词。93. 编写一个程序来统计给定文本文件的每个字符的数量。94. 编写一个程序来检查并返回总和值等于目标值N的给定数组A中的对。95. 编写一个程序以在不使用加号运算符的情况下将两个正整数相加。96. 编写一个程序来求解给定的方程 ax by cmx ny o假设 a, b, c, m, n, o 是常数。97. 编写一个程序来匹配字母a后跟4到8个b的字符串。98. 编写一个程序将日期从yyyy-mm-dd格式转换为dd-mm-yyyy格式。99. 编写一个程序来组合两个不同的词典。组合时如果找到相同的键则可以将这些相同键的值相加 输出新字典。 本文是Python面试专栏的第六篇。在本专栏中我将总结华为、阿里巴巴、字节跳动等互联网公司 Python 面试中最常见的 100 问题。每道题都提供参考答案希望能够帮助你在求职面试中脱颖而出找到一份高薪工作。这些面试题涉及 Python 基础知识、Python 编程、数据分析以及 Python 函数库等多个方面。 Python 编程面试问题
84. range(0,20)[2:-2]执行结果
range(0,20)[2:-2] 的执行结果是一个包含索引从 2 到 18不包括索引为 -2的迭代器。换句话说执行这个代码会返回一个从 2 到 17 的序列。
85. 用Python编写程序以生成星形三角形。
下面是使用 Python 编写的生成星形三角形的程序
rows int(input(请输入行数))for i in range(1, rows 1):# 打印空格print( * (rows - i), end)# 打印星号print(* * (2 * i - 1))86. 用Python编写程序生成Fibonacci序列。
首先斐波那契数列是以 0 和 1 开始的每个后续数字都是前两个数字之和。下面是使用 Python 编写的生成 Fibonacci 序列的程序
def fibonacci(n):fib_list [0, 1] # 初始的斐波那契数列if n 0:return []elif n 1:return [fib_list[0]]elif n 2:return fib_listfor i in range(2, n):next_num fib_list[i-1] fib_list[i-2] # 计算下一个斐波那契数fib_list.append(next_num) # 将下一个斐波那契数添加到列表中return fib_listn int(input(请输入要生成的斐波那契数列的长度))
fibonacci_series fibonacci(n)
print(fibonacci_series)87. 用一行Python代码从给定列表中取出所有的奇数和偶数。
下面是使用 Python 编写的从给定列表中取出所有的奇数和偶数的程序
a [1,2,3,4,5,6,7,8,9,10]
odd, even [el for el in a if el % 21], [el for el in a if el % 20]print(odd,even)88. 用Python编写程序以检查数字是否为质数。
下面是使用 Python 编写的检查数字是否为质数的程序
def is_prime(num):if num 2: # 小于2的数不是质数return Falsefor i in range(2, int(num**0.5) 1):if num % i 0: # 若能被某个数整除说明不是质数return Falsereturn Truenum int(input(请输入一个数字))
if is_prime(num):print(num, 是质数)
else:print(num, 不是质数)在函数内部首先排除小于2的数因为质数定义为大于 1 的数。然后使用一个循环从 2 到该数的平方根进行迭代检查是否存在能整除该数的因子。如果存在这样的因子则该数不是质数否则是质数。
89. 编写程序检查数字是否为阿姆斯特朗数。
阿姆斯特朗数是指一个 n 位数n3它的每个位上的数字的 n 次幂之和等于它本身。下面是使用 Python 编写的判断数字是否为阿姆斯特朗数的程序
def is_armstrong_number(num):# 将数字转换为字符串以便获取各个位上的数字num_str str(num)# 计算数字的位数num_length len(num_str)# 初始化总和total 0# 计算每个位上数字的n次幂之和for digit in num_str:total int(digit) ** num_length# 判断总和是否等于原始数字if total num:return Trueelse:return False# 示例输入
number int(input(请输入一个数字))if is_armstrong_number(number):print(是阿姆斯特朗数)
else:print(不是阿姆斯特朗数)在这个程序中定义了一个 is_armstrong_number 函数。首先将输入的数字转换为字符串以便能够获取各个位上的数字。然后计算数字的位数。接着初始化一个变量 total 用于存储每个位上数字的 n 次幂之和。然后通过遍历字符串中的每个字符将每个位上数字的 n 次幂加到 total 中。最后判断 total 是否等于原始数字如果相等则返回 True否则返回 False。
90. 用Python编写程序以检查序列是否是回文。
下面是使用 Python 编写的检查序列是否是回文的程序
def is_palindrome(sequence):reversed_sequence sequence[::-1] # 将序列反转if sequence reversed_sequence: # 比较原序列和反转后的序列return Trueelse:return Falsesequence input(请输入一个序列)
if is_palindrome(sequence):print(是回文序列)
else:print(不是回文序列)这个程序会要求输入一个序列可以是字符串、列表或元组等。然后使用 is_palindrome 函数来判断该序列是否是回文。在函数内部通过将原序列反转后再与原序列进行比较如果相等则说明是回文序列返回 True否则返回 False。
91. 用Python编写程序检查一序列中所有数字是否唯一。
下面是使用 Python 编写的检查序列中所有数字是否唯一的程序
def is_unique(sequence):unique_set set(sequence) # 将序列转换为集合if len(sequence) len(unique_set): # 判断集合中元素的数量与序列长度是否相等return Trueelse:return Falsesequence input(请输入一个序列以空格分隔每个数字)
sequence_list sequence.split() # 将输入的序列字符串转换为列表
if is_unique(sequence_list):print(序列中的所有数字是唯一的)
else:print(序列中存在重复的数字)这个程序会要求输入一个序列每个数字之间用空格分隔。然后在函数内部将序列转换为集合由于集合中不能包含重复元素所以如果集合的大小与序列长度相等则说明序列中的所有数字都是唯一的。
92. 编写程序查找文本文件中最长的单词。
下面是使用 Python 编写的程序用于查找文本文件中最长的单词
def find_longest_word(file_path):longest_word with open(file_path, r) as file:# 读取文件内容content file.read()# 按空格拆分文本内容为单词列表words content.split()# 遍历单词列表更新最长单词for word in words:if len(word) len(longest_word):longest_word wordreturn longest_word# 示例输入文件路径
file_path example.txtlongest_word find_longest_word(file_path)print(最长的单词是, longest_word)在这个程序中定义了一个 find_longest_word 函数。首先打开指定路径的文本文件并使用 read 方法读取文件内容。然后将文件内容按空格拆分为一个单词列表。接着遍历单词列表比较每个单词的长度与当前最长单词的长度如果更长则更新最长单词。最后返回最长的单词。
93. 编写一个程序来统计给定文本文件的每个字符的数量。
下面是使用 Python 编写的统计给定文本文件中每个字符数量的程序
def count_characters(filename):character_count {}with open(filename, r) as file:content file.read()for char in content:if char in character_count:character_count[char] 1else:character_count[char] 1return character_countfilename input(请输入要统计的文本文件名)
result count_characters(filename)print(每个字符的数量统计结果)
for char, count in result.items():print(f{char}: {count})这个程序会要求输入给定文本文件的文件名。首先使用 open 函数打开指定的文件并使用 read 方法读取文件内容。然后遍历文件内容中的每个字符并使用字典来记录每个字符出现的次数。如果字符已经存在于字典中则将对应的计数加 1否则在字典中添加该字符并将计数初始化为 1。最后返回统计结果的字典。
94. 编写一个程序来检查并返回总和值等于目标值N的给定数组A中的对。
下面是使用 Python 编写的检查并返回给定数组 A 中总和等于目标值 N 的对的程序
def find_sum_pairs(array, target):pairs []for i in range(len(array)):for j in range(i 1, len(array)):if array[i] array[j] target:pairs.append((array[i], array[j]))return pairs# 示例输入
A [2, 4, 6, 3, 1, 5]
N 7result find_sum_pairs(A, N)print(f总和等于 {N} 的对)
for pair in result:print(pair)这个程序中定义了一个 find_sum_pairs 函数用于在给定的数组 A 中查找总和等于目标值 N 的数字对。该函数使用两层循环遍历所有可能的数字对并检查它们的总和是否等于目标值。
95. 编写一个程序以在不使用加号运算符的情况下将两个正整数相加。
下面是使用 Python 编写的在不使用加号运算符的情况下将两个正整数相加的程序
def add_without_plus(a, b):while b ! 0:carry a b # 计算进位a a ^ b # 非进位和b carry 1 # 左移一位作为下一轮的进位return anum1 int(input(请输入第一个正整数))
num2 int(input(请输入第二个正整数))result add_without_plus(num1, num2)
print(两个数字的和为, result)这个程序中定义了一个 add_without_plus 函数使用循环来模拟加法运算的过程。在循环中使用位操作符进行计算。首先使用按位与运算符计算出进位值carry然后使用异或^运算符计算出非进位和sum。接着将进位值左移一位作为下一轮计算的进位。重复这个过程直到进位值为 0即完成相加的过程。
96. 编写一个程序来求解给定的方程 ax by cmx ny o假设 a, b, c, m, n, o 是常数。
要解决给定的方程组 ax by c 和 mx ny o可以使用线性代数中的方法。下面是一个使用 Python 编写的求解方程组的程序
import numpy as npdef solve_equation(a, b, c, m, n, o):coefficients np.array([[a, b], [m, n]])constants np.array([c, o])try:solution np.linalg.solve(coefficients, constants)return solutionexcept np.linalg.LinAlgError:print(方程组无解)# 示例输入
a 2
b 3
c 10
m 5
n -7
o 8result solve_equation(a, b, c, m, n, o)print(fx 的值为: {result[0]})
print(fy 的值为: {result[1]})在这个程序中首先导入了 NumPy 库用于进行线性代数计算。然后定义了一个 solve_equation 函数用于求解给定的方程组。在函数内部将方程的系数和常数分别存储在 NumPy 数组 coefficients 和 constants 中。然后使用 np.linalg.solve 函数来解方程组。如果方程组有解则返回解的值如果方程组无解会抛出 np.linalg.LinAlgError 异常。
97. 编写一个程序来匹配字母a后跟4到8个b的字符串。
下面是使用 Python 编写的匹配字母 a 后跟 4 到 8 个 b 的字符串的程序
import redef match_pattern(string):pattern rab{4,8} # 正则表达式模式result re.search(pattern, string)if result:return Trueelse:return Falseprint(match_pattern(abc)) # prints False
print(match_pattern(aabbbbbc)) # prints True98. 编写一个程序将日期从yyyy-mm-dd格式转换为dd-mm-yyyy格式。
下面是使用 Python 编写的将日期从 yyyy-mm-dd 格式转换为 dd-mm-yyyy 格式的程序
def convert_date(date):parts date.split(-) # 拆分日期字符串if len(parts) ! 3: # 验证日期格式return 日期格式不正确year parts[0]month parts[1]day parts[2]converted_date f{day}-{month}-{year} # 构建转换后的日期字符串return converted_datedate input(请输入日期yyyy-mm-dd)
converted_date convert_date(date)
print(转换后的日期为, converted_date)99. 编写一个程序来组合两个不同的词典。组合时如果找到相同的键则可以将这些相同键的值相加 输出新字典。
下面是使用 Python 编写的组合两个不同词典的程序如果找到相同的键则将它们的值相加并输出新字典
from collections import Counterd1 {key1: 50, key2: 100, key3:200}
d2 {key1: 200, key2: 100, key4:300}
new_dict Counter(d1) Counter(d2)
print(new_dict)上述程序使用了 Python 标准库中的 collections 模块中的 Counter 类来更简单地组合两个字典并将具有相同键的值相加。
Counter 类用于计算可哈希对象的出现次数。在这里可以利用 Counter 类的性质来实现字典值的相加和合并。