python基础练习

在本文中,我将详细解答和解释Python基础练习题,帮助初学者更好地理解和掌握Python编程语言。以下是几个简单的游戏:猜数字、猜词语和谁是卧底。

1. 猜数字游戏

以下数字游戏来自袁袁袁袁满,发布于华为云社区。

需求描述

随机生成一个100以内的整数,共有10次机会开始游戏,输入猜测的数字
如果猜小了,提示猜小了
如果猜大了,提示猜大了
猜对了,提示猜对了,并且结束游戏
10次机会用完还没猜对,提示游戏结束,没有猜到。

算法思路

1. 使用random库的randint函数生成一个100以内的随机数。

2. 使用 for 循环进行循环10次,每次提示输入要猜测的数字,猜大或猜小都做下相应的提示,并输出还剩下几次机会。

3. 当在10次机会内猜对数字,提示猜对了,你真棒,只用了几次机会。

4. 10次机会用完还没猜对,提示游戏结束,猜不出来吧。

实现代码

"""
Python每日一练
猜数字小游戏
random库 randint的使用方式
random.randint(a,b) 生成一个[a,b]之间的整数 (包含a、b)
"""

import random

# 随机生成一个1-100之间的整数
number = random.randint(0, 100)
# 循环十次结束
for i in range(10):
# input函数从键盘输入要猜的数字,并转换为int类型
choice = int(input("请输入你要猜测的数字:"))
# 大于目标数字
if choice > number:
print("你猜大了")
# 小于目标数字
elif choice < number:
print("你猜小了")
# 等于目标数字
else:
print("你猜对了,真棒!")
print(f"你一共用了{i + 1}次机会")
break
print(f"还剩{9 - i}次机会")
else:
print("游戏结束你还没有猜到。")

猜数字游戏是一个经典的游戏,它可以帮助我们理解Python中的条件语句和循环语句。游戏规则很简单:计算机随机生成一个1到100之间的数字,玩家需要猜出这个数字是多少。根据玩家猜测的数字,计算机会给出提示,告诉玩家猜的数字是太大还是太小,直到玩家猜中为止。

2. 猜词语游戏

需求

  1. 程序随机选择一个词语作为答案,参与者需要猜测这个词语。
  2. 参与者有限定的猜测次数。
  3. 每次猜测后,程序给出反馈,显示猜测的词语中哪些字母在答案中,位置正确,哪些字母在答案中但位置不正确。
  4. 游戏结束后,显示答案和参与者的猜测历史。

思路

  1. 创建一个包含多个词语的列表,程序从中随机选择一个作为答案。
  2. 设置猜测次数的限制,使用循环进行多次猜测。
  3. 获取参与者的猜测,比较与答案的相似度,给出反馈。
  4. 根据猜测的结果,判断游戏是否结束。
  5. 显示游戏结果,包括答案和猜测历史。

代码示例

import random

def choose_word():
    words = ["python", "programming", "challenge", "game", "coding"]
    return random.choice(words)

def display_word(word, guessed_letters):
    display = ""
    for letter in word:
        if letter in guessed_letters:
            display += letter
        else:
            display += "_"
    return display

def main():
    print("欢迎参加猜词游戏!")
    answer = choose_word()
    guessed_letters = []
    max_attempts = 6
    attempts = 0

    while attempts < max_attempts:
        guess = input(f"\n当前词语状态: {display_word(answer, guessed_letters)}\n请输入猜测的字母: ").lower()

        if guess.isalpha() and len(guess) == 1:
            if guess in guessed_letters:
                print("你已经猜过这个字母了,请重新猜测。")
                continue

            guessed_letters.append(guess)

            if set(guessed_letters) == set(answer):
                print(f"恭喜你,你猜对了!答案是:{answer}")
                break

            correct_positions = [i for i in range(len(answer)) if answer[i] == guess]
            if correct_positions:
                print(f"好的,字母'{guess}'在答案中的位置是:{correct_positions}")
            else:
                print(f"很遗憾,字母'{guess}'不在答案中。")

            attempts += 1
        else:
            print("请输入一个有效的字母。")

    print(f"\n游戏结束,答案是:{answer}")
    print("猜测历史:", guessed_letters)

