黑马程序员学习笔记

Python基础语法完全指南:从零入门到实战应用
一、初识Python:从字面量开始
1.1 什么是字面量?
在Python编程中,字面量指的是在代码中直接写下来的固定值。它们是程序中最基础的数据表示形式。
python
# 字面量示例
print(10) # 整数字面量
print(13.14) # 浮点数字面量
print("黑马程序员") # 字符串字面量
1.2 常用的字面量类型
Python中常用的6种值类型包括:
-
字符串(string)
-
整数(int)
-
浮点数(float)
-
布尔值(bool)
-
列表(list)
-
元组(tuple)
1.3 字符串字面量
字符串是由任意数量的字符组成的文本,可以是中文、英文、符号、数字等。
python
# 字符串的不同形式
"黑马程序员" # 双引号字符串
'学Python来黑马' # 单引号字符串
"003032" # 数字组成的字符串
"!@#$%^&" # 符号组成的字符串
二、代码的注释:让程序更易读
2.1 注释的作用
注释是程序中的解释说明文字,不会被执行,但能大大增强代码的可读性。
2.2 注释的分类
python
# 单行注释:以#开头,右边所有内容都是注释
# 这是一个单行注释
# 多行注释:使用三引号包围
"""
这是一个多行注释
可以跨越多行
通常用于文件、类或方法的说明
"""
'''
这也是多行注释
使用单引号或双引号都可以
'''
2.3 注释实战技巧
python
# 正确的注释方式
name = "张三" # 定义姓名变量
"""
程序功能:计算用户年龄
创建时间:2024-01-01
作者:黑马程序员
"""
# 注释不会影响代码执行
# print("这行代码不会执行") # 这行被注释了,不会运行
print("这行代码会执行")
三、变量:程序的记忆单元
3.1 变量的概念
变量是在程序运行时存储数据的抽象概念,用于记录和重复使用数据。
python
# 变量的定义格式
变量名 = 变量的值
# 实际示例
name = "张三" # 字符串变量
age = 25 # 整数变量
height = 175.5 # 浮点数变量
3.2 变量的特征
-
变量存储的数据可以改变
-
变量名是数据的标识符
-
变量值是被存储的具体数据
3.3 变量实战:钱包余额计算
python
# 定义初始余额
money = 50
# 购买商品
money = money - 10 # 购买冰淇淋
money = money - 5 # 购买可乐
# 输出结果
print("钱包余额:", money, "元")
四、数据类型:数据的身份证
4.1 查看数据类型
使用type()函数可以查看任何数据或变量的类型。
python
# 查看字面量的类型
print(type(10)) # <class 'int'>
print(type(13.14)) # <class 'float'>
print(type("Hello")) # <class 'str'>
# 查看变量的类型
name = "张三"
print(type(name)) # <class 'str'>
4.2 重要概念:变量无类型,数据有类型
python
# 盒子比喻:变量是盒子,数据是内容
box = "足球" # 盒子装的是足球,不是盒子是足球
print(type(box)) # 查看的是盒子里的内容类型
# 变量可以装不同类型的数据
data = 100 # 整数
data = "100" # 字符串(变量可以重新赋值)
4.3 字符串的三种定义方式
python
# 1. 双引号定义法
str1 = "双引号字符串"
# 2. 单引号定义法
str2 = '单引号字符串'
# 3. 三引号定义法(支持换行)
str3 = """这是一个
可以换行的
字符串"""
# 引号嵌套技巧
str4 = "他说:'你好'" # 双引号内包含单引号
str5 = '她说:"你好"' # 单引号内包含双引号
str6 = "他说:\"你好\"" # 使用转义字符
五、数据类型转换:数据的变形记
5.1 为什么需要类型转换?
-
从文件读取的数字是字符串,需要转为数字
-
input()获取的输入默认是字符串 -
数字需要转换为字符串才能输出到某些系统
5.2 常见的转换函数
python
# 转换为字符串
num = 100
str_num = str(num) # "100"
# 转换为整数
str_age = "25"
age = int(str_age) # 25
# 转换为浮点数
str_price = "19.99"
price = float(str_price) # 19.99
5.3 类型转换注意事项
python
# 正确示例
int("100") # 可以转换
float("3.14") # 可以转换
str(100) # 可以转换
# 错误示例
# int("100元") # 报错:字符串包含非数字字符
# float("abc") # 报错:不是有效的数字字符串
# 浮点数转整数(丢失精度)
float_num = 19.99
int_num = int(float_num) # 19(小数部分丢失)
5.4 类型转换练习
python
# 定义变量
age = 25 # 整数
height = 175.5 # 浮点数
name = "张三" # 字符串
# 1. 查看类型
print(type(age)) # <class 'int'>
print(type(height)) # <class 'float'>
print(type(name)) # <class 'str'>
# 2. 转换为字符串
str_age = str(age) # "25"
str_height = str(height) # "175.5"
# 3. 尝试将姓名转换为数字(会报错)
# int_name = int(name) # ValueError
六、标识符:编程的命名艺术
6.1 什么是标识符?
标识符是用户编程时使用的名字,用于给变量、函数、类等命名。
6.2 标识符命名规则
-
内容限定:只允许英文、中文、数字、下划线
-
大小写敏感 :
Name和name是不同的标识符 -
不可使用关键字:不能使用Python的保留字
python
# 合法的标识符
name = "张三"
user_name = "李四"
_name = "王五"
名字 = "赵六" # 不推荐使用中文
# 非法的标识符
# 1name = "错误" # 数字不能开头
# user-name = "错误" # 不能使用连字符
# class = "错误" # 不能使用关键字
6.3 变量命名规范
-
见名知意:变量名应明确表达其含义
-
下划线命名法:多个单词用下划线连接
-
英文字母全小写:变量名中的英文应全部小写
python
# 好的命名
user_age = 25
student_name = "张三"
total_price = 100.5
# 不好的命名
a = 25 # 不知道a代表什么
stuName = "张三" # 不符合全小写规范
七、运算符:数据的魔法棒
7.1 算术运算符
python
# 基本算术运算
a = 10
b = 3
print(a + b) # 13,加法
print(a - b) # 7,减法
print(a * b) # 30,乘法
print(a / b) # 3.333...,除法
print(a // b) # 3,整除
print(a % b) # 1,取余
print(a ** b) # 1000,幂运算
7.2 赋值运算符
python
# 标准赋值
money = 100
# 复合赋值
money += 100 # money = money + 100,结果200
money -= 50 # money = money - 50,结果150
money *= 2 # money = money * 2,结果300
money /= 3 # money = money / 3,结果100.0
print(money) # 输出最终结果
八、字符串扩展:文本处理的利器
8.1 字符串拼接
python
# 字面量拼接
result = "学IT来黑马" + "月薪过万"
print(result) # 学IT来黑马月薪过万
# 变量拼接
name = "黑马程序员"
address = "建材城东路9号"
message = "我是:" + name + ",我的地址是:" + address
print(message)
# 注意:字符串不能直接与数字拼接
# error = "价格:" + 100 # 错误!
correct = "价格:" + str(100) # 正确
8.2 字符串格式化(传统方式)
python
# 基本格式化
name = "张三"
age = 25
message = "我叫%s,今年%d岁" % (name, age)
print(message) # 我叫张三,今年25岁
# 常用占位符
# %s - 字符串(万能占位符)
# %d - 整数
# %f - 浮点数
# 精度控制
price = 19.99
print("价格:%5.2f元" % price) # 价格:19.99元(宽度5,精度2)
print("价格:%.2f元" % price) # 价格:19.99元(仅精度2)
8.3 快速字符串格式化(f-string)
python
# f-string格式化(Python 3.6+)
name = "张三"
age = 25
money = 52.269
message = f"我叫{name},今年{age}岁,有{money:.2f}元"
print(message) # 我叫张三,今年25岁,有52.27元
# 表达式格式化
print(f"10 + 20 = {10 + 20}") # 10 + 20 = 30
print(f"类型是:{type('Hello')}") # 类型是:<class 'str'>
8.4 实战:股票价格计算
python
# 股票计算小程序
name = "传智教育"
stock_price = 19.99
stock_code = "003032"
growth_factor = 1.2
growth_days = 7
# 计算最终股价
final_price = stock_price * (growth_factor ** growth_days)
# 格式化输出
print(f"公司:{name},股票代码:{stock_code}")
print(f"当前股价:{stock_price:.2f}元")
print(f"每日增长系数:{growth_factor}")
print(f"经过{growth_days}天增长后,股价为:{final_price:.2f}元")
九、数据输入:与用户交互
9.1 input()函数基础
python
# 基本输入
name = input("请输入您的姓名:")
print(f"您好,{name}!")
# 获取输入并转换类型
age_str = input("请输入您的年龄:")
age = int(age_str) # 转换为整数
print(f"明年您将{age + 1}岁")
9.2 输入数据类型的特点
python
# input()永远返回字符串
num_str = input("请输入一个数字:")
print(type(num_str)) # <class 'str'>
# 需要时手动转换
num = float(num_str) # 转换为浮点数
print(f"数字的平方是:{num ** 2}")
9.3 实战:用户登录系统
python
# 欢迎登录小程序
user_name = input("请输入用户名:")
user_type = input("请输入用户类型(VIP/普通用户):")
# 格式化输出欢迎信息
welcome_msg = f"欢迎{user_name}!您是{user_type}用户,祝您使用愉快!"
print("=" * 40)
print(welcome_msg)
print("=" * 40)
# 综合应用:计算器
num1 = float(input("请输入第一个数字:"))
num2 = float(input("请输入第二个数字:"))
operator = input("请输入运算符(+、-、*、/):")
if operator == "+":
result = num1 + num2
elif operator == "-":
result = num1 - num2
elif operator == "*":
result = num1 * num2
elif operator == "/":
result = num1 / num2
else:
result = "无效运算符"
print(f"计算结果:{num1} {operator} {num2} = {result}")
十、综合实战练习
练习1:个人信息管理系统
python
"""
综合运用所学知识,创建一个个人信息管理系统
功能:
1. 输入个人信息
2. 格式化显示信息
3. 计算年龄相关数据
"""
print("=" * 40)
print("个人信息管理系统")
print("=" * 40)
# 输入信息
name = input("请输入姓名:")
birth_year = int(input("请输入出生年份:"))
height = float(input("请输入身高(米):"))
weight = float(input("请输入体重(公斤):"))
# 计算信息
current_year = 2024
age = current_year - birth_year
bmi = weight / (height ** 2)
# 格式化输出
print("\n" + "=" * 40)
print("个人信息摘要")
print("=" * 40)
print(f"姓名:{name}")
print(f"年龄:{age}岁")
print(f"身高:{height:.2f}米")
print(f"体重:{weight:.1f}公斤")
print(f"BMI指数:{bmi:.1f}")
# 判断BMI状态
if bmi < 18.5:
status = "偏瘦"
elif bmi < 24:
status = "正常"
elif bmi < 28:
status = "偏胖"
else:
status = "肥胖"
print(f"体重状态:{status}")
print("=" * 40)
练习2:简易购物车系统
python
"""
创建一个简易购物车系统
计算商品总价,考虑折扣和优惠
"""
# 商品价格
item1_price = 45.5
item2_price = 29.9
item3_price = 15.0
# 商品数量
item1_count = int(input("请输入商品1的购买数量:"))
item2_count = int(input("请输入商品2的购买数量:"))
item3_count = int(input("请输入商品3的购买数量:"))
# 计算小计
subtotal = (item1_price * item1_count +
item2_price * item2_count +
item3_price * item3_count)
# 应用折扣
discount_rate = 0.1 # 10%折扣
if subtotal > 100:
discount = subtotal * discount_rate
else:
discount = 0
# 计算总额
total = subtotal - discount
# 格式化输出账单
print("\n" + "=" * 50)
print("购物账单")
print("=" * 50)
print(f"{'商品':<10}{'单价':<10}{'数量':<10}{'小计':<10}")
print("-" * 50)
print(f"{'商品1':<10}{item1_price:<10.2f}{item1_count:<10}{item1_price*item1_count:<10.2f}")
print(f"{'商品2':<10}{item2_price:<10.2f}{item2_count:<10}{item2_price*item2_count:<10.2f}")
print(f"{'商品3':<10}{item3_price:<10.2f}{item3_count:<10}{item3_price*item3_count:<10.2f}")
print("-" * 50)
print(f"{'商品小计:':<30}{subtotal:>10.2f}元")
print(f"{'折扣优惠:':<30}{discount:>10.2f}元")
print(f"{'应付总额:':<30}{total:>10.2f}元")
print("=" * 50)
学习建议与总结
学习要点回顾
-
字面量是代码中直接写下的固定值
-
注释用于解释代码,不会被程序执行
-
变量是存储数据的容器,值可以改变
-
数据类型包括字符串、整数、浮点数等
-
类型转换需要在特定场景下进行
-
标识符命名要遵守规则和规范
-
运算符用于数据的各种运算
-
字符串处理是Python的强项
-
input()函数用于获取用户输入