这周刷题情况:
知识点:
1.关于列表
利用函数 range(),能够创建任何需要的数字列表, 例如, 下面的代码创建了一个列表, 它包含前 10 个整数( 即 1~10 ) 的立方:
cubes=[]
for v in range(1,11):
cube=v**3
cubes.append(cube)
print(cubes)
因为逻辑清晰易懂,所以去除临时变量 cube,让代码变得更简洁:
cubes=[]
for v in range(1,11):
cubes.append(v**3)
print(cubes)
有时候, 使用临时变量会让代码更易读;而有的时候, 使用临时变量只会让代码无谓地变长。
还有一种更简洁的写法,叫做列表解析。它会将 for 循环和创建新元素的代码合并为一行, 并且自动附加新元素。它的语法是, 首先指定一个描述性的列表名, 如 cubes; 然后, 指定一个左方括号, 并定义一个表达式, 用于生成你要存储到列表中的值(如 v**3) 。 接下来, 编写一个 for 循环, 用于给表达式提供值, 再加上右方括号 。 注意: 这里的 for 语句末尾没有冒号 。
↓
cubes=[v**3 for v in range(1,11)]
print(cubes)
2.在输入三角形的几何特征前(诸多题目也是如此),要先判断其输入值的合理性,很多时候我都会忘了这一点。差不多完成之后再来修改,所以得加强这方面意识。
在此题就用if函数判断
if(a+b<=c or a+c<=b or b+c<=a):
print("These sides do not correspond to a valid triangle")
else:
//......(接下来照套路来)
3.关于逆序(反转)
想到的就是循环和切片
str1 = [1, 2, 3, 4]
str2 = []
for i in str1:
str2.insert(0, i)
print(str2)//循环
aList = [1, 2, 3]
print(aList[::-1]) # 输出为:[3, 2, 1]//切片法
还查阅到可内建函数,用reverse、reversed、sorted等达到目的。
4.关于查找指定字符
1.find()
find()检测某个子串是否包含在这个字符串中,如果在返回这个子串开始位置的下标,否则返回 -1
字符串序列.find(子串,开始位置的下标,结束位置的下标)
注意:开始和结束位置的下标可以省略,表示在整个字符串序列中查找。
2.index()
index() 检测某个子串是否包含在这个字符串中,如果在返回这个子串开始位置的下标,否则则报出异常。
字符串序列.index(子串,开始位置的下标,结束位置的下标)