【Python篇】快速理解Python语法:全面指南

2024-10-09 19:28:38 浏览数 (4)

深入理解Python语法:全面指南

简介

Python作为一种高级编程语言,因其简单易学、功能强大而受到广泛欢迎。本文将对Python的核心语法进行详细讲解,帮助你更好地理解和掌握Python编程。如果你已经具备了C语言的基础,本篇博客将帮助你快速上手Python并深入理解其独特的语法特性。

1. 数字类型及操作

Python支持多种数字类型,包括整数、浮点数和复数。与C语言不同,Python中的整数类型没有范围限制,因此你可以处理非常大的整数。此外,Python还提供了多种进制的表示方法,如二进制、八进制和十六进制。

代码语言:javascript复制
# 进制转换示例
num = 255
print("二进制:", bin(num))  # 0b11111111
print("八进制:", oct(num))  # 0o377
print("十六进制:", hex(num))  # 0xff
常用操作符
  • 加法: x y,返回x与y的和。
  • 减法: x - y,返回x与y的差。
  • 乘法: x * y,返回x与y的积。
  • 除法: x / y,返回x与y的商。需要注意,Python中的除法操作始终返回浮点数。
  • 整数除法: x // y,返回x与y的整数商。又叫地板除,始终向下取整
  • 取余: x % y,返回x除以y的余数。(与C不同,结果符号和除数相同(即右操作数))
  • 幂运算: x ** y,返回x的y次幂。

Python还支持增强赋值操作符,如x = y等,简化了代码编写。

python中舍去了C中的前置和后置

Python的一个基本设计理念是:一个问题只提供一种解决方案(这在后面循环分支等结构也会体现)