if __name__ == "__main__":
    main()

猜词语游戏是另一个有趣的游戏,它可以帮助我们学习Python中的字符串处理和随机数生成。游戏规则如下:计算机从一个预定义的词语列表中随机选择一个词语,玩家需要猜出这个词语是什么。玩家每次可以猜一个字母,如果猜对了,那么该字母会显示在正确的位置上,如果猜错了,计算机会记录错误次数并绘制一个人物的部分轮廓,当错误次数达到一定限制时,游戏结束。

3. 谁是卧底游戏

需求

  1. 程序随机选择一个词语作为“卧底”,其他词语作为普通身份。
  2. 参与者需要在规定的时间内询问问题,试图找出谁是“卧底”。
  3. “卧底”需要在回答问题时隐瞒身份,普通身份则需真实回答问题。
  4. 游戏结束后,显示答案和参与者的提问历史。

思路

  1. 创建一个包含多个词语的列表,程序从中随机选择一个作为“卧底”,其他作为普通身份。
  2. 设置询问问题的轮数和每轮问题的时间限制。
  3. 参与者在每轮中提问,程序回答问题,并根据回答判断身份。
  4. 根据规则判断游戏是否结束。
  5. 显示游戏结果,包括答案和提问历史。

代码示例

import random
import time

def choose_roles():
    words = ["doctor", "engineer", "teacher", "artist", "spy"]
    undercover = random.choice(words)
    words.remove(undercover)
    return undercover, words

def main():
    print("欢迎参加谁是卧底游戏!")
    undercover, normal_roles = choose_roles()
    roles = normal_roles + [undercover]
    random.shuffle(roles)

    print("游戏开始,请注意保持秘密。")

    num_rounds = 3
    time_per_round = 60  # 每轮时间限制(秒)

    for round_num in range(1, num_rounds + 1):
        print(f"\n第{round_num}轮开始,你有{time_per_round}秒的时间提问。")
        time.sleep(1)

        start_time = time.time()
        questions = []

        while time.time() - start_time < time_per_round:
            question = input("\n请输入你的问题: ")
            questions.append(question)

        print("\n提问结束,现在轮到回答。")

        for i, question in enumerate(questions):
            print(f"\n问题{i + 1}: {question}")
            answer = input("回答: ")

            if roles[i] == undercover:
                print("卧底回答:", answer)
            else:
                print("普通身份回答:", answer)

        guess = input("\n请猜测谁是卧底: ")
        if guess == undercover:
            print(f"恭喜你,你猜对了!卧底是:{undercover}")
            break
        else:
            print(f"很遗憾,猜错了。卧底是:{undercover}")

    print("\n游戏结束,答案是:", undercover)
    print("提问历史:", questions)

if __name__ == "__main__":
    main()

谁是卧底游戏是一种推理和判断能力的游戏,它可以帮助我们学习Python中的列表和随机数生成。游戏规则如下:玩家分为两个身份,卧底和平民。每个玩家会收到一个词语,卧底和平民的词语不同。玩家需要通过提问其他玩家来判断谁是卧底,并投票淘汰一个玩家。游戏会根据投票结果揭示被淘汰玩家的身份,直到卧底被找出为止。

总结

通过以上三个游戏,我们可以学习和练习Python的基本语法、条件语句、循环语句、字符串处理、随机数生成和列表操作等知识点。这些基础练习不仅有助于巩固所学知识,还能提高我们的编程能力和解决问题的能力。

希望本文对初学者们有所帮助,如果你对Python基础练习还有其他疑问,可以随时留言向我提问。祝愿大家在学习Python的过程中取得更好的成果!