Python简单实例训练(21~30)攻略
在这10个实例中,我们将继续探索Python编程的各种用例和技巧。下面是这些练习的详细攻略:
实例21:石头剪刀布游戏
石头剪刀布是很多人童年时期的经典游戏。这个练习将教你如何用Python编写一个石头剪刀布游戏程序。首先,你需要向用户询问他们要出的手势(即石头、剪刀或布)。接下来,你需要生成计算机随机选择的手势。最后,你需要比较两个手势,并输出结果。
下面是一个示例:
import random
hands = ['石头', '剪刀', '布']
computer_hand = random.choice(hands)
user_hand = input('请选择您要出的手势(石头、剪刀或布):')
if user_hand not in hands:
print('输入无效')
else:
print('您出了:', user_hand)
print('计算机出了:', computer_hand)
if user_hand == computer_hand:
print('平局')
elif (user_hand == '石头' and computer_hand == '剪刀') or (user_hand == '剪刀' and computer_hand == '布') or (user_hand == '布' and computer_hand == '石头'):
print('您赢了')
else:
print('您输了')
实例22:查找列表中最大元素
在这个练习中,你需要编写一个Python程序来查找一个列表中的最大元素。你可以使用 max()
函数来轻松找到列表中的最大元素,但是为了练习,你需要自己编写代码来查找最大元素。
下面是一个示例:
def find_max(lst):
max_num = lst[0]
for num in lst:
if num > max_num:
max_num = num
return max_num
numbers = [1, 3, 5, 7, 2, 4, 6, 8]
print('列表中的最大数字是:', find_max(numbers))
实例23:计算阶乘
阶乘是一个很有用的数学概念,可以用于各种计算中。在这个练习中,你需要编写一个Python程序来计算一个给定数字的阶乘。
下面是一个示例:
def factorial(num):
if num == 0:
return 1
else:
return num * factorial(num - 1)
n = int(input('请输入一个数字:'))
print(n, '阶乘是:', factorial(n))
实例24:斐波那契数列
斐波那契数列是一种非常有趣的数学概念,它可以用于各种计算。在这个练习中,你需要编写一个Python程序来生成一个给定范围内的斐波那契数列。
下面是一个示例:
def fibonacci(n):
sequence = [0, 1]
while sequence[-1] < n:
next_num = sequence[-1] + sequence[-2]
sequence.append(next_num)
return sequence[:-1]
limit = int(input('请输入一个上限数字:'))
print('斐波那契数列(<= %d):\n%s' % (limit, fibonacci(limit)))
实例25:十进制转二进制、八进制、十六进制
在这个练习中,我们将使用Python将一个十进制数字转换为二进制、八进制和十六进制。
下面是一个示例:
def convert_number(num):
print('十进制数 %d 的二进制形式为:%s' % (num, bin(num)))
print('十进制数 %d 的八进制形式为:%s' % (num, oct(num)))
print('十进制数 %d 的十六进制形式为:%s' % (num, hex(num)))
n = int(input('请输入一个十进制数字:'))
convert_number(n)
实例26:计算矩阵的转置
在线性代数中,矩阵转置是一种常见操作。在这个练习中,你需要编写一个Python程序,来计算一个给定矩阵的转置。
下面是一个示例:
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
transpose = [[matrix[j][i] for j in range(len(matrix))] for i in range(len(matrix[0]))]
print('原矩阵:')
for row in matrix:
print(row)
print('矩阵的转置:')
for row in transpose:
print(row)
实例27:对字符串进行加密解密
在这个练习中,你需要编写一个Python程序,可以加密和解密一个字符串。加密算法是将字符串中的每个字符的ASCII码加上1,解密算法是将字符串中的每个字符的ASCII码减去1。
下面是加密和解密的示例:
def encrypt(text):
result = ''
for char in text:
result += chr(ord(char) + 1)
return result
def decrypt(text):
result = ''
for char in text:
result += chr(ord(char) - 1)
return result
message = 'hello world'
encrypted_message = encrypt(message)
decrypted_message = decrypt(encrypted_message)
print('原始字符串:', message)
print('加密后的字符串:', encrypted_message)
print('解密后的字符串:', decrypted_message)
实例28:字符串排序
在这个练习中,你需要编写一个Python程序来对字符串进行排序。具体来说,你需要将字符串中的所有单词按字母顺序排序,并将它们组合成一个新的字符串。
下面是一个示例:
def sort_words(sentence):
words = sentence.split()
words.sort()
return ' '.join(words)
text = 'Python is a great programming language'
sorted_text = sort_words(text)
print('原始字符串:', text)
print('排序后的字符串:', sorted_text)
实例29:求和
在这个练习中,你需要编写一个Python程序,计算一个列表中所有元素的和。
下面是一个示例:
def sum_list(lst):
return sum(lst)
numbers = [1, 2, 3, 4, 5]
total = sum_list(numbers)
print('列表中的元素为:', numbers)
print('列表中的元素之和为:', total)
实例30:判断一个数是否为素数
在这个练习中,你需要编写一个Python程序,判断一个给定数字是否为素数。我们可以使用基本的数学知识来解决这个问题:一个数字是素数,当且仅当它只能整除1和它本身。
下面是一个示例:
def is_prime(num):
if num == 1:
return False
for i in range(2, int(num ** 0.5) + 1):
if num % i == 0:
return False
return True
n = int(input('请输入一个数字:'))
if is_prime(n):
print(n, '是一个素数')
else:
print(n, '不是一个素数')