【漫漫转码路】Python Day 11

一、判断数组中是否存在连续三个元素都是奇数的情况

对一个整数数组中的元素进行判断,如果存在连续三个奇数,则输出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开始
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值