Python 入门 Day1:老程序员转型第一天,从变量到函数全吃透

好的!下面是一篇针对准备转型的开发人员(比如从 Java/C/C++/Go 等语言转到 Python)的Day 1 学习博客文章,内容自然通俗,带有代码与逐行解释,适合作为你专栏中的第 1 篇入门文章。


前言:为什么你值得花 1 天时间系统过一遍 Python 基础?

如果你之前是 Java、C++、Go 开发出身,肯定对编程逻辑不陌生,但刚接触 Python 时也可能会被它 “太灵活” 的语法搞得有点懵。

  • 声明变量不写类型?
  • 循环里还能这样写?
  • 字典、列表、集合怎么一锅炖?

别急,这篇文章用一整天的时间,帮你从变量、流程控制、函数、列表推导,一步步构建起“Python 编程大脑模型”,写出符合 Python 风格的代码。


Day1 学习目标

  • 理解 Python 的变量类型和数据结构
  • 掌握常见控制流语句
  • 学会定义函数,传参,返回值
  • 能读懂基本语法并写出完整小程序

一、变量类型和基础数据结构

变量不需要声明类型

name = "Alice"
age = 30
height = 1.68
is_admin = True

Python 是动态类型语言,不需要你写 int age = 30 这样的定义,它会自动推断类型。

常见数据类型

类型 示例 特点
int 10 整数,无大小限制
float 3.14 小数
str "Hello" 字符串,可用 '"
bool True / False 布尔值
list [1, 2, 3] 有序、可变
tuple (1, 2, 3) 有序、不可变
dict {"name": "Tom"} 键值对
set {1, 2, 3} 无序、唯一值集合

字符串(str)

name = "Alice"
greeting = f"Hello, {name}"
print(greeting)

列表(list)

fruits = ["apple", "banana", "cherry"]
fruits.append("orange")
print(fruits[0])  # apple

字典(dict)

person = {"name": "Tom", "age": 30}
print(person["name"])

元组(tuple)

point = (3, 4)
x, y = point

集合(set)

unique_nums = set([1, 2, 2, 3])
print(unique_nums)  # {1, 2, 3}

二、流程控制

✅ 条件语句:if / elif / else

score = 85

if score >= 90:
    print("优秀")
elif score >= 60:
    print("及格")
else:
    print("不及格")

注意:

  • Python 没有花括号,靠缩进来划分代码块
  • 缩进用 4个空格(推荐)

循环语句

for 循环(遍历列表/区间)
for i in range(3):  # 0, 1, 2
    print(f"第{i+1}次循环")
while 循环
count = 0
while count < 3:
    print("还没结束")
    count += 1
break / continue
# break 示例
for i in range(5):
    if i == 3:
        break
    print(i)  # 打印 0 1 2

# continue 示例
for i in range(5):
    if i == 3:
        continue
    print(i) # 打印 0 1 2 4

range、zip、enumerate

for i in range(1, 5):
    print(i)  # 输出 1 2 3 4

解读:

  • range(1, 5) 表示生成从 1 到 4 的整数序列(不包含 5);

  • for i in range(...) 是 Python 中最常用的循环方式;

  • 输出结果为:

    1
    2
    3
    4
    

names = ["Alice", "Bob"]
scores = [90, 85]
for name, score in zip(names, scores):
    print(name, score)

解读:

  • zip(names, scores) 会将两个列表按位置一一配对,返回一个由 (name, score) 组成的迭代器;

  • 这种方式常用于成对处理多个列表的元素;

  • 输出结果为:

    Alice 90
    Bob 85
    

for idx, name in enumerate(names):
    print(f"{idx+1}. {name}")

解读:

  • enumerate(names) 会将列表中的每个元素与其索引(默认从 0 开始)打包成 (index, value)

  • idx + 1 是为了让显示的编号从 1 开始,更符合人类阅读习惯;

  • 输出结果为:

    1. Alice
    2. Bob
    
函数 用途 示例
range(start, end) 生成整数序列(不含 end) 遍历索引、循环次数
zip(list1, list2) 并行遍历多个序列 名称 + 成绩、键值对处理
enumerate(iterable) 获取索引和值 列表编号输出、位置标注

三、函数:定义、调用、返回值

函数定义方式

def greet(name):
    return f"你好,{name}"
  • def 定义函数,冒号 : 后面是缩进体
  • 返回值用 return

调用函数

msg = greet("小明")
print(msg)  # 输出:你好,小明

默认参数

def greet(name="Guest"):
    return f"Hello, {name}"

可变参数 *args, **kwargs

示例 1:*args 用于传入不定数量的位置参数
def add_all(*args):
    return sum(args)

调用示例:

print(add_all(1, 2, 3))  # 输出 6
print(add_all(10, 20))   # 输出 30

解读:

  • *args 把传入的所有参数打包成一个元组 (1, 2, 3)
  • 你可以直接用 sum() 对其进行聚合处理。
  • Pythonic 的地方在于简洁优雅地处理“多个参数”。

示例 2:**kwargs 用于接收任意命名参数
def print_info(**kwargs):
    for k, v in kwargs.items():
        print(f"{k}: {v}")

调用示例:

print_info(name="Tom", age=30, job="Engineer")

输出:

name: Tom
age: 30
job: Engineer

四、列表推导式(Python 风格利器)

如果你之前用 Java 写过 map/filter,这个你会很喜欢:

✅ 普通写法:

nums = [1, 2, 3, 4]
squares = []
for n in nums:
    squares.append(n * n)

✅ Pythonic 写法:

squares = [n * n for n in nums]

还能加条件:

even_squares = [n * n for n in nums if n % 2 == 0]

✅ 条件表达式(类似三元运算符)

age = 20
status = "adult" if age >= 18 else "child"

实战案例:制作一个「工资计算器」

模拟一个输入员工姓名和小时工资,输出总工资的小程序:

def calculate_salary(name, hours, rate):
    total = hours * rate
    print(f"{name} 的本月工资是:¥{total}")

# 示例调用
calculate_salary("小李", 160, 50)
# 输出:小李 的本月工资是:¥8000

✅ Day1 小结

你今天学到了什么
✅ 变量声明和基本类型 str, int, list, dict, set
✅ 流程控制 if、for、while、break、continue 、range、zip、enumerate
✅ 函数定义与调用 参数、返回值、缩进语法
✅ Pythonic 写法 列表推导式、格式化字符串
✅ 实战能力 能写简单的输入→计算→输出的逻辑

你可能感兴趣的:(Python,python,开发语言)