Python基础全解:语法、类型转换与输入输出

125 阅读13分钟

引言:Python语言的魅力与应用领域

Python简介

Python是一种广泛使用的高级编程语言,以其清晰的语法和代码可读性而闻名。它支持多种编程范式,包括面向对象、命令式、函数式和过程式编程。

Python的主要应用领域

Python因其简单性、易读性和强大的库支持,在多个领域都有广泛的应用,包括但不限于:

  • Web开发:使用框架如Django和Flask快速开发网站。
  • 数据科学:进行数据分析和数据可视化。
  • 人工智能:开发机器学习和深度学习模型。
  • 自动化脚本:编写自动化任务和脚本。
  • 教育:作为编程入门语言。

Python的特点

  • 简洁性:Python代码通常更简洁,易于编写和理解。
  • 可读性:Python的语法清晰,接近自然语言。
  • 跨平台:Python程序可以在多种操作系统上运行。

示例代码

以下是一个简单的Python程序,输出“Hello, World!”:

print("Hello, World!")

这个程序展示了Python的基本语法和输出机制。

Python环境搭建与基础语法

安装Python环境

要开始Python编程之旅,首先需要在你的计算机上安装Python环境。你可以从Python官网下载合适的安装包。

安装步骤简述:

  1. 访问Python官网并选择适合你操作系统的安装包。
  2. 下载并启动安装程序。
  3. 在安装窗口中,确保勾选了“Add Python to PATH”(将Python添加到PATH)。
  4. 完成安装。

编写并运行第一个Python程序

一旦安装完成,你可以使用任何文本编辑器编写Python代码,并使用命令行运行它。

创建Python脚本

打开文本编辑器,输入以下代码:

# 文件名:hello_world.py
print("Hello, World!")

运行Python脚本

打开命令行工具,导航到脚本所在的目录,并运行以下命令:

python hello_world.py

你将看到命令行输出:Hello, World!

Python基础语法

Python的基础语法包括变量声明、数据类型、运算符等。

变量声明和基本数据类型

# 变量声明
message = "Hello, Python!"
number = 10
pi = 3.14159

# 数据类型
print(type(message))  # 输出: <class 'str'>
print(type(number))    # 输出: <class 'int'>
print(type(pi))       # 输出: <class 'float'>

运算符使用

# 算术运算符
sum = 10 + 5
difference = 10 - 3
product = 4 * 7
quotient = 20 / 4

# 打印结果
print("Sum:", sum)
print("Difference:", difference)
print("Product:", product)
print("Quotient:", quotient)

Python编码规范

Python社区推荐使用PEP 8编码规范来保持代码的一致性和可读性。

PEP 8编码规范简述:

  • 使用4个空格进行缩进。
  • 限制每行代码的最大字符数不超过79个。
  • 在二元运算符的两侧使用空格。

示例代码

以下是Python基础语法的示例:

# 变量声明
name = "Pythonista"
age = 25

# 输出变量
print("My name is", name, "and I am", age, "years old.")

# 列表创建
fruits = ["apple", "banana", "cherry"]
print("Fruits:", fruits)

# 字典创建
person = {"name": "Alice", "age": 30}
print("Person:", person)

Python数据类型概述

基本数据类型

Python中的基本数据类型包括整数(int)、浮点数(float)、字符串(str)和布尔值(bool)。

基本数据类型示例

# 整数
age = 25

# 浮点数
price = 19.99

# 字符串
greeting = "Hello, Python!"

# 布尔值
is_valid = True

复合数据类型

Python中的复合数据类型包括列表(list)、元组(tuple)、字典(dict)和集合(set)。

复合数据类型示例

# 列表
fruits = ["apple", "banana", "cherry"]

# 元组(不可变序列)
coordinates = (10.0, 20.0)

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

# 集合
unique_fruits = {"apple", "banana", "cherry"}

数据类型的不可变性

在Python中,有些数据类型是不可变的,如元组和字典,而有些是可变的,如列表和集合。

不可变数据类型示例

# 尝试修改元组将引发错误
point = (10, 20)
# point[0] = 15  # 这将引发TypeError

可变数据类型示例

# 修改列表
shopping_list = ["milk", "bread", "eggs"]
shopping_list.append("butter")
print(shopping_list)  # ["milk", "bread", "eggs", "butter"]

内存视图和切片操作

Python允许通过内存视图来操作数据类型,特别是对于序列类型。

内存视图和切片示例

# 字符串切片
text = "Python"
print(text[0:2])  # "Py"

