代码随想录学习

代码随想录学习

前置知识

基础语法:Python的“单词”与“句子”

Python语法简洁,类似英语,重点掌握以下核心概念:

1. 第一个Python程序:Hello World

创建hello.py文件,输入以下代码并运行(命令行执行python hello.py):

print("Hello, Python World!")  # 输出:Hello, Python World!

print()是Python的内置函数,用于输出内容到控制台。

2. 变量与数据类型

变量是存储数据的“容器”,Python无需声明类型(动态类型),直接赋值即可:

name = "Alice"    # 字符串(str):用单/双引号包裹
age = 25          # 整数(int):无小数部分
salary = 5000.50  # 浮点数(float):有小数部分
is_student = True # 布尔值(bool):仅True/False
  • 查看变量类型:用type()函数,如print(type(age))输出<class 'int'>

3. 基本运算

Python支持算术、比较、逻辑三类运算符:

  • 算术运算+(加)、-(减)、*(乘)、/(除,返回浮点数)、//(整除,返回整数)、%(取余)、**(幂)。
    示例:print(10 // 3)输出3(10除以3的整数部分);print(2 ** 3)输出8(2的3次方)。
  • 比较运算==(等于)、!=(不等于)、>(大于)、<(小于)、>=(大于等于)、<=(小于等于),返回布尔值。
    示例:print(5 == 5)输出Trueprint(10 > 20)输出False
  • 逻辑运算and(与,两者都为True则返回True)、or(或,其一为True则返回True)、not(非,取反)。
    示例:print((5 > 3) and (10 < 20))输出Trueprint(not (5 == 10))输出True

核心概念:控制流、函数、数据结构

这些是Python编程的“骨架”,掌握后才能写出复杂逻辑的代码。

1. 控制流:让程序“做选择”

  • 条件语句(if-elif-else):根据条件执行不同代码块,用缩进(4个空格)标识代码块(Python不用大括号)。
    示例:判断成绩等级:
    score = 85
    if score >= 90:
        print("优秀")
    elif score >= 60:
        print("及格")
    else:
        print("不及格")
    
  • 循环语句:重复执行代码块,常用for(遍历序列)和while(条件为真时循环)。
    • for循环:遍历列表、字符串等序列:
      # 遍历列表
      fruits = ["apple", "banana", "cherry"]
      for fruit in fruits:
          print(fruit)  # 依次输出每个水果
      # 遍历范围(0到4)
      for i in range(5):
          print(i)  # 输出0、1、2、3、4
      
    • while循环:当条件为真时重复执行:
      count = 0
      while count < 5:
          print(count)
          count += 1  # 等价于count = count + 1,输出0-4
      

2. 函数:代码的“积木”

函数是可重复使用的代码块,用于封装功能,减少重复代码。

  • 定义函数:用def关键字,格式为def 函数名(参数):
    示例:问候函数:
    def greet(name):
        """这是一个问候函数(文档字符串,说明函数功能)"""
        return f"Hello, {name}!"  # 返回字符串,f-string是Python 3.6+的字符串格式化方式
    
  • 调用函数:用函数名(参数)
    示例:print(greet("Alice"))输出Hello, Alice!"
  • 默认参数:参数可设置默认值,调用时未提供则用默认值。
    示例:def greet(name="World"): print(f"Hello, {name}!"),调用greet()输出Hello, World!"

3. 数据结构:高效处理数据

Python内置列表、字典、元组、集合四种常用数据结构,用于存储和组织数据:

  • 列表(List):有序、可变的序列,用[]表示,适合存储同类数据(如学生成绩)。
    示例:

    scores = [90, 85, 95, 88]
    scores.append(100)  # 添加元素到末尾,scores变为[90,85,95,88,100]
    print(scores[0])    # 访问第一个元素(索引从0开始),输出90
    print(len(scores))  # 获取列表长度,输出5
    
  • 字典(Dictionary):无序、键值对(key-value)的集合,用{}表示,适合存储映射关系(如用户信息)。
    示例:

    user = {"name": "Alice", "age": 25, "city": "Beijing"}
    print(user["name"])  # 通过key访问value,输出Alice
    user["age"] = 26     # 修改value,user变为{"name":"Alice","age":26,"city":"Beijing"}
    user["gender"] = "female"  # 添加新的键值对
    
  • 元组(Tuple):有序、不可变的序列,用()表示,适合存储不应修改的数据(如坐标)。
    示例:

    coordinates = (10.0, 20.0)
    print(coordinates[0])
    

    输出 10.0
    (元组不可修改,coordinates[0] = 15会报错)。

  • 集合(Set):无序、不重复的元素集合,用{}表示,适合去重或数学运算(如交集、并集)。
    示例:

    unique_numbers = {1, 2, 3, 3, 4}
    print(unique_numbers)
    

    输出 {1,2,3,4}

    自动去重:

    set1 = {1,2,3}
    set2 = {3,4,5}
    print(set1 & set2)
    

    输出 {3}(交集)。

实战项目:用代码解决实际问题

学完基础后,通过小项目巩固知识,以下是3个适合新手的实战项目:

1. 猜数字游戏(综合运用条件、循环、随机数)

目标:程序随机生成1-100的数字,用户猜测,程序提示“太大”或“太小”,直到猜中。
代码

import random  # 导入随机数模块

def guess_number():
    number = random.randint(1, 100)  # 生成1-100的随机数
    attempts = 0  # 记录猜测次数
    while True:
        guess = int(input("猜一个1-100的数字:"))
        attempts += 1
        if guess < number:
            print("太小了!")
        elif guess > number:
            print("太大了!")
        else:
            print(f"恭喜!你猜中了,用了{attempts}次!")
            break

guess_number()  # 调用函数开始游戏

运行效果

猜一个1-100的数字:50
太大了!
猜一个1-100的数字:25
太小了!
猜一个1-100的数字:37
恭喜!你猜中了,用了3次!

2. 简易计算器(综合运用函数、条件、运算)

目标:实现加、减、乘、除四种基本运算,用户输入两个数字和运算符,程序输出结果。
代码

def calculator():
    num1 = float(input("输入第一个数字:"))
    operator = input("输入运算符(+、-、*、/):")
    num2 = float(input("输入第二个数字:"))
    
    if operator == "+":
        result = num1 + num2
    elif operator == "-":
        result = num1 - num2
    elif operator == "*":
        result = num1 * num2
    elif operator == "/":
        if num2 == 0:
            print("错误:除数不能为0!")
            return
        result = num1 / num2
    else:
        print("错误:无效的运算符!")
        return
    
    print(f"结果:{result}")

calculator()  # 调用函数开始计算

运行效果

输入第一个数字:10
输入运算符(+、-、*、/):/
输入第二个数字:2
结果:5.0

3. 待办事项列表(综合运用列表、循环、函数)

目标:实现添加、查看、删除待办事项的功能。
代码

todos = []  # 存储待办事项的列表

def add_todo():
    todo = input("输入待办事项:")
    todos.append(todo)
    print(f"已添加:{todo}")

def view_todos():
    if not todos:
        print("没有待办事项!")
        return
    print("待办事项:")
    for i, todo in enumerate(todos, 1):  # enumerate生成索引(从1开始)
        print(f"{i}. {todo}")

def delete_todo():
    view_todos()
    if not todos:
        return
    index = int(input("输入要删除的事项编号:")) - 1  # 转换为列表索引(从0开始)
    if 0 <= index < len(todos):
        deleted = todos.pop(index)
        print(f"已删除:{deleted}")
    else:
        print("错误:无效的编号!")

# 主循环
while True:
    print("
待办事项管理器")
    print("1. 添加事项")
    print("2. 查看事项")
    print("3. 删除事项")
    print("4. 退出")
    choice = input("选择操作:")
    
    if choice == "1":
        add_todo()
    elif choice == "2":
        view_todos()
    elif choice == "3":
        delete_todo()
    elif choice == "4":
        print("退出程序!")
        break
    else:
        print("错误:无效的选择!")

运行效果

待办事项管理器
1. 添加事项
2. 查看事项
3. 删除事项
4. 退出
选择操作:1
输入待办事项:写作业
已添加:写作业

待办事项管理器
1. 添加事项
2. 查看事项
3. 删除事项
4. 退出
选择操作:2
待办事项:
1. 写作业

待办事项管理器
1. 添加事项
2. 查看事项
3. 删除事项
4. 退出
选择操作:3
待办事项:
1. 写作业
输入要删除的事项编号:1
已删除:写作业

待办事项管理器
1. 添加事项
2. 查看事项
3. 删除事项
4. 退出
选择操作:4
退出程序!

ACM输⼊输出模板

1. 多⾏输⼊,每⾏两个整数

import sys
# 接收输⼊
for line in sys.stdin:
    a, b = line.split(' ')
    # 输出
    print(int(a) + int(b))
    # 输出换⾏
    print()

2. 多组数据,每组第⼀⾏为n, 之后输⼊n⾏两个整数

while 1:
    try:
        N = int(input())
        for i in range(N):
            l = list(map(int,input().split()))
            print(sum(l))
    except:
        break

3. 若干行输入,每行输入两个整数,遇到特定条件终止。

import sys

while True:
    s = input().split()  #一行一行读取
    a , b =int (s[0]), int(s[1])
    if not a or not b :  #遇到 0,0 则中断
        break
    print( a+b )

4. 若干行输入,遇到0终止,每行第一个数为N,表示本行后面有N个数。

import sys
for line in sys.stdin:
    nums = line.split()
    nums = list(map(int,nums))
    n = nums[0]
    if not n
        break
    print(sum(nums[-n:]))

5. 若干行输入,每行包括两个整数a和b,由空格分隔,每行输出后接一个空行。

while True:
    try:
        x , y = map(int,(input()split()))
        print( x + y )
        print( )
    except:
        break

6. 多组n行数据,每行先输入一个整数N,然后在同一行内输入M个整数,每组输出之间输出一个空行。

while 1 :
    try:
        N = int(input())
        for i in range(N):
            n = list(map(int,inpute().split()))
            if n[0] == 0:
                print()
                continue
            print(sum(n[1: ]))
            if i<N-1:
                print()
    except;
        break

7. 多组测试样例,每组输入数据为字符串,字符串用空格分隔,输出位小数点后两位。



posted @ 2026-01-02 00:05  zi49  阅读(10)  评论(0)    收藏  举报