自学python第三天

Python基础语法详解

一、字面量

字面量是直接在代码中表示数据的固定值。

# 数值字面量
42        # 整数
3.14      # 浮点数
2+3j      # 复数

# 字符串字面量
'Hello'
"World"
'''多行字符串'''
"""也可以是多行"""
# 使用单三引号
multiline_str1 = '''
这是一个多行字符串。
它可以包含换行符,
甚至可以包含"双引号"和'单引号'。
'''

# 使用双三引号
multiline_str2 = """
这是另一个多行字符串。
用法完全相同,
可以根据需要选择单引号或双引号。
"""

# 布尔字面量
True
False

# 空值字面量
None

二、注释

注释用于解释代码,不会被执行。

# 单行注释。这一行井号后面的都是注释,解释器不执行

"""
多行注释
使用三引号括起来的地方,
解释器不执行
"""

多行注释原理可以通过下图理解:

"""
这是一个多行字符串,
但如果没有赋值给变量,
Python 会创建这个字符串但不保存它。
"""

def add(a, b):
    # 返回两数之和
    return a + b

三、变量

变量是存储数据的容器,使用前需赋值。

x = 10       # 整数变量
name = "Alice"  # 字符串变量
is_student = True  # 布尔变量

# 多重赋值
a, b, c = 1, 2, 3

# 交换变量
x, y = y, x

四、数据类型

Python是动态类型语言,变量类型由赋值自动决定。

1. 基本数据类型

# 数值类型
x = 10        # int
y = 3.14      # float
z = 2 + 3j    # complex

# 字符串
name = "Alice"
message = 'Hello, World!'

# 布尔
is_valid = True
has_permission = False

# 空值
result = None

2. 复合数据类型

# 列表(可变)
fruits = ["apple", "banana", "cherry"]

# 元组(不可变)
point = (3, 4)

# 字典
person = {
    "name": "Alice",
    "age": 30
}

# 集合
numbers = {1, 2, 3, 3}  # 自动去重,结果为 {1, 2, 3}

五、数据类型转换

显式转换数据类型的方法。

# 数值转换
x = int(3.14)     # 3
y = float("2.71")  # 2.71
z = complex(1, 2)  # 1+2j

# 字符串转换
s = str(42)       # "42"
s = repr([1, 2, 3])  # "[1, 2, 3]"

# 序列转换
lst = list((1, 2, 3))  # [1, 2, 3]
tup = tuple([1, 2, 3])  # (1, 2, 3)

# 布尔转换
bool(0)    # False
bool("")   # False
bool([])   # False
bool(None) # False

六、标识符

标识符是变量、函数、类等的名称,需遵循规则:

  1. 由字母、数字、下划线组成
  2. 不能以数字开头
  3. 区分大小写
  4. 不能使用Python关键字(如if、def、class等)
# 合法标识符
age
user_name
_is_valid

# 非法标识符
123name  # 以数字开头
class    # 关键字
my-name  # 包含非法字符(-)

七、运算符

Python支持多种运算符。

1. 算术运算符

x + y  # 加法
x - y  # 减法
x * y  # 乘法
x / y  # 除法(结果为浮点数)
x // y # 整除
x % y  # 取模(余数)
x ** y # 幂运算

2. 比较运算符

x == y  # 等于
x != y  # 不等于
x > y   # 大于
x < y   # 小于
x >= y  # 大于等于
x <= y  # 小于等于

3. 逻辑运算符

x and y  # 逻辑与
x or y   # 逻辑或
not x    # 逻辑非

4. 赋值运算符

x = 10
x += 5  # 等价于 x = x + 5
x -= 3  # 等价于 x = x - 3
x *= 2  # 等价于 x = x * 2
# 以此类推...

5. 成员运算符

x in lst    # 判断x是否在列表lst中
x not in s  # 判断x是否不在集合s中

6. 身份运算符

x is y      # 判断x和y是否引用同一对象
x is not y  # 判断x和y是否引用不同对象

八、字符串扩展

字符串是不可变的序列类型,支持多种操作。

1. 字符串索引与切片

s = "Hello, World!"
s[0]      # 'H'(索引从0开始)
s[-1]     # '!'(负数索引从末尾开始)
s[0:5]    # 'Hello'(切片:左闭右开)
s[7:]     # 'World!'(省略结束索引)
s[::-1]   # '!dlroW ,olleH'(反转字符串)

2. 字符串方法

s.lower()     # 'hello, world!'
s.upper()     # 'HELLO, WORLD!'
s.strip()     # 去除首尾空格
s.replace('World', 'Python')  # 'Hello, Python!'
s.split(',')  # ['Hello', ' World!']
' '.join(['Hello', 'World'])  # 'Hello World'
s.startswith('Hello')  # True
s.endswith('!')        # True
'123'.isdigit()        # True

3. 字符串格式化

# 旧式格式化
name = "Alice"
age = 30
print("My name is %s and I'm %d years old." % (name, age))

# 新式格式化(Python 3.6+)
print(f"My name is {name} and I'm {age} years old.")

# format()方法
print("My name is {} and I'm {} years old.".format(name, age))

九、数据输入

使用input()函数从标准输入获取用户输入。

# 获取字符串输入
name = input("请输入你的名字: ")
print(f"你好, {name}!")

# 获取数值输入(需转换类型)
age = int(input("请输入你的年龄: "))
print(f"你的年龄是 {age} 岁。")

# 处理多个输入
x, y = input("请输入两个数字(用空格分隔): ").split()
sum = int(x) + int(y)
print(f"两数之和为: {sum}")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值