文章目录
- 系列文章目录
- 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 = c,mx + ny = o,假设 a, b, c, m, n, o 是常数。
- 97. 编写一个程序来匹配字母a后跟4到8个b的字符串。
- 98. 编写一个程序,将日期从yyyy-mm-dd格式转换为dd-mm-yyyy格式。
- 99. 编写一个程序来组合两个不同的词典。组合时,如果找到相同的键,则可以将这些相同键的值相加, 输出新字典。
- 84. range(0,20)[2:-2]执行结果?
本文是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_list
for i in range(2, n):
next_num = fib_list[i-1] + fib_list[i-2] # 计算下一个斐波那契数
fib_list.append(next_num) # 将下一个斐波那契数添加到列表中
return fib_list
n = 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 % 2==1], [el for el in a if el % 2==0]
print(odd,even)
88. 用Python编写程序以检查数字是否为质数。
下面是使用 Python 编写的检查数字是否为质数的程序:
def is\_prime(num):
if num < 2: # 小于2的数不是质数
return False
for i in range(2, int(num\*\*0.5) + 1):
if num % i == 0: # 若能被某个数整除,说明不是质数
return False
return True
num = int(input("请输入一个数字:"))
if is_prime(num):
print(num, "是质数")
else:
print(num, "不是质数")
在函数内部,首先排除小于2的数,因为质数定义为大于 1 的数。然后,使用一个循环从 2 到该数的平方根进行迭代,检查是否存在能整除该数的因子。如果存在这样的因子,则该数不是质数,否则是质数。
89. 编写程序检查数字是否为阿姆斯特朗数。
阿姆斯特朗数是指一个 n 位数(n>=3),它的每个位上的数字的 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 True
else:
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 True
else:
return False
sequence = 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 True
else:
return False
sequence = 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 = word
return longest_word
# 示例输入,文件路径
file_path = "example.txt"
longest_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] += 1
else:
character_count[char] = 1
return character_count
filename = input("请输入要统计的文本文件名:")
result = count_characters(filename)
print("每个字符的数量统计结果:")
for char, count in result.items():
print(f"{char}: {count}")
如果你也是看准了Python,想自学Python,在这里为大家准备了丰厚的免费学习大礼包,带大家一起学习,给大家剖析Python兼职、就业行情前景的这些事儿。
一、Python所有方向的学习路线
Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
二、学习软件
工欲善其必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。
三、全套PDF电子书
书籍的好处就在于权威和体系健全,刚开始学习的时候你可以只看视频或者听某个人讲课,但等你学完之后,你觉得你掌握了,这时候建议还是得去看一下书籍,看权威技术书籍也是每个程序员必经之路。
四、入门学习视频
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。
四、实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
五、面试资料
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
成为一个Python程序员专家或许需要花费数年时间,但是打下坚实的基础只要几周就可以,如果你按照我提供的学习路线以及资料有意识地去实践,你就有很大可能成功!
最后祝你好运!!!
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!