练习题1(Python基础、函数、高级特性)

Python简介

where

第一个Python程序

第一个Python程序

Python代码运行助手

print输出语句

输入和输出

计算得数

数据类型和变量

  • 加 r
    多行输出
  • 不加 r:
    多行输出
    =赋值
  • 先把’ABC’赋值给a,再把a赋值给b,此时b是’ABC’,至于下边再把’XYZ’赋值给a,对于b来说已经没有效果了,输出b还是’ABC’:
    赋值问题
    print输出
    格式化输出
    小明测试

使用list和tuple

列表索引
tuple类型

条件判断

小明bmi

bmi = weight / (height**2)

if bmi < 18.5:
    print('过轻')
elif 18.5 <= bmi < 25:
    print('正常')
elif 25 <= bmi < 28:
    print('过重')
elif 28 <= bmi <= 32:
    print('肥胖')
elif 32 < bmi:
    print('严重肥胖')

循环

  • for 循环
    在这里插入图片描述
  • while 循环
    while循环

调用函数

hex()的使用

定义函数

求一元二次方程的解

    gh = math.sqrt(b ** 2 - 4 * a * c)
    j1 = (-b + gh) / (2 * a)
    j2 = (-b - gh) / (2 * a)
    return j1, j2

函数的参数

说明:题目要求中try里,如果传个空值需要当成错误,我开始判断了传入数组的长度,为0返回False但是不对;于是就在函数中随意定义了一个位置参数,让结果乘以这个参数,如果nums不传值那这个位置参数未定义,肯定就报错了,如果nums传值了,第一个数就会赋值给位置参数。

  • 错误解:
def product(*nums):
    if len(nums) == 0:
        return False
    else:
        result = 1
        for num in nums:
            result *= num
        return result
  • 正解:
    计算一个或多个数的乘积
def product(x, *nums):
    result = 1
    for num in nums:
        result *= num
    return result * x

递归函数

汉诺塔应用

    if n == 1:
        print(a, '-->', c)
    else:
        move(n-1, a, c, b)
        move(1, a, b, c)
        move(n-1, b, a, c)

切片

利用切片操作,实现一个trim()函数,去除字符串首尾的空格,注意不要调用str的strip()方法:
切片

    if len(s) == 0:
        return s
    elif s[0] == ' ':
        return trim(s[1:])
    elif s[-1] == ' ':
        return trim(s[:-1])
    return s

迭代

请使用迭代查找一个list中最小和最大值,并返回一个tuple:
迭代

列表生成式

练习:

如果list中既包含字符串,又包含整数,由于非字符串类型没有lower()方法,所以列表生成式会报错:
列表生成式

L2 = [name.lower() for name in L1 if isinstance(name,str)==True]

生成器

杨辉三角

def triangles():
    Y = [1]  # 初始化为 [1],杨辉三角的每一行都是一个list
    while True:
        yield Y  # yield 实现记录功能,没有下一个next将跳出循环
        H = Y[:]  # 将 Y 赋值给 H, 通过 H 计算每一行
        H.append(0)  # 将list添加 0 作为最后一个元素,长度增加 1
        Y = [H[i - 1] + H[i] for i in range(len(H))]  # 通过 H 计算出 Y
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员老五

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值