欢迎访问宙启技术站
智能推送

10个有趣的Python编程挑战题目

发布时间:2024-01-01 04:47:48

下面是十个有趣的Python编程挑战题目,并带有使用例子:

1. 反转字符串

编写一个函数,接受一个字符串作为参数,并返回该字符串的反转版本。例如,如果输入字符串为 "hello",则返回 "olleh"。

def reverse_string(string):
    return string[::-1]

print(reverse_string("hello"))  # 输出 "olleh"

2. 判断质数

编写一个函数,接受一个整数作为参数,并判断该整数是否为质数。质数是指只能被1和自身整除的正整数。

def is_prime(number):
    if number < 2:
        return False
    for i in range(2, int(number**0.5) + 1):
        if number % i == 0:
            return False
    return True

print(is_prime(17))  # 输出 True
print(is_prime(20))  # 输出 False

3. 计算斐波那契数列

编写一个函数,接受一个整数 n 作为参数,并返回斐波那契数列的前 n 个数字。斐波那契数列是指前两个数字为 0 和 1,后续每个数字都是前两个数字之和。

def fibonacci(n):
    fibonacci_sequence = [0, 1]
    for i in range(2, n):
        fibonacci_sequence.append(fibonacci_sequence[i-1] + fibonacci_sequence[i-2])
    return fibonacci_sequence

print(fibonacci(10))  # 输出 [0, 1, 1, 2, 3, 5, 8, 13, 21, 34]

4. 查找最长单词

编写一个函数,接受一个句子作为参数,并返回该句子中最长的单词。如果有多个最长单词,只返回 个最长单词。

def longest_word(sentence):
    words = sentence.split()
    longest_word = ""
    for word in words:
        if len(word) > len(longest_word):
            longest_word = word
    return longest_word

print(longest_word("Hello world, I love Python"))  # 输出 "Python"

5. 判断回文字符串

编写一个函数,接受一个字符串作为参数,并判断该字符串是否是一个回文字符串。回文字符串是指正着读和反着读都一样的字符串。

def is_palindrome(string):
    reversed_string = string[::-1]
    return string == reversed_string

print(is_palindrome("level"))  # 输出 True
print(is_palindrome("hello"))  # 输出 False

6. 数字猜谜游戏

编写一个程序,让用户猜一个随机生成的数字。如果用户猜测的数字小于生成的数字,则输出"太小了";如果用户猜测的数字大于生成的数字,则输出"太大了";如果用户猜测正确,则输出"恭喜,猜对了!"。

import random

def guess_number():
    number = random.randint(1, 100)
    while True:
        guess = int(input("请猜一个数字:"))
        if guess < number:
            print("太小了")
        elif guess > number:
            print("太大了")
        else:
            print("恭喜,猜对了!")
            break

guess_number()

7. 统计字符出现次数

编写一个函数,接受一个字符串和一个字符作为参数,并返回该字符在字符串中出现的次数。

def count_occurrences(string, character):
    count = 0
    for char in string:
        if char == character:
            count += 1
    return count

print(count_occurrences("hello", "l"))  # 输出 2

8. 生成随机密码

编写一个函数,接受一个整数 n 作为参数,并生成一个由 n 个随机字符组成的密码。

import random
import string

def generate_password(n):
    password = ''
    for _ in range(n):
        password += random.choice(string.ascii_letters + string.digits + string.punctuation)
    return password

print(generate_password(8))  # 输出类似 "aB2@7$zC"

9. 石头剪刀布游戏

编写一个程序,实现石头剪刀布游戏。程序首先询问玩家要出什么手势("石头"、"剪刀"或"布"),然后随机生成对手的手势,并根据规则判断谁赢了。

import random

def rock_paper_scissors():
    player_gesture = input("请选择你要出什么手势(石头/剪刀/布):")
    cpu_gesture = random.choice(["石头", "剪刀", "布"])

    if player_gesture == cpu_gesture:
        print("平局")
    elif (player_gesture == "石头" and cpu_gesture == "剪刀") or \
            (player_gesture == "剪刀" and cpu_gesture == "布") or \
            (player_gesture == "布" and cpu_gesture == "石头"):
        print("你赢了!")
    else:
        print("你输了!")

rock_paper_scissors()

10. 找素数对

编写一个函数,接受一个整数 n 作为参数,并返回所有小于 n 的素数对。素数对是指差为2的两个素数,例如(3, 5)和(11, 13)。

def find_prime_pairs(n):
    prime_pairs = []
    for i in range(2, n-2):
        if is_prime(i) and is_prime(i+2):
            prime_pairs.append((i, i+2))
    return prime_pairs

print(find_prime_pairs(20))  # 输出 [(3, 5), (5, 7), (11, 13), (17, 19)]

以上是十个有趣的Python编程挑战题目,它们涵盖了字符串操作、数学运算、条件语句和循环、随机数生成等多个方面,可以帮助你提高Python编程能力并享受编程的乐趣。