Python教程

扇贝编程python学习笔记-基础篇5

本文主要是介绍扇贝编程python学习笔记-基础篇5,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
再也不咕咕了,请叫我多福

文章目录

  • 第七关
    • 1.print和return的区别
    • 2.return 语句的“陷阱”
    • 3.报错处理
    • 4.学习巩固

第七关

知识点复习
学习用时:30min
随堂测验+上机作业:30min
随堂作业正确率:8/10

1.print和return的区别

returnprint()
概念python关键字函数
作用只能在函数内使用,在函数内不直接显示数据内容,但将结果传到函数外供使用随处可见,在函数内直接打印数据内容,但打印完就销毁结果

  return 是将函数内的计算结果传输到函数外的唯一通道。内置函数 print() 实现的输出功能,将结果显示出来,一般用于验证。

def func1(x):
  y = x + 1

def func2(x):
  y = x + 1
  return y

y1 = func1(1)  # y1 的值为 None
y2 = func2(1)  # y2 的值为 2

print(y1)  # 输出:None, 因为没有return,所以阅后即焚
print(y2)  # 输出:2
#----------------------------------------------------------------------------

def math(x):
  y = x + 1
  print(y)

print(math(3))
#输出结果
#4
#None

2.return 语句的“陷阱”

   函数的 return 语句执行后,就会退出函数,所以函数内部,在 return语句后执行的代码是无效的。

def f(x):
  y = 2 * x + 1
  return y
  print(y)

f(3) # 没有结果打印,因为return执行后整个函数就下班了
#----------------------------------------------------------------------------

def f(x):
  y = 2 * x + 1
  if x > 2:
    return y
  else:
    print(y)

f(1)
# 输出:3
# 因为 if ... else 语句的条件判断中,return y 和 print(y) 在逻辑上是平行的代码并没有执行到return这个下班节点,所以可以有结果
# 但如果x=5或者是任何>2的数字 就都不会有结果

3.报错处理

# 报错:SyntaxError: bad input on line 1
# (语法错误:第 1 行输入有问题)

# 报错:SyntaxError: invalid character in identifier
# (语法错误:识别不了不支持的字符) 一般是中文标点

# 报错:IndentationError: unindent does not match any outer indentation level
# (缩进错误:缩进变小了,但是其它地方匹配不到和他一样的缩进层级)

# 报错:SyntaxError: non-default argument follows default argument
# (语法错误:非默认参数被放到了默认参数后面)

# 报错:NameError: name 'x' is not defined
# (变量名错误:变量名 'x' 没有被定义)

4.学习巩固

练习1

  每月本金 = 贷款本金 / 还款期数,这部分是固定不变的。
  每月利息 = (贷款本金 - 累计已还本金) × 月利率
等额本金的每月偿还本息和计算公式如下:
  每月偿还本息和 = 贷款本金 / 还款期数 + (贷款本金 - 累计已还本金) × 月利率

#假设贷款 p=100 万,计划分 30 年还完 还款期数n=360,月利率r = 0.41%,m 是还款月数
def calc_loan(p, n, r, m):
  x1 = p / n
  #累计已还本金
  h = (m - 1) * x1
  x2 = (p - h) * r
  y = x1 + x2
  return y

# 打印第 10 个月的偿还本息和
print(calc_loan(1000000, 360, 0.0041, 10))

这个累计已还本金我竟然想了半天,果然是太久没动脑子了

练习 2
  内置 abs() 函数的作用是计算一个数的绝对值,写一个my_abs() 实现此功能。

def my_abs():
  x = int(input(print("请输入一个数字:")))
  if x > 0:
    return x
  else:
    return -x

print(my_abs())

练习3 递归计算斐波那契数列
这个练习感觉到了自己思维的局限性,还需要多练习

#这个是自己写的
def fibo(n):
  if n == 1:
    return 0
  if n == 1:
    return 0
  return fibo(n-1) + fibo(n-2)
#----------------------------------------------------------------------------
#这个是参考答案的
  def fibo(n):
  if n <= 1:
    return n
  else:
    return fibo(n-1) + fibo(n-2) 
    
print(fibo(10))  # 55
print(fibo(23))  # 28657
这篇关于扇贝编程python学习笔记-基础篇5的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!