# 列表切片
numbers = [1, 2, 3, 4, 5]
print(numbers[1:4])  # [2, 3, 4]

序列相加和重复操作

Python允许你将序列相加或重复。

序列相加和重复示例

# 字符串相加和重复
print("Hello " * 3)  # "Hello Hello Hello "

# 列表相加
fruits1 = ["apple", "banana"]
fruits2 = ["cherry", "date"]
print(fruits1 + fruits2)  # ["apple", "banana", "cherry", "date"]

示例代码

以下是Python数据类型的综合示例:

# 基本数据类型
name = "Alice"
age = 30
height = 165.5

# 复合数据类型
person_info = {
    "name": name,
    "age": age,
    "height": height
}

# 访问字典中的值
print(person_info["name"])  # Alice

# 修改字典中的值
person_info["age"] = 31
print(person_info["age"])  # 31

基本数据类型转换

整数与浮点数转换

在Python中,可以使用内置函数int()float()在整数和浮点数之间进行转换。

整数与浮点数转换示例

# 浮点数转换为整数
number = 3.14
print(int(number))  # 输出: 3

# 整数转换为浮点数
number = 7
print(float(number))  # 输出: 7.0

字符串与其他类型转换

可以使用str()将任意数据类型转换为字符串,也可以使用int()float()将字符串转换为整数或浮点数,前提是字符串内容能够被正确解析。

字符串与其他类型转换示例

# 其他类型转换为字符串
name = "Alice"
age = 30
print(str(name))  # 输出: "Alice"
print(str(age))  # 输出: "30"

# 字符串转换为整数
number_str = "42"
print(int(number_str))  # 输出: 42

# 字符串转换为浮点数
price_str = "19.99"
print(float(price_str))  # 输出: 19.99

布尔值转换

可以使用bool()函数将值转换为布尔类型,它根据Python的真值和假值规则进行转换。

布尔值转换示例

# 转换为布尔值
print(bool(0))    # 输出: False
print(bool(1))    # 输出: True
print(bool([]))   # 输出: False
print(bool([1]))  # 输出: True

格式化字符串

Python提供了多种字符串格式化的方法,如使用%操作符、format()方法或f-string(Python 3.6+)。

格式化字符串示例

# 使用%操作符
name = "Bob"
age = 25
print("Name: %s, Age: %d" % (name, age))

# 使用format()方法
print("Name: {}, Age: {}".format(name, age))

# 使用f-string
print(f"Name: {name}, Age: {age}")

异常处理

在进行类型转换时,如果转换不成功,如字符串不能转换为整数,将引发ValueError

异常处理示例

# 正确的转换
print(int("123"))  # 输出: 123

# 错误的转换,将引发ValueError
print(int("abc"))

示例代码

以下是数据类型转换的综合示例:

# 整数转换为浮点数
num = 10
print(float(num))  # 10.0

# 字符串转换为整数
str_num = "2023"
print(int(str_num))  # 2023

# 格式化字符串输出
message = "Welcome to the year %d" % 2023
print(message)  # "Welcome to the year 2023"

# 使用f-string
welcome_message = f"Welcome to the year {2023}"
print(welcome_message)  # "Welcome to the year 2023"

基础输入输出操作

使用input()函数获取用户输入

Python的input()函数允许程序接收用户的输入。用户输入的内容将作为字符串返回。

input()函数示例

# 获取用户输入
user_input = input("Please enter something: ")
print("You entered:", user_input)

使用print()函数输出结果

print()函数用于向控制台输出文本或对象的字符串表示。

print()函数示例

# 基础打印
print("Hello, Python!")

# 打印变量
name = "Alice"
print("My name is", name)

# 打印多个变量,逗号分隔
age = 30
print("I am", age, "years old.")

格式化输出

Python支持多种格式化输出的方法,包括使用百分号(%)格式化、str.format()方法,以及f-string(格式化字符串字面量)。

使用百分号格式化

# 使用百分号格式化
print("Name: %s, Age: %d" % ("Alice", 30))

使用str.format()方法

# 使用str.format()方法
print("Name: {}, Age: {}".format("Alice", 30))

使用f-string格式化

# 使用f-string格式化
print(f"Name: {name}, Age: {age}")

控制打印格式

Python允许你控制打印的格式,例如设置小数点的精度、对齐方式等。

控制打印格式示例

# 格式化打印,设置小数点精度
pi = 3.1415926
print(f"Pi value: {pi:.2f}")

# 对齐输出
print("Left aligned:".ljust(20))
print("Right aligned:".rjust(20))

