一、判断数组中是否存在连续三个元素都是奇数的情况
对一个整数数组中的元素进行判断,如果存在连续三个奇数,则输出True,否则输出False;
1、每个数进行奇偶判断
# 例如
arr = [1, 2, 34, 3, 4, 5, 7, 23, 12]
for i in range(len(arr)-2):
if arr[i] % 2 == 1 and arr[i+1] % 2 == 1 and arr[i+2] % 2 == 1:
print(True)
break
else:
print(False)
# 终端显示
True
2、对三个数的积进行判断
# 例如
arr = [1, 2, 34, 3, 4, 5, 7, 23, 12]
for i in range(len(arr)-2):
if (arr[i] * arr[i+1] * arr[i+2]) % 2 == 1:
print(True)
break
else:
print(False)
# 终端显示
True
3、计数
# 例如
arr = [1, 2, 34, 3, 4, 5, 7, 23, 12]
num_count = 0
for i in arr:
if i % 2 == 1:
num_count += 1
if num_count == 3:
print(True)
break
else:
num_count = 0
else:
print(False)
# 终端显示
True
二、chr()和ord()
chr(i):把i转换成对应Unicode码;
ord(i):把Unicode码转换成对应的字符;
两者互为逆函数;
# 例如
print(chr(98))
print(ord('b'))
# 终端显示
b
98
注意: 有些时候chr()不会显示,但是求长度的话发现是有实际长度的,这是因为有一些符号在vscode中显示不出来,所以终端不会显示;
三、函数
1、自定义函数
#格式
def 函数名([形参*n])
# 例如
def triangle(pic, lines): # pic和lines为形参
for i in range(int(lines)):
print((pic*(2*i-1)).center(2*lines-1))
triangle('?', 3) # 调用函数
triangle('√', 5) # 函数可以重复使用
# 终端显示
?
???
√
√√√
√√√√√
√√√√√√√
2、return
1、return后面的数据返回给调用方;
2、return表示结束函数(注意:是结束函数,不是结束循环)
3、后面如果跟多个对象,会将其输出封包成为元组;
4、如果后面是表达式,则会,先执行表达式,对表达式的结果进行输出;
5、如果什么都不跟的话,默认return = None;
6、当函数没有返回值的时候,默认有return后面有None;
# 例如
def num_sum(num1, num2):
a = num1 + num2
return a
def num_sum1(num3, num4):
a = num3 + num4
print(a)
num_sum(1, 2)
print('--------------分隔符')
num_sum1(1, 2)
print('--------------分隔符')
print(num_sum(1, 2))
print('--------------分隔符')
print(num_sum1(1, 2)) # return加表达式
# 终端显示
--------------分隔符 # num_sum(1, 2)无输出,因为def num_sum中没有打印,调用函数也没有打印
3 # # num_sum1(1, 2)的输出,因为def num_sum1中有打印,调用的时候自动打印
--------------分隔符
3 # print(num_sum(1, 2))结果,num_sum有返回值,将返回值打印的结果
--------------分隔符
3 # num_sum1(1, 2)的结果,但是没有return,默认返回none,此时相当于print(None)
None # 打印None的结果
# 例如
def num_list(num1, num2):
res1 = num1 + num2
res2 = num1 - num2
return res1, res2
print(num_list(2, 2))
# 终端显示
(4, 0) # 多结果输出
3、文档注释
在定义函数的下一行用多行注释写明定义的函数的作用,将鼠标放在函数上的时候,会显示出来:
# 例如
def num_list(num1, num2):
''' 求两个函数的和,差'''
res1 = num1 + num2
res2 = num1 - num2
return res1, res2
print(num_list(2, 2))
四、部分函数
1、help([object])
help([object]):启动内置帮助系统(当object不传的时候),如果上传参数,即为查看该参数的相关事项
2、abs(x)
abs(x):求绝对值,对复数求模;
# 例如
print(abs(-9))
print(abs(3 + 4j))
# 终端显示
9
5.0
3、divmod(a, b)
divmod(a, b):返回一个包括商和余数的元组,a,b不能是复数
# 例如
print(divmod(8, 4))
print(divmod(9, 4))
# 终端显示
(2, 0)
(2, 1)
4、max
max(iterable, *[key, default]) / max(arg1, arg2, *arg3[,key]):
第一种,对可迭代对象求最大值,key是规则,default是指当不上传iterable的时候返回的显示,如果defult不传,会报错;
第二种,对多个数据求最大值;
# 例如
lis1 = [1,5,7,8,9,-888,12,31]
lis2 = []
print(max(lis1))
print(max(lis1, key=abs))
print(max(lis2, default = "没有数据"))
print(max(1,5,78,-99,56,456))
# 终端显示
31
-888
没有数据
456
5、min
min(iterable, *[key, default]) / max(arg1, arg2, *arg3[,key]):求最小值,用法同max;
6、pow
pow(base, exp[,mod]):base为底,exp为指数的幂,如果上传mod,则会对指数求余数:
# 例如
print(pow(2, 3))
print(pow(2, 3, 5))
# 终端显示
8
3
7、round
round(num[,ndigits]):求近似数,四舍五入:ndigits表示保留小数点后的位数,如果不上传默认整数;
# 例如
print(round(0.5)) # ndigits不传的时候,保留整数
print(round(0.5, 0)) # 当ndigits为0的时候,输出结果与原结果保持一致格式
print(round(0.5, None)) # ndigits为None的时候,保留整数
print('---------------------')
print(round(2.675, 2)) # 精度损失
print(round(2.665, 2)) # 精度损失
print('---------------------')
print(5.67*2.32) # 精度损失
# 终端显示
0
0.0
0
---------------------
2.67
2.67
---------------------
13.154399999999999
8、sum
sum(iterable,/,start = 0):求和,对可迭代对象求和,默认起始位置从start=0开始,可迭代对象的元素必须是数字类型;
# 例如
lis1 = [0, 1, 2.1]
print(sum(lis1))
print(sum(lis1, start=100))
# 终端显示
3.1
103.1 # start从100开始