python基础到超神200题(一)

#1.基础知识(14道题)

1.1 Python语法基础

变量和数据类型

题目1: 创建一个程序,让用户输入他们的名字和年龄,然后输出一条消息,告诉他们多少年后他们将年满100岁。

答案1:

name = input("请输入你的名字: ")
age = int(input("请输入你的年龄: "))
years_to_100 = 100 - age
print(f"{name},你将在{years_to_100}年后年满100岁。")

题目2: 编写一个程序,计算两个数的和、差、乘、除,并输出结果。

答案2:

num1 = float(input("请输入第一个数字: "))
num2 = float(input("请输入第二个数字: "))
sum_result = num1 + num2
diff_result = num1 - num2
mul_result = num1 * num2
if num2 != 0:
    div_result = num1 / num2
    print(f"和: {sum_result}, 差: {diff_result}, 积: {mul_result}, 商: {div_result}")
else:
    print("除数不能为0,无法计算商。")

题目3: 创建一个程序,让用户输入他们的生日(格式为YYYY-MM-DD),然后输出他们出生了多少天。

答案3:(需要导入datetime模块)

from datetime import datetime

birth_date_str = input("请输入你的生日(YYYY-MM-DD): ")
birth_date = datetime.strptime(birth_date_str, '%Y-%m-%d')
today = datetime.today()
days_alive = (today - birth_date).days
print(f"你已经出生了{days_alive}天。")
运算符和表达式

题目4: 编写一个程序,让用户输入一个整数,然后判断这个数是否是回文数(正读和反读都一样的数,例如121或1221)。

答案4:

num = input("请输入一个整数: ")
num = str(num)
if num == num[::-1]:
    print(f"{num}是回文数。")
else:
    print(f"{num}不是回文数。")

题目5: 创建一个程序,计算一个数的阶乘(即n的阶乘是n乘以n-1乘以n-2…乘以1)。

答案5:

def factorial(n):
    if n == 0 or n == 1:
        return 1
    else:
        return n * factorial(n-1)

num = int(input("请输入一个整数来计算其阶乘: "))
result = factorial(num)
print(f"{num}的阶乘是: {result}")
条件语句(if-elif-else)

题目6: 编写一个程序,根据用户输入的分数判断其等级(例如:90-100为A,80-89为B,70-79为C,60-69为D,59以下为E)。

答案6:

score = int(input("请输入你的分数: "))
if score >= 90:
    grade = 'A'
elif score >= 80:
    grade = 'B'
elif score >= 70:
    grade = 'C'
elif score >= 60:
    grade = 'D'
else:
    grade = 'E'
print(f"你的等级是: {grade}")

题目7: 创建一个程序,让用户输入三个数,然后判断并输出这三个数中最大和最小的数。

答案7:

num1 = float(input("请输入第一个数: "))
num2 = float(input("请输入第二个数: "))
num3 = float(input("请输入第三个数: "))

max_num = max(num1, num2, num3)
min_num = min(num1, num2, num3)

print(f"最大数是: {max_num}")
print(f"最小数是: {min_num}")
循环结构(for, while)

题目8: 编写一个程序,打印出1到100之间的所有素数。

答案8:

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

for num in range(1, 101):
    if is_prime(num):
        print(num)

题目9: 创建一个程序,让用户输入一个正整数n,然后输出一个n*n的乘法表。

答案9:

n = int(input("请输入一个正整数来生成乘法表: "))
for i in range(1, n+1):
    for j in range(1, n+1):
        print(f"{i}*{j}={i*j}", end='\t')
    print()  # 换行

题目10: 编写一个程序,使用while循环计算用户输入的正整数的阶乘。

答案10:

def factorial_while(n):
    result = 1
    while n > 0:
        result *= n
        n -= 1
    return result

num = int(input("请输入一个正整数来计算其阶乘: "))
result = factorial_while(num)
print(f"{num}的阶乘是: {result}")
函数定义和调用

题目11: 编写一个函数,用于计算一个列表中所有元素的平均值,并调用这个函数。

答案11:

def calculate_average(numbers):
    return sum(numbers) / len(numbers)

numbers = [int(input(f"请输入第{i+1}个数: ")) for i in range(5)]
average = calculate_average(numbers)
print(f"这些数的平均值是: {average}")

题目12: 创建一个函数,用于检查一个字符串是否是回文串,并调用这个函数。

答案12:

def is_palindrome(s):
    return s == s[::-1]

string = input("请输入一个字符串来检查是否是回文串: ")
if is_palindrome(string):
    print(f"{string}是回文串。")
else:
    print(f"{string}不是回文串。")

题目13: 编写一个函数,用于计算斐波那契数列中第n项的值,并调用这个函数。

答案13:

def fibonacci(n):
    if n <= 0:
        return "输入错误,n必须为正整数。"
    elif n == 1:
        return 0
    elif n == 2:
        return 1
    else:
        a, b = 0, 1
        for _ in range(2, n):
            a, b = b, a + b
        return b

n = int(input("请输入一个正整数来计算斐波那契数列的第n项: "))
result = fibonacci(n)
print(f"斐波那契数列的第{n}项是: {result}")

题目14: 创建一个函数,用于将一个整数列表中的偶数元素翻倍,并调用这个函数。

答案14:

def double_evens(numbers):
    return [num * 2 if num % 2 == 0 else num for num in numbers]