代码语言:javascript复制
# 示例:基本运算
a = 10
b = 3
print(a   b)  # 13
print(a - b)  # 7
print(a * b)  # 30
print(a / b)  # 3.3333...
print(a // b)  # 3
print(a % b)  # 1
print(a ** b)  # 1000
常用内置函数
  • abs(x): 返回x的绝对值。
  • pow(x, y): 返回x的y次幂。
  • round(x, n): 将x四舍五入到小数点后n位。
  • int(x): 将x转换为整数。
  • float(x): 将x转换为浮点数。
  • complex(x, y): 创建一个复数,x为实部,y为虚部。

2. 字符串类型及操作

字符串是由字符组成的有序序列。Python为字符串操作提供了丰富的功能,使得字符串处理变得非常方便。

字符串操作符
  • 连接: x y,将两个字符串x和y连接起来。
  • 重复: x * n,将字符串x重复n次。
  • 成员检查: x in s,检查x是否是字符串s的子串。
字符串处理函数
  • len(x): 返回字符串x的长度。
  • str(x): 将任意类型x转换为字符串形式。
  • hex(x): 将整数x转换为十六进制字符串。
  • oct(x): 将整数x转换为八进制字符串。
  • chr(u): 返回Unicode编码u对应的字符。
  • ord(x): 返回字符x对应的Unicode编码。
字符串处理方法
  • str.lower() / str.upper(): 将字符串转换为小写或大写。
  • str.split(sep): 根据指定的分隔符将字符串分割成列表。
  • str.replace(old, new): 将字符串中的old子串替换为new子串。
  • str.center(width, fillchar): 将字符串填充到指定宽度,并居中对齐。
  • str.strip(chars): 去除字符串两侧的指定字符。
  • str.join(iter): 将iter中的元素用字符串连接。
代码语言:javascript复制
# 示例:字符串操作
s = "Hello"
print(s.lower())  # "hello"
print(s.upper())  # "HELLO"
print(s.split('e'))  # ['H', 'llo']
print(s.replace('l', 'x'))  # "Hexxo"
print(s.center(10, '*'))  # "***Hello***"

s = "  Python编程  "
print("去除空格:", s.strip())  # 去除两侧空格 "Python编程"
print("替换字符:", s.replace("编程", "学习"))  # 替换 "Python学习"
print("字符串填充:", s.center(20, "*"))  # 居中填充 "****Python编程****"
format()方法的格式控制

Python的format()方法为字符串提供了强大的格式化功能。

代码语言:javascript复制
"{:<10}".format("BIT")   # 左对齐
"{:>10}".format("BIT")   # 右对齐
"{:^10}".format("BIT")   # 居中对齐
"{:.2f}".format(12345.6789)  # 保留两位小数
"{:,}".format(12345.6789)  # 千位分隔符

3. 程序的分支结构

Python中的控制结构与C语言类似,包括条件语句和循环语句。

Python采用代码缩进来表示代码块

条件语句
  • 单分支 if: 根据条件判断是否执行语句块。
  • 二分支 if-else: 条件满足执行一个语句块,否则执行另一个语句块。
  • 多分支 if-elif-else: 支持多条件判断。
代码语言:javascript复制
if condition:
    # 执行语句块
elif another_condition:
    # 执行另一个语句块
else:
    # 执行最后的语句块
代码语言:javascript复制
# 条件表达式简写示例
x = 10
y = 20
max_value = x if x > y else y  # 返回较大值
print("较大的值是:", max_value)  # 20

4. 程序的循环结构

Python提供了两种主要的循环结构:for循环和while循环。

for 循环

for循环用于遍历一个序列(如列表、字符串等),对于序列中的每一个元素,循环体将被执行一次。

代码语言:javascript复制
# for <循环变量> in <遍历结构> :
#  <语句块>

for i in range(5):
    print(i)  # 输出 0, 1, 2, 3, 4
enumerate遍历
代码语言:javascript复制
# 使用enumerate函数遍历列表
fruits = ["苹果", "香蕉", "樱桃"]
for index, fruit in enumerate(fruits):
    print(f"索引 {index} 对应的水果是: {fruit}")
while 循环

while循环会在指定条件为真的情况下重复执行代码块,直到条件为假为止。

代码语言:javascript复制
#while <条件> :
# <语句块>

count = 0
while count < 5:
    print(count)
    count  = 1  # 计数器递增

5. 函数的定义与使用

函数是Python中实现代码重用的重要工具。你可以通过def关键字来定义一个函数,并通过调用函数来执行代码。

代码语言:javascript复制
def function_name(parameters):
    # 函数体
    return value

Python还支持匿名函数(lambda表达式),用于定义简单的、仅包含一个表达式的函数。

函数递归

函数递归是函数调用自身的一种编程技术,通常用于解决分治问题。递归函数需要定义基例条件和递归链条,以确保递归能够正确终止。

代码语言:javascript复制
# 示例:阶乘的递归计算
def factorial(n):
    if n == 1:
        return 1
    else:
        return n * factorial(n - 1)

print(factorial(5))  # 输出 120

6. 集合类型及操作

集合类型在Python中是无序的、可变的容器,通常用于包含关系测试、重复元素移除等场景。

集合的定义
  • 使用{}set()函数创建集合。
集合操作符
  • 交集:&
  • 并集:|
  • 差集:-
  • 补集:^
常用集合方法
  • set.add(x): 向集合中添加元素x。
  • set.discard(x): 如果x在集合中,移除它。
  • set.pop(): 随机移除并返回集合中的一个元素。
代码语言:javascript复制
# 示例:集合操作
a = {1, 2, 3, 4}
b = {3, 4, 5, 6}
print(a & b)  # 交集:{3, 4}
print(a | b)  # 并集:{1, 2, 3, 4, 5, 6}
print(a - b)  # 差集:{1, 2}
print(a ^ b)  # 补集:{1, 2, 5, 6}

7. 序列类型及操作

序列类型包括列表、元组和字符串。序列类型是Python中最常用的数据结构之一,支持索引、切片和多种内置方法。

列表

列表是可变的有序序列,使用[]list()创建。

代码语言:javascript复制
# 示例:列表操作
fruits = ["apple", "banana", "cherry"]
fruits.append("orange")  # 添加元素
print(fruits)  # 输出 ['apple', 'banana', 'cherry', 'orange']
代码语言:javascript复制
# 列表解析示例
squares = [x**2 for x in range(10)]
print("平方列表:", squares)  # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
元组

元组是不可变的有序序列,使用()tuple()创建。

代码语言:javascript复制
# 示例:元组操作
fruits = ("apple", "banana", "cherry")
print(fruits[0])  # 输出 'apple'

8. 字典类型及操作

字典是Python中用于存储键值对的无序集合,键必须是唯一的,而值可以重复。字典通常用于高效的查找操作。

字典的定义
  • 使用{}dict()创建字典,键值对用:分隔。
代码语言:javascript复制
# 字典解析示例
square_dict = {x: x**2 for x in range(5)}
print("平方字典:", square_dict)  # {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}
字典操作符和方法
  • d[key]: 访问字典中键为key的值。
  • d.get(key, default): 获取键key对应的值,如果不存在则返回default
  • d.pop(key, default): 移除并返回key对应的值,如果不存在则返回default
代码语言:javascript复制
# 示例:字典操作
person = {"name": "Alice", "age": 25, "city": "New York"}
print(person["name"])  # 输出 'Alice'
print(person.get("age"))  # 输出 25
person["email"] = "alice@example.com"  # 添加新的键值对
print(person)

9. 文件操作

Python提供了丰富的文件操作功能,包括文件的读取、写入和关闭。你可以通过open()函数来打开文件,并使用.read().readline().readlines()等方法读取文件内容。

代码语言:javascript复制
with open('file.txt', 'r') as file:
    content = file.read()
文件的读取方法
  • f.read(size): 读取文件中的size个字符,如果未指定size,则读取整个文件。
  • f.readline(): 读取文件中的一行内容。
  • f.readlines(): 读取文件中的所有行,并返回一个列表。
代码语言:javascript复制
# 示例:读取文件的不同方式

# 假设有一个名为 example.txt 的文件,其中包含多行文本。

# 1. 读取指定字符数
with open("example.txt", "r") as file:
    content = file.read(10)  # 读取前 10 个字符
    print("前 10 个字符:", content)

# 2. 逐行读取文件内容
with open("example.txt", "r") as file:
    line = file.readline()  # 读取第一行内容
    print("第一行内容:", line)

# 3. 读取文件的所有行,并返回一个列表
with open("example.txt", "r") as file:
    lines = file.readlines()  # 读取所有行
    print("所有行内容:", lines)
代码语言:javascript复制
# 逐行读取大文件示例
with open("large_file.txt", "r") as file:
    for line in file:
        process_line = line.strip()
        # 在此处理每一行数据
        print(process_line)

10. 综合实例

温度转换程序
代码语言:javascript复制
#TempConvert.py
TempStr = input("请输入带有符号的温度值: ")
if TempStr[-1] in ['F', 'f']:
    C = (eval(TempStr[0:-1]) - 32)/1.8
    print("转换后的温度是{:.2f}C".format(C))
elif TempStr[-1] in ['C', 'c']:
    F = 1.8*eval(TempStr[0:-1])   32
    print("转换后的温度是{:.2f}F".format(F))
else:
    print("输入格式错误")
基本统计值计算
代码语言:javascript复制
#CalStatisticsV1.py

def getNum():       #获取用户不定长度的输入

    nums = []
    iNumStr = input("请输入数字(回车退出): ")
    while iNumStr != "":
        nums.append(eval(iNumStr))
        iNumStr = input("请输入数字(回车退出): ")
    return nums

def mean(numbers):  #计算平均值

    s = 0.0
    for num in numbers:
        s = s   num
    return s / len(numbers)

def dev(numbers, mean): #计算方差

    sdev = 0.0
    for num in numbers:
        sdev = sdev   (num - mean)**2
    return pow(sdev / (len(numbers)-1), 0.5)

def median(numbers):    #计算中位数

    sorted(numbers)
    size = len(numbers)
    if size % 2 == 0:
        med = (numbers[size//2-1]   numbers[size//2])/2
    else:
        med = numbers[size//2]
    return med

n =  getNum() 
m =  mean(n)
print("平均值:{},方差:{:.2},中位数:{}.".format(m, dev(n,m),median(n))) 

11. 文件和数据处理

Python还提供了更高级的文件处理和数据处理方法,可以生成词云和其他可视化效果。

文件读取与处理
代码语言:javascript复制
# process data reading from a file.py
f = open("data.txt", "r")
sum = 0
n = 0
for line in f:
   ls = line.split()
   n = n   1
   sum = sum   float(ls[0])
print("{:.2f}".format(sum/n))
f.close()
文本去噪及词频统计
代码语言:javascript复制
#CalHamletV1.py
def getText():
    txt = open("hamlet.txt", "r").read()
    txt = txt.lower()
    for ch in '!"#$%&()* ,-./:;<=>?@[]^_‘{|}~':
        txt = txt.replace(ch, " ") 
    return txt

hamletTxt = getText()
words  = hamletTxt.split()
counts = {} # dictionary
for word in words:
    counts[word] = counts.get(word,0)   1
items = list(counts.items())
items.sort(key=lambda x: x[1], reverse=True) 
for i in range(10):
    word, count = items[i]
    print("{0:<10}{1:>5}".format(word, count))

总结

本篇博客基本介绍了Python的核心语法,包括数字和字符串操作、控制结构、函数定义与递归、集合操作、序列操作、字典操作、文件操作以及综合实例。通过这些知识,你可以进一步深入学习Python,并将其应用于各种编程场景中。希望这篇文章能帮助你更好地掌握Python,开启你的Python编程之旅!

以上就是关于【Python篇】快速理解Python语法:全面指南介绍的内容啦,各位大佬有什么问题欢迎在评论区指正,您的支持是我创作的最大动力!❤️

1 人点赞