详细介绍:Python基础_01
一、输入与输出
1. 输出函数:print ()
用于在控制台打印内容,支持输出单个或多个值,多个值之间用逗号分隔,默认以空格分隔并换行。
输出单个值
print("Hello, Python!") # 结果:Hello, Python!
输出多个值
print("姓名", "年龄", "性别") # 结果:姓名 年龄 性别
自定义分隔符(sep)和结束符(end)
print("a", "b", "c", sep="-", end="!!!") # 结果:a-b-c!!!
2. 输入函数:input ()
用于接收用户从控制台输入的内容,默认将输入内容转换为字符串类型,若需其他类型需手动转换。
基础输入
name = input("请输入你的姓名:")
print("你的姓名是:", name) # 输入“张三”,结果:你的姓名是:张三
带类型转换的输入(如转换为整数)
age = int(input("请输入你的年龄:"))
print("明年你将满", age + 1, "岁")
# 输入“20”,结果:明年你将满 21 岁
二、数据类型转换
Python 中常见数据类型包括字符串(str)、整数(int)、浮点数(float)、布尔值(bool),可通过特定函数实现类型转换。
| 转换函数 | 功能描述 | 示例 | 结果 |
|---|---|---|---|
int(x) | 将 x 转换为整数,x 需为数字或可解析的字符串 | int("25")、int(3.8) | 25、3 |
float(x) | 将 x 转换为浮点数 | float("3.14")、float(5) | 3.14、5.0 |
str(x) | 将 x 转换为字符串 | str(123)、str(True) | “123”、“True” |
bool(x) | 将 x 转换为布尔值,0、空值为 False,其余为 True | bool(0)、bool("abc") | False、True |
▲ 示例:不同类型转换
num_str = "100"
num_int = int(num_str)
num_float = float(num_int)
print(type(num_str), type(num_int), type(num_float))
# 结果:<class 'str'> <class 'int'> <class 'float'>
三、字符串格式化输出
用于将变量嵌入字符串中,实现动态内容展示,常见方式有%格式化、f 字符串、str.format()。
1. % 格式化输出
通过%搭配格式符(如%s字符串、%d整数、%f浮点数)指定变量类型,多个变量需用元组包裹。
name = "李四"
age = 22
score = 95.5
(1) 单个变量
print("姓名:%s" % name) # 结果:姓名:李四
(2)多个变量(元组)
print("姓名:%s,年龄:%d,成绩:%f" % (name, age, score))
# 结果:姓名:李四,年龄:22,成绩:95.500000
(3)控制浮点数小数位数(%.2f表示保留2位小数)
print("成绩:%.2f" % score) # 结果:成绩:95.50
2. f 字符串(Python 3.6+)
在字符串前加f或F,变量用{}包裹,语法简洁且支持表达式计算,是最常用的格式化方式。
name = "王五"
age = 21
height = 1.75
(1)基础使用
print(f"我叫{name},今年{age}岁") # 结果:我叫王五,今年21岁
(2)支持表达式
print(f"明年我{age + 1}岁,身高米数的平方是{height ** 2:.2f}")
# 结果:明年我22岁,身高米数的平方是3.06
# 注:{height ** 2:.2f}中,**表示幂运算,:.2f控制保留2位小数
3. str.format()
通过字符串的format()方法,用{}作为占位符,可指定位置或关键字匹配变量,兼容性强(支持 Python 2.x)。
(1)按位置匹配(默认顺序,或指定索引)
print("{} {} {}".format("苹果", "香蕉", "橙子")) # 结果:苹果 香蕉 橙子
print("{1} {0} {2}".format("苹果", "香蕉", "橙子")) # 结果:香蕉 苹果 橙子
(2)按关键字匹配
print("姓名:{name},年龄:{age}".format(name="赵六", age=23))
# 结果:姓名:赵六,年龄:23
四、流程控制语句
1. 条件判断语句
(1)if 语句(单条件)
满足条件则执行缩进内的代码块,不满足则跳过。
score = 85
if score >= 60:
print("成绩合格,顺利通过!") # 结果:成绩合格,顺利通过!
(2)if-else 语句(双条件)
满足条件执行if块,不满足执行else块,二者必执行其一。
score = 55
if score >= 60:
print("成绩合格")
else:
print("成绩不合格,需补考") # 结果:成绩不合格,需补考
(3)if-elif-else 语句(多条件)
依次判断多个条件,满足第一个条件则执行对应块,后续条件不再判断;所有条件都不满足则执行else块。
score = 88
if score >= 90:
print("优秀")
elif score >= 80:
print("良好") # 结果:良好
elif score >= 60:
print("合格")
else:
print("不合格")
2. 循环语句
(1)while 循环
满足条件时重复执行代码块,需注意避免 “死循环”(需在循环内修改条件变量)。
▲ 示例1:打印1-5
num = 1
while num <= 5:
print(num) # 依次输出1、2、3、4、5
num += 1 # 变量自增,避免死循环
▲ 示例2:死循环(需谨慎,可按Ctrl+C终止)
while True:
print("无限循环")
(2)for 循环
用于遍历可迭代对象(如字符串、列表、元组),或通过range()生成的数字序列。
① 遍历字符串
text = "Python"
for char in text:
print(char) # 依次输出P、y、t、h、o、n
② 遍历列表
fruits = ["苹果", "香蕉", "橙子"]
for fruit in fruits:
print("我喜欢吃", fruit) # 依次输出对应水果
(3)for-range 循环
range() 生成整数序列,语法:range(起始值, 结束值, 步长),结束值不包含在内,默认起始值为 0、步长为 1。
① 示例1:range(5) → 0-4
for i in range(5):
print(i) # 输出0、1、2、3、4
② 示例2:range(2, 8) → 2-7
for i in range(2, 8):
print(i) # 输出2、3、4、5、6、7
③ 示例3:range(1, 10, 2) → 1、3、5、7、9(步长为2,即每次加2)
for i in range(1, 10, 2):
print(i)
(4)break 与 continue
break:立即终止当前循环,跳出循环体,执行循环后的代码。
continue:跳过当前循环的剩余代码,直接进入下一次循环。
① break示例:找到数字5后终止循环
for i in range(10):
if i == 5:
break
print(i) # 输出0、1、2、3、4
② continue示例:跳过偶数,只打印奇数
for i in range(10):
if i % 2 == 0:
continue
print(i) # 输出1、3、5、7、9
五、字符串操作
字符串是 Python 中不可变序列(不能直接修改单个字符),支持下标、切片、查找、替换等操作。
1. 字符串下标(索引)
用于获取单个字符,下标从0 开始(正向索引),也可从 - 1 开始(反向索引,-1 表示最后一个字符)。
text = "Hello, World!"
(1)正向索引:0→H,1→e,2→l,…,11→!
print(text[0]) # 结果:H
print(text[4]) # 结果:o(第5个字符)
(2)反向索引:-1→!,-2→d,…,-12→H
print(text[-1]) # 结果:!
print(text[-6]) # 结果:W(从后数第6个字符)
2. 字符串切片
用于获取字符串的子串,语法:字符串[起始下标:结束下标:步长],结束下标不包含在内,默认步长为 1。
text = "Hello, World!"
(1)示例1:获取从下标2到5的子串(不包含5)
print(text[2:5]) # 结果:llo
(2)示例2:省略起始下标(默认从0开始)
print(text[:5]) # 结果:Hello
(3)示例3:省略结束下标(默认到字符串末尾)
print(text[7:]) # 结果:World!
(4)示例4:步长为2(隔一个字符取一个)
print(text[::2]) # 结果:Hlo ol!
(5)示例5:反向切片(步长为-1,实现字符串反转)
print(text[::-1]) # 结果:!dlroW ,olleH
3. 字符串查找方法
find(sub):从左向右查找子串sub,返回第一次出现的下标;未找到返回-1。rfind(sub):从右向左查找子串sub,返回第一次出现的下标;未找到返回-1。index(sub):与find()类似,但未找到子串时会抛出ValueError。
text = "Python is a powerful language, Python is easy to learn."
find()
print(text.find("Python")) # 结果:0(第一个Python的起始下标)
print(text.find("Java")) # 结果:-1(未找到)
rfind()
print(text.rfind("Python")) # 结果:28(最后一个Python的起始下标)
index()
print(text.index("powerful")) # 结果:10
print(text.index("Java"))
# 报错:ValueError: substring not found
4. 字符串替换方法:replace (old, new, count)
将字符串中的old子串替换为new子串,count(可选)指定替换次数,默认替换所有。
text = "I like apple, apple is delicious."
(1)替换所有apple为banana
print(text.replace("apple", "banana"))
# 结果:I like banana, banana is delicious.
(2)只替换第一个apple
print(text.replace("apple", "banana", 1))
# 结果:I like banana, apple is delicious.
5. 字符串拆分方法:split (sep, maxsplit)
按指定分隔符sep(默认空格)拆分字符串,返回列表;maxsplit(可选)指定最大拆分次数。
text1 = "Python Java C++ JavaScript"
text2 = "name:张三,age:20,city:北京"
(1)默认按空格拆分
print(text1.split())
# 结果:['Python', 'Java', 'C++', 'JavaScript']
(2)按指定字符拆分
print(text2.split(","))
# 结果:['name:张三', 'age:20', 'city:北京']
(3)按指定字符拆分,且只拆分1次
print(text2.split(",", 1))
# 结果:['name:张三', 'age:20,city:北京']
6. 字符串连接方法:join (iterable)
将可迭代对象(如列表、元组)中的字符串元素,用当前字符串连接成一个新字符串。
(1)用"-"连接列表中的元素
fruits = ["苹果", "香蕉", "橙子"]
print("-".join(fruits)) # 结果:苹果-香蕉-橙子
(2)用空字符串连接(实现列表转字符串)
chars = ["P", "y", "t", "h", "o", "n"]
print("".join(chars)) # 结果:Python
7. 字符串其他常用方法
| 方法 | 功能描述 | 示例 | 结果 |
|---|---|---|---|
upper() | 转换为大写字母 | "python".upper() | "PYTHON" |
lower() | 转换为小写字母 | "PYTHON".lower() | "python" |
strip() | 去除字符串两端的空白字符(空格、换行等) | " hello \n".strip() | "hello" |
startswith(prefix) | 判断是否以指定前缀开头,返回布尔值 | "Python".startswith("Py") | True |
endswith(suffix) | 判断是否以指定后缀结尾,返回布尔值 | "Python".endswith("on") | True |
isdigit() | 判断字符串是否全为数字,返回布尔值 | "123".isdigit()、"12a".isdigit() | True、False |
示例:
text = " Hello, Python! "
print(text.strip().upper()) # 结果:HELLO, PYTHON!
print(text.strip().endswith("!")) # 结果:True
浙公网安备 33010602011771号