numbers = [int(input(f"请输入第{i+1}个数: ")) for i in range(5)]
doubled_evens = double_evens(numbers)
print(f"翻倍后的列表是: {doubled_evens}")

1.2 数据结构

列表(list)操作

题目15: 创建一个列表,包含1到10的整数,然后编写一个函数,用于查找列表中是否存在某个特定数字,并返回其索引(如果不存在则返回-1)。

答案15:

def find_number_in_list(lst, num):
    for i, n in enumerate(lst):
        if n == num:
            return i
    return -1

numbers = list(range(1, 11))
number_to_find = int(input("请输入一个数字来查找其在列表中的索引: "))
index = find_number_in_list(numbers, number_to_find)
print(f"数字 {number_to_find} 在列表中的索引是: {index}")

题目16: 创建一个列表,并编写一个函数,用于将列表中的元素反转。

答案16:

def reverse_list(lst):
    return lst[::-1]

my_list = [1, 2, 3, 4, 5]
reversed_list = reverse_list(my_list)
print(f"反转后的列表是: {reversed_list}")

题目17: 编写一个函数,用于计算一个列表中所有数字的平均值,列表中的元素是用户输入的。

答案17:

def average_of_list(lst):
    return sum(lst) / len(lst)

numbers = []
num_count = int(input("请输入要输入的数字数量: "))
for _ in range(num_count):
    num = float(input("请输入一个数字: "))
    numbers.append(num)
average = average_of_list(numbers)
print(f"列表中的数字平均值为: {average}")
元组(tuple)和集合(set)

题目18: 创建一个包含重复元素的元组,然后将其转换为集合以消除重复项,并输出集合。

答案18:

my_tuple = (1, 2, 2, 3, 3, 3, 4)
my_set = set(my_tuple)
print(f"转换为集合后: {my_set}")

题目19: 创建一个集合,包含一些元素,并编写一个函数,用于检查该集合是否包含某个特定元素。

答案19:

def check_element_in_set(s, elem):
    return elem in s

my_set = {1, 2, 3, 4, 5}
element_to_check = int(input("请输入一个元素来检查其是否在集合中: "))
if check_element_in_set(my_set, element_to_check):
    print(f"元素 {element_to_check} 在集合中。")
else:
    print(f"元素 {element_to_check} 不在集合中。")
字典(dictionary)操作

题目20: 创建一个字典,其中键是学生的名字,值是他们的分数。编写一个函数,用于查找特定学生的分数。

答案20:

def find_student_score(scores_dict, student_name):
    return scores_dict.get(student_name, "学生不存在")

scores = {
    "Alice": 90,
    "Bob": 85,
    "Charlie": 92
}
student_to_check = input("请输入要查找分数的学生名字: ")
score = find_student_score(scores, student_to_check)
print(f"学生 {student_to_check} 的分数是: {score}")

1.3 文件操作

文件读写

题目21: 创建一个文本文件,并写入一些内容。然后编写一个程序来读取该文件的内容,并打印到屏幕上。

答案21:

# 写入文件
with open("example.txt", "w") as file:
    file.write("Hello, World!\nThis is an example file.")
文件

**答案21(续):**
```python
# 读取文件
with open("example.txt", "r") as file:
    content = file.read()
    print(content)

题目22: 创建一个包含多个行和列的文本文件,每行代表一个学生的信息(例如:姓名、年龄、成绩)。编写一个程序来读取该文件,并提取每个学生的信息。

答案22:

# 假设文件内容如下:
# Alice,20,90
# Bob,21,85
# Charlie,22,92

# 读取文件并提取学生信息
with open("students.txt", "r") as file:
    students = []
    for line in file:
        name, age, score = line.strip().split(",")
        students.append({"name": name, "age": int(age), "score": int(score)})

# 打印学生信息
for student in students:
    print(f"姓名: {student['name']}, 年龄: {student['age']}, 成绩: {student['score']}")
异常处理

题目23: 编写一个程序,尝试打开一个不存在的文件,并使用异常处理来捕获可能出现的错误。

答案23:

try:
    with open("nonexistent_file.txt", "r") as file:
        content = file.read()
        print(content)
except FileNotFoundError:
    print("文件不存在,请检查文件名是否正确。")

题目24: 创建一个文件,并尝试写入一些内容。在写入过程中,故意引发一个异常(例如,尝试写入一个只读文件),并处理该异常。

答案24:

try:
    # 假设我们有一个只读文件
    with open("readonly_file.txt", "r") as file:
        file.write("尝试写入只读文件会引发异常")  # 这会抛出 IOError 或其子类 PermissionError
except PermissionError:
    print("无法写入文件,因为它可能是只读的。")

题目25: 编写一个程序,从用户那里接收文件名和内容,然后尝试将内容写入文件。如果文件已经存在,提示用户是否覆盖该文件。

答案25:

filename = input("请输入文件名: ")
content = input("请输入要写入文件的内容: ")

if os.path.exists(filename):
    choice = input(f"文件 {filename} 已存在,是否覆盖?(y/n): ")
    if choice.lower() != "y":
        print("取消写入操作。")
        exit()

try:
    with open(filename, "w") as file:
        file.write(content)
    print(f"内容已成功写入 {filename}。")
except IOError as e:
    print(f"写入文件时发生错误: {e}")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值