本文是刚学习Python的笔记,当时使用的编辑器是交互式编程,所以很多代码可能在你们的编译器上面不能运行,我用快引用引起来了,还需要大家自己动手试一试。
内容涉及的比较简单,主要还是Python的语法部分:三元运算条件表达式、嵌套查询、for循环、列表和切片以及相关的函数(这方便还是蛮重要的),当然后续还会更新,蟹蟹٩('ω')大家支持,更多内容,敬请期待!。
有点小用的话,点赞收藏+关注吧!!!
目录
一、三元运算条件表达式、‘format’
例01 if 条件表达式 score
例02 计算三角形的面积:
二、单分支结构,多分支结构:
if条件语句:注释了哈
例03 单分支结构:输入两个数,比较两者大小,使得a大于b
例04 多分支结构:已知坐标点,判断其所在的象限
三、嵌套查询
例05 嵌套查询:九九乘法表
1.下三角型
2.矩形阵
3.上三角型
4.倒三角型
四、for 循环语句:
例06 range(以下是三个代码)参数分别表示(开始,结束[不包含],步长)
例07 找出10以内的素数:
五、列表,切片(实例)
例08 rhyme列表举例
六、列表:函数的使用(extend(),append(),insert(),remove(),pop(),)
例09 extend()的参数必须是一个可迭代对象,新的内容是追加到原列表最后一个元素的后面;
七、列表的乘法和加法:(//:向下取整)
例10 列表的加法是列表的元素组合,乘法是指列表元素出现的次数
例11 创建嵌套列表:
例12 访问嵌套列表:(要使用嵌套循环)
例13 同样,使用下标索引的方式也可以访问嵌套列表:
例14 还可以通过循环语句来创建并初始化二维列表
八、嵌套列表中的浅拷贝 深拷贝
例15 对于嵌套列表,一维元素浅拷贝的copy方法不再适用
例16 题目:将一个列表中的元素变成两倍
1.利用for循环实现:
2.利用列表推导式:[expresssion for i in 列表序列]
九、字符串
例17
十、列表推导式
例18
例19 在【】里面的运算顺序是:1.for循环 2.if条件句 3.循环条件i
例20 找出首字母是F的单词:
例21 降维
例22 for 循环实现降维
例23 字符串的数乘
一、三元运算条件表达式、‘format’
例01 if 条件表达式 score
score = 88
level = ( 'D' if 0<=score<60 else
'C' if 60<=score<80 else
'B' if 80<=score<90 else
'A' if 90<=score<100 else
'S' if score == 100 else
"请输出0~100之间的分值^o^")
print(level)
例02 计算三角形的面积:
import math
a=float(input("请输入三角形的一边a:"))
b=float(input("请输入三角形的一边b:"))
c=float(input("请输入三角形的一边c:"))
h=(a+b+c)/2
area = math.sqrt(h*(h-a)*(h-b)*(h-c))
print(str.format("三角形的三边为:a = {0},b = {1},c = {2}",a,b,c))
print(str.format("三角形的面积为:area={0}",area))
二、单分支结构,多分支结构:
在Python中,多分支结构和单分支结构是条件语句(也称为选择语句)的两种形式,它们用于根据条件的结果执行不同的代码块。
if条件语句:注释了哈
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~3.12第二节
# if语句
# score = int(input('请输入你的分数:'))
# if score >= 60:
# # print('恭喜您测试通过,欢迎加入B站')
# #
# # else:
# # print('sorry~,还需要加油哦')
# # 三目运算
# # print('恭喜您测试通过,欢迎加入B站') if score >= 60 else print('sorry~,还需要加油哦')
#
# if-elif-else:
# score = float(input('请输入您打的分数:'))
# if score >= 80 and score <= 100:
# print('视频质量好,三连支持一下')
# elif score >= 50 and score < 50:
# print('视频质量还可以,点赞支持一下')
# else:
# print('切~,走了')_put = 0
# if age >= 18 and output == 1:
# print('满足条件,可以上网')
例03 单分支结构:输入两个数,比较两者大小,使得a大于b
a = int(input("请输入第一个数的值:"))
b = int(input("请输入第二个数的值:"))
print(str.format("输入值:{0},{1}",a,b))
if(a<b):
t = a
a = b
b = t
print(str.format("降序值:{0},{1}",a,b))
例04 多分支结构:已知坐标点,判断其所在的象限
x = int(input("请输入横坐标:"))
y = int(input("请输入纵坐标:"))
if(x == 0 and y == 0):print("为原点")
elif(x == 0):print("该点在y轴上")
elif(y == 0):print("该点在x轴上")
elif(x>0 and y>0):print("该点在第一象限")
elif(x<0 and y>0):print("该点在第二象限")
elif(x<0 and y<0):print("该点在第三象限")
elif(x>0 and y<0):print("该点在第四象限")
三、嵌套查询
例05 嵌套查询:九九乘法表
1.下三角型
i = 1
while i<=9:
j = 1
while j<=i:
print(j,"*",i,"=",j*i,end = " ")
j+=1
print()
i+=1
while i<=9:
j = 1
while j<=i:
print(j,"*",i,"=",j*i,end = " ")
j+=1
print()
i+=1
2.矩形阵
i = 1
while i<=9:
j = 1
while j<=9:
print(j,"*",i,"=",j*i,end = " ")
j+=1
print()
i+=1
3.上三角型
row = 9
while row >= 1:
col = row
n = 0
while n < 9 - row:
print(' ' * 9, end='')
n += 1
while col >=1:
print('{}*{}={:<5d}'.format(row, col, row * col),end='')
col -= 1
print('')
row -= 1
4.倒三角型
j = 1
while j<=9:
i = j
while i<=9:
print(j,"*",i,'=',j*i,end = ' ')
i+=1
print()
j+=1
四、for 循环语句:
例06 range(以下是三个代码)参数分别表示(开始,结束[不包含],步长)
sum = 0
for i in range(1000001):
sum += i
print(sum)
for i in range(0,11):
print(i)
for i in range(10,5,-2):
print(i)
例07 找出10以内的素数:
注意缩进问题,注意逗号问题
for n in range(2,11):
for x in range(2,n):
if n%x == 0:
print(n ,"=", x, "*", n // x) #//是整数除法(注意逗号)
break
else:
print(n,"是一个素数")
五、列表,切片(实例)
例08 rhyme列表举例
rhyme = [1,2,3,4,5,"上山打老虎"] print(rhyme) 输出: rhyme[0] 1 length =len(rhyme) rhyme[length - 1] 输出: '上山打老虎' rhyme[-1] 输出: '上山打老虎' rhyme[:] 输出: [1, 2, 3, 4, 5, '上山打老虎'] rhyme[3:6] 输出: [4, 5, '上山打老虎'] rhyme[2:] 输出: [3, 4, 5, '上山打老虎'] rhyme[0:6:2] 输出: [1, 3, 5] rhyme[::2] 输出: [1, 3, 5] rhyme[::-1] 输出: ['上山打老虎', 5, 4, 3, 2, 1] rhyme[::-2] ['上山打老虎', 4, 2]
六、列表:函数的使用(extend(),append(),insert(),remove(),pop(),)
例09 extend()的参数必须是一个可迭代对象,新的内容是追加到原列表最后一个元素的后面;
$$
在使用pop删除元素时,需要指定元素下标;在使用remove 时,需要指定元素的值。这里需要注意的是,即使出现多个匹配的元素,remove方法也只删除第一个。 此外,使用pop还可以取出(删除)元素,并将其作为返回值返回。而使用remove只能删除元素,并没有返回值。 如果要清空列表,可以使用clear方法。s
$$
heros = ["钢铁侠","绿巨人"]
heros.append("黑寡妇") #只能添加一个元素
heros.extend(["鹰眼","灭霸","雷神"]) #可以添加n个元素
print(heros)
s = [1,2,3,4,5]
s[len(s):] = [6]
print(s)
insert(n,m)函数:n表示下标,m表示插入的元素
s = [1,3,4,5]
s.insert(1,2)
s.insert(len(s),6)
print(s)
remove函数 当删除的元素是列表里没有时,程序会报错
heros.remove("灭霸")
print(heros)
heros.pop(2) #pop(n)该函数可以指定元素删除,其中n表示列表下标
print(heros)
七、列表的乘法和加法:(//:向下取整)
例10 列表的加法是列表的元素组合,乘法是指列表元素出现的次数
s = [1,2,3] t = [4,5,6] s+t [1, 2, 3, 4, 5, 6] s*3 [1, 2, 3, 1, 2, 3, 1, 2, 3]
例11 创建嵌套列表:
matrix = [[1,2,3],[4,5,6],[7,8,9]] 或matrix = [[1,2,3], [4,5,6], [7,8,9]] 结果都是matrix(矩阵)输出:[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
例12 访问嵌套列表:(要使用嵌套循环)
可以通过使用循环语句来实现
matrix [[1, 2, 3], [4, 5, 6], [7, 8, 9]] for i in matrix: for each in i: print(each)输出:
1 2 3 4 5 6 7 8 9 或使用另外一种方法:(注意缩进)
for i in matrix: for each in i: print(each,end = ' ') print()1 2 3 4 5 6 7 8 9
例13 同样,使用下标索引的方式也可以访问嵌套列表:
此时我们得到的是一行为单位的列表,而不是列表中的元素
print(matrix[0])
访问列表中的元素: 相当于二维数组matrixn,n表示行,m表示列
print(matrix[0][0])
结果就是‘1’
例14 还可以通过循环语句来创建并初始化二维列表
A = [0]*3 for i in range(3): A[i] = [0]*3 print("A =",A) B = [[0]*3]*3 print("B =",B) A = [[0, 0, 0], [0, 0, 0], [0, 0, 0]] B = [[0, 0, 0], [0, 0, 0], [0, 0, 0]]
此时A和B是不一样的 Python和java一样满足数组(列表)的引用,A此时指向的不同常量池, 而B此时指向的是同样的常量池,其实质是引用 以上是自己的理解 "is"是同一性运算符,用于判断两者是否完全相同
A[1][1] = 1 print(A) B[1][1] = 1 print(B) [[0, 0, 0], [0, 1, 0], [0, 0, 0]] [[0, 1, 0], [0, 1, 0], [0, 1, 0]] A[0][1] is A[1][1] False B[0][1] is B[1][1] True
字符串是相同的
x = "梦茹同学" y = "梦茹同学" x is y True
浅拷贝:
x = [1,2,3] y = x x[1] = 1 x [1, 1, 3] y [1, 1, 3] x = [1,2,3] y = x.copy() x[1] = 1 x [1, 1, 3] y [1, 2, 3] x = [1,2,3] y = x[:] x[1] = 1 x [1, 1, 3] y [1, 2, 3]
八、嵌套列表中的浅拷贝 深拷贝
例15 对于嵌套列表,一维元素浅拷贝的copy方法不再适用
x = [[1,2,3],[4,5,6],[7,8,9]] y = x.copy() x[1][1] = 1 x [[1, 2, 3], [4, 1, 6], [7, 8, 9]] y [[1, 2, 3], [4, 1, 6], [7, 8, 9]]
import copy #引入copy模块中的copy方法 ##浅拷贝: x = [[1,2,3],[4,5,6],[7,8,9]] y = copy.copy(x) x[1][1] = 1 x [[1, 2, 3], [4, 1, 6], [7, 8, 9]] y [[1, 2, 3], [4, 1, 6], [7, 8, 9]] ##深拷贝: x = [[1,2,3],[4,5,6],[7,8,9]] y = copy.deepcopy(x) x[1][1] = 1 x [[1, 2, 3], [4, 1, 6], [7, 8, 9]] y [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
import copy
# 原始对象
original_list = [1, 2, [3, 4], 5]
# 浅拷贝
shallow_copy = copy.copy(original_list)
# 修改原始列表中的内部列表
original_list[2][0] = 'a'
# 输出浅拷贝列表,可以看到内部列表也被修改了
print(shallow_copy) # 输出: [1, 2, ['a', 4], 5]
# 深拷贝
deep_copy = copy.deepcopy(original_list)
# 修改原始列表中的内部列表
original_list[2][0] = 'b'
# 输出深拷贝列表,内部列表没有改变
print(deep_copy) # 输出: [1, 2, ['a', 4], 5]
例16 题目:将一个列表中的元素变成两倍
1.利用for循环实现:
oho = [1,2,3,4,5] for i in range(len(oho)): oho[i] = oho[i] * 2
oho [2, 4, 6, 8, 10]
2.利用列表推导式:[expresssion for i in 列表序列]
例1: oho = [1,2,3,4,5] oho = [i * 2 for i in oho] oho [2, 4, 6, 8, 10]例2: x = [i for i in range(10)] x [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] x = [i+1 for i in range(10)] x [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]例3: x = [] for i in range(10): x.append(i+1) x [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
九、字符串
例17
y = [c*2 for c in "FishC"] y ['FF', 'ii', 'ss', 'hh', 'CC'] code = [ord(c) for c in "FishC"] #ord()获取编码 code [70, 105, 115, 104, 67] matrix = [[1,2,3], [4,5,6], [7,8,9]] col2 = [row[1] for row in matrix] col2 [2, 5, 8] 获取对角线的元素: diag = [matrix[i][i] for i in range(len(matrix))] diag [1, 5, 9]
##(思考怎么获取反对角线上的元素.....)
十、列表推导式
例18
A = [0]*3 for i in range(3): A[i] = [0]*3 A [[0, 0, 0], [0, 0, 0], [0, 0, 0]] A[1][1] = 1 A [[0, 0, 0], [0, 1, 0], [0, 0, 0]] ##利用列表推导式来实现: S = [[0]*3 for i in range(3)] S [[0, 0, 0], [0, 0, 0], [0, 0, 0]] S[1][1] = 1 S [[0, 0, 0], [0, 1, 0], [0, 0, 0]]
例19 在【】里面的运算顺序是:1.for循环 2.if条件句 3.循环条件i
even = [i for i in range(10) if i % 2 == 0] even [0, 2, 4, 6, 8] even = [i+1 for i in range(10) if i % 2 == 0] even [1, 3, 5, 7, 9]
例20 找出首字母是F的单词:
words = ["Great","FishC","Brilliant","Excellent","Fantistic"] fwords = [w for w in words if w[0] == 'F'] fwords ['FishC', 'Fantistic']
例21 降维
matrix =[[1,2,3],[4,5,6],[7,8,9]] flatten = [col for row in matrix for col in row] flatten [1, 2, 3, 4, 5, 6, 7, 8, 9]
例22 for 循环实现降维
flatten = [] #声明一个空列表 for row in matrix: for col in row: flatten.append(col) #append()见row147 flatten [1, 2, 3, 4, 5, 6, 7, 8, 9]
例23 字符串的数乘
[x + y for x in "fishc" for y in "FISHC"] ['fF', 'fI', 'fS', 'fH', 'fC', 'iF', 'iI', 'iS', 'iH', 'iC', 'sF', 'sI', 'sS', 'sH', 'sC', 'hF', 'hI', 'hS', 'hH', 'hC', 'cF', 'cI', 'cS', 'cH', 'cC'] _ = []for 循环
for x in "fishc": for y in "FISHC": _.append(x+y) _ ['fF', 'fI', 'fS', 'fH', 'fC', 'iF', 'iI', 'iS', 'iH', 'iC', 'sF', 'sI', 'sS', 'sH', 'sC', 'hF', 'hI', 'hS', 'hH', 'hC', 'cF', 'cI', 'cS', 'cH', 'cC']_ = [] for x in range(10): if x % 2 == 0: for y in range(10): if y % 3 == 0: _.append([x,y]) [[0, 0], [0, 3], [0, 6], [0, 9], [2, 0], [2, 3], [2, 6], [2, 9], [4, 0], [4, 3], [4, 6], [4, 9],[6, 0], [6, 3], [6, 6], [6, 9], [8, 0], [8, 3], [8, 6], [8, 9]]