示例代码

以下是输入输出操作的综合示例:

# 获取用户输入并打印
user_name = input("Enter your name: ")
print(f"Hello, {user_name}!")

# 打印格式化信息
greeting = "Welcome to the Python world!"
print(greeting)

# 使用f-string输出
print(f"{user_name}, it's great to have you here.")

字符串操作与格式化

字符串的基本操作

字符串是Python中的一个重要的数据类型,提供了丰富的操作方法。

字符串切片

s = "Hello, Python!"
print(s[0:5])  # 输出: "Hello"

字符串拼接

greeting = "Hello"
name = "Python"
message = greeting + ", " + name + "!"
print(message)  # 输出: "Hello, Python!"

字符串格式化方法

Python提供了多种字符串格式化的方法,包括使用%操作符、str.format()方法,以及f-string。

使用%操作符格式化字符串

name = "World"
greeting = "Hello, %s!" % name
print(greeting)  # 输出: "Hello, World!"

使用str.format()方法格式化字符串

age = 30
info = "I am {} years old.".format(age)
print(info)  # 输出: "I am 30 years old."

使用f-string格式化字符串

name = "Alice"
greeting = f"Hello, {name}!"
print(greeting)  # 输出: "Hello, Alice!"

字符串方法

字符串对象提供了许多有用的方法,如upper(), lower(), strip(), replace()等。

字符串方法示例

text = " Hello, Python! "
print(text.upper())  # " HELLO, PYTHON!"
print(text.lower())  # " hello, python!"
print(text.strip())  # "Hello, Python!"
print(text.replace("Python", "Java"))  # " Hello, Java!"

字符串编码

在处理文本数据时,经常需要进行编码和解码操作。

字符串编码示例

# 字符串编码为字节
encoded = "Hello, Python!".encode('utf-8')
print(encoded)  # b'Hello, Python!'

# 字节解码为字符串
decoded = encoded.decode('utf-8')
print(decoded)  # "Hello, Python!"

示例代码

以下是字符串操作与格式化的综合示例:

# 字符串拼接
full_name = "Alice" + " " + "Johnson"
print(full_name)  # "Alice Johnson"

# 使用f-string
welcome_message = f"Welcome, {full_name}!"
print(welcome_message)  # "Welcome, Alice Johnson!"

# 字符串方法
greeting = "hello"
print(greeting.upper())  # "HELLO"
print(greeting.lower())  # "hello"

# 字符串编码和解码
original_text = "你好,世界"
encoded_text = original_text.encode('utf-8')
print(encoded_text)  # b'\xe4\xbd\xa0\xe5\xa5\xbd\xef\xbc\x8c\xe4\xb8\x96\xe7\x95\x8c'

decoded_text = encoded_text.decode('utf-8')
print(decoded_text)  # "你好,世界"

列表与元组

列表(List)的创建与操作

列表是Python中一种可变的序列类型,可以存储不同类型的元素。

列表的创建

# 创建列表
fruits = ["apple", "banana", "cherry"]
numbers = [1, 2, 3, 4, 5]

列表的基本操作

# 添加元素
fruits.append("orange")

# 访问元素
first_fruit = fruits[0]
last_fruit = fruits[-1]

# 修改元素
fruits[1] = "blueberry"

# 删除元素
del fruits[2]
popped_fruit = fruits.pop()

# 获取列表长度
length = len(fruits)

元组(Tuple)的特点与操作

元组是Python中一种不可变的序列类型,一旦创建就不能被修改。

元组的创建

# 创建元组
coordinates = (10.0, 20.0)
colors = ("red", "green", "blue")

元组的基本操作

# 访问元组中的元素
primary_color = colors[0]

# 元组是不可变的,以下操作会引发TypeError
# colors[1] = "yellow"

列表推导式

列表推导式是Python中创建列表的一种简洁方式。

列表推导式示例

# 使用列表推导式生成平方数列表
squares = [x**2 for x in range(6)]
print(squares)  # [0, 1, 4, 9, 16, 25]

# 使用条件语句的列表推导式
even_numbers = [x for x in range(10) if x % 2 == 0]
print(even_numbers)  # [0, 2, 4, 6, 8]

元组推导式

元组推导式与列表推导式类似,但生成的是元组。

元组推导式示例

# 使用元组推导式
coordinates = ((x, y) for x in range(4) for y in range(4))
print(list(coordinates))  # [(0, 0), (0, 1), ..., (3, 3)]

示例代码

