No.35 笔记 | Python学习之旅:基础语法与实践作业总结
今天开启了Python的学习征程,收获颇丰,不仅深入了解了Python的基础语法,还完成了一系列实操作业,对知识有了更扎实的掌握。现在就来总结一下今日所学。
一、Python基础语法重点
(一)输入输出函数
print
函数:用于将内容输出到控制台或文件。可以输出数字、字符串、含有运算符的表达式等。输出目的地通常是显示器,也能输出到文件,例如:
# 输出到显示器
print(666)
print('csb666')
print(3 + 1)
# 输出到文件
csb = open('D:/1.txt', 'a+')
print('csb666', file=csb)
csb.close()
输出形式有换行和不换行两种,向输出含有变量的字符串时,需要使用格式化输出,主要有format
方法、f - strings
(Python 3.6+)和旧式格式化字符串(百分号%)三种方式:
# format方法
name = "Alice"
age = 30
print("my name is {} and I am {} years old.".format(name, age))
# f - strings
name = "Bob"
age = 25
print(f"My name is {name} and I am {age} years old.")
# 旧式格式化字符串
name = "Charlie"
age = 40
print("My name is %s and I am %d years old." % (name, age))
input
函数:用于获取用户输入,用户输入的数据以字符串形式返回。若想获取特定格式的数值,需要进行类型转换,例如:
number = input("please input first number:")
print(number, type(number))
(二)代码缩进
Python中代码缩进用于表示代码块,缩进规则很重要:使用相同数量的空格作为缩进级别,不要混合使用空格和制表符;每个代码块的缩进级别要一致;嵌套的代码块缩进级别更深,通常使用4个空格作为一个缩进级别。
(三)语言结构
- 顺序结构:程序按自上而下的顺序依次执行,是最基本的结构。例如:
number1 = input("请输入第一个数字:")
number2 = input("请输入第二个数字:")
number3 = float(number1) + float(number2)
print("他们之间的和是:%.2f(结果取小数点后两位)" % number3)
- 分支结构:根据条件不同执行不同的操作,主要通过
if
、elif
和else
实现,还可以使用条件表达式(三元表达式)。例如:
# 简单if - else结构
number1 = int(input("请输入一个数字:"))
if number1 > 0:
number2 = number1
print("{}的绝对值是{}".format(number1, number2))
else:
number2 = -number1
print("{}的绝对值是{}".format(number1, number2))
# 多分支elif结构
score = 85
if score >= 90:
print("优秀")
elif score >= 80:
print("良好")
elif score >= 70:
print("中等")
elif score >= 60:
print("及格")
else:
print("不及格")
- 循环结构:重复执行一组指令,分为
for
循环和while
循环。for
循环:用于迭代遍历序列、集合等可迭代对象中的元素。例如:
mingzi = ['张三', '李四', '王五', '赵六']
for a in mingzi:
print(a)
- **`while`循环**:在条件为真时重复执行语句块。例如:
a = 0
while a < 10:
print(a)
a += 1
- **区别**:`for`循环适用于遍历已知长度的序列,自动处理索引和迭代步长,更简洁易读,适用于已知循环次数的情况;`while`循环根据条件迭代,需要手动控制循环变量和退出条件,更灵活,适用于不确定循环次数的情况。
- 循环控制语句:
continue
:跳过此次循环的剩余操作,继续下一次循环。例如:
mingzi = ['张三', '李四', '王五', '赵六']
for a in mingzi:
if '王' in a:
continue
print(a)
- **`break`**:终止整个循环。例如:
mingzi = ['张三', '李四', '王五', '赵六']
for a in mingzi:
if a == '王五':
break
print(a)
- **`else`**:在`for`循环正常结束(没有被`break`终止)时执行。例如:
names = ['张三', '李四', '王五', '赵六']
for name in names:
if name == '王五':
print("遇到王五,停止处理!")
break
print(name)
else:
print("所有同学已正常处理完毕!")
(四)推导式
- 列表推导式:语法为
列表=[存放到列表的最终元素 for 循环时的元素 in 循环的范围 if 判断的条件]
。例如:
List1 = [a**2 for a in range(10) if a**2 < 30 and a**2 > 10]
print(List1)
- 集合推导式:与列表推导式类似,使用
{}
,语法为列表={存放到集合的最终元素 for 循环时的元素 in 循环的范围 if 判断的条件}
。 - 字典推导式:语法为
列表={最终键:最终值 for 循环时的元素 in 循环的范围 if 判断的条件}
。
二、实操作业详解
(一)作业1:删除列表中所有值为cat
的元素
解题思路是遍历列表副本,避免在删除元素时影响原列表的遍历顺序,也可以使用列表推导式创建新列表。代码实现如下:
pets = ['dog', 'cat', 'dog', 'goldfish', 'cat', 'rabbit', 'cat']
# 遍历列表副本进行删除
pets_copy = pets.copy()
for pet in pets_copy:
if pet == 'cat':
pets.remove(pet)
print(pets)
# 使用列表推导式创建新列表
new_pets = [pet for pet in pets if pet != 'cat']
print(new_pets)
(二)作业2:依次弹出列表的最后一个元素
Python列表的pop()
方法可以删除并返回列表的最后一个元素。通过循环不断调用该方法,直到列表为空,就能依次弹出所有元素。代码如下:
pets = ['dog', 'cat', 'dog', 'goldfish', 'cat', 'rabbit', 'cat']
while pets:
popped_pet = pets.pop()
print(popped_pet)
(三)作业3:依次删除字符串的第一个字符并输出字符串
由于字符串是不可变对象,不能直接删除字符,但可以通过切片操作,每次获取从第二个字符开始的子串来实现。代码如下:
x ='spam'
while x:
print(x)
x = x[1:]
(四)课堂练习1:找出10 - 30之间的质数
质数是除了1和它自身外,不能被其他自然数整除的数。遍历10到30之间的每个数,用2到它本身减1之间的数去试除,如果都不能整除,这个数就是质数。代码如下:
for num in range(10, 31):
is_prime = True
for i in range(2, num):
if num % i == 0:
is_prime = False
break
if is_prime and num > 1:
print(num)
(五)课堂练习2:只打印0 - 50之间的奇数
奇数不能被2整除。可以遍历0到50之间的数,判断除以2的余数是否为1;也可以利用range()
函数的步长特性,从1开始,步长设为2来直接遍历奇数。代码如下:
# 方法一:判断余数
for i in range(51):
if i % 2 == 1:
print(i)
# 方法二:利用range步长
for i in range(1, 51, 2):
print(i)
今天学习的Python基础语法和完成的实操作业是Python编程的重要基石。通过不断练习这些基础内容,我们能逐渐熟悉Python的编程思维,为后续更深入的学习打下坚实的基础。希望大家和我一样,在Python的学习道路上不断进步,享受编程的乐趣!