以下是列表和元组操作的综合示例:

# 列表操作
my_list = [1, 2, 3]
my_list.extend([4, 5, 6])
print(my_list)  # [1, 2, 3, 4, 5, 6]

# 元组操作
my_tuple = (1, 2, 3)
print(my_tuple * 2)  # (1, 2, 3, 1, 2, 3)

# 列表推导式
squares = [x**2 for x in range(5)]
print(squares)  # [0, 1, 4, 9, 16]

# 元组推导式
matrix = ((i, j) for i in range(2) for j in range(3))
print(list(matrix))  # [(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2)]

字典与集合

字典(Dictionary)的创建与操作

字典是Python中一种可变的映射类型,以键值对的形式存储数据。

字典的创建

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

字典的基本操作

# 添加或修改键值对
person["gender"] = "female"

# 访问键对应的值
name = person["name"]

# 删除键值对
del person["age"]

# 获取字典中的所有键
keys = person.keys()

# 获取字典中的所有值
values = person.values()

# 获取字典中的所有键值对
items = person.items()

集合(Set)的创建与操作

集合是Python中一种无序且元素唯一的数据结构。

集合的创建

# 创建集合
fruits = {"apple", "banana", "cherry"}

集合的基本操作

# 添加元素
fruits.add("orange")

# 移除元素
fruits.remove("banana")

# 集合运算
unique_fruits = fruits.union({ "kiwi", "mango" })
intersection_fruits = fruits.intersection({ "apple", "orange" })
difference_fruits = fruits.difference({ "banana", "kiwi" })

字典推导式

字典推导式是Python中创建字典的一种简洁方式。

字典推导式示例

# 使用字典推导式
squares_dict = {x: x**2 for x in range(6)}
print(squares_dict)  # {0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25}

集合推导式

集合推导式与列表推导式类似,但生成的是集合。

集合推导式示例

# 使用集合推导式
unique_numbers = {x for x in range(10) if x % 2 == 0}
print(unique_numbers)  # {0, 2, 4, 6, 8}

示例代码

以下是字典和集合操作的综合示例:

# 字典操作
person_info = {"name": "Bob", "age": 25}
person_info["occupation"] = "Developer"
print(person_info)  # {"name": "Bob", "age": 25, "occupation": "Developer"}

# 集合操作
favorite_fruits = {"apple", "banana", "cherry"}
favorite_fruits.add("mango")
print(favorite_fruits)  # {"apple", "banana", "cherry", "mango"}

# 字典推导式
square_numbers = {i: i**2 for i in range(1, 6)}
print(square_numbers)  # {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}

# 集合推导式
even_numbers_set = {num for num in range(20) if num % 2 == 0}
print(even_numbers_set)  # {0, 2, 4, 6, ..., 18}

控制流语句

条件语句(if-elif-else)

在Python中,if-elif-else语句用于基于条件执行不同的代码块。

条件语句示例

# 简单的if-else语句
age = 18
if age >= 18:
    print("You are an adult.")
elif age >= 13:
    print("You are a teenager.")
else:
    print("You are a child.")

# 嵌套的if-else语句
if age >= 18:
    print("You can vote.")
    if age >= 21:
        print("You can buy alcohol.")
else:
    print("You cannot vote.")

循环语句(for, while)

循环语句允许你重复执行一段代码直到满足特定条件。

for循环示例

# 基本for循环
for i in range(5):
    print(i)

# for循环遍历列表
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
    print(fruit)

# for循环遍历字典
person = {"name": "Alice", "age": 30}
for key, value in person.items():
    print(f"{key}: {value}")

while循环示例

# 基本while循环
count = 1
while count <= 5:
    print(count)
    count += 1

循环控制语句

Python提供了breakcontinue语句来控制循环的流程。

break语句示例

for num in range(1, 10):
    if num % 5 == 0:
        print("Five found, breaking loop.")
        break
    print(num)

continue语句示例

for num in range(1, 10):
    if num % 3 == 0:
        continue
    if num % 5 == 0:
        print(f"{num} is a multiple of 5, but not 3.")

示例代码

以下是控制流语句的综合示例:

# 条件语句
status = "active"
if status == "active":
    print("Welcome back!")
elif status == "inactive":
    print("Please activate your account.")
else:
    print("Invalid status.")

# for循环
for i in [1, 2, 3, 4, 5]:
    print(i)

# while循环
count = 0
while count < 3:
    print(count)
    count += 1

# 循环控制语句
for char in "hello":
    if char == 'l':
        continue
    print(char)