zoukankan      html  css  js  c++  java
  • 嵩天老师的零基础Python笔记:https://www.bilibili.com/video/av15123607/?from=search&seid=10211084839195730432#page=25 中的35-37讲

    #coding=gbk
    #嵩天老师的零基础Python笔记:https://www.bilibili.com/video/av15123607/?from=search&seid=10211084839195730432#page=25 中的35-37讲
    # 处理多个银行账户的程序
    """
    def addInterest(balances,rate):
      for i in range(len(balances)):
        balances[i] = balances[i] * (1 + rate)

    def test():
      amounts = [1000, 105, 3500, 739]
      print(id(amounts)) #实参amounts内存地址
      rate = 0.05
      addInterest(amounts,rate) #实参amounts在调用函数时发生了改变
      print(id(amounts)) #实参amounts内存地址没有发生改变
      print(amounts)
      amounts.append(700)
      print(id(amounts)) #实参amounts内存地址没有发生改变
      print(amounts)

    test()
    """
    #程序模块化例子
    #程序1:
    """
    print("This program plots the growth of a 10-year investment.")
    principal = eval(input("Enter the initial principal: "))
    apr = eval(input("Enter the annualized interest rate: "))
    for year in range(1,11):
      principal = principal * (1 + apr)
      print("%2d" % year, end='')
      total = int(principal*4/1000)
      print("*" * total)
    print("0.0K 2.5K 5.0K 7.5K 10.0K")
    """

    #对程序1进行模块化
    """
    def creatTable(principal, apr):
      for year in range(1,11):
        principal = principal * (1 + apr)
        print("%2d" % year, end='')
        total = caculateNum(principal)
        print("*" * total)
      print("0.0K 2.5K 5.0K 7.5K 10.0K")

    def caculateNum(principal):
      total = int(principal*4/1000)
      return total

    def main():
      print("This program plots the growth of a 10-year investment.")
      principal = eval(input("Enter the initial principal: "))
      apr = eval(input("Enter the annualized interest rate: "))
      creatTable(principal,apr)

    main()
    """
    # python的参数是通过值还传递的
    # 如果变量是可变对象,返回到调用程序后,该对象会呈现被修改后的状态。

    # 递归定义的特征:
    # 有一个或多个基例是不需要再次递归的
    # 所有的递归链都要以一个基例结尾
    # 递归每次调用都会引起新函数的开始
    # 递归有本地值的副本,包括该值的参数
    # 阶乘递归函数中,每次函数调用中的相关n值在中途的递归链暂时存储,并在函数返回时使用。

    # 阶乘的递归定义函数:
    """
    def fact(n):
      if n == 0:
        return 1
      else:
        return n * fact(n-1)
    """
    # 字符串反转递归函数
    def reverse(s):
      if s == "":
        return s
      else:
        return reverse(s[1:]) + s[0]
    print(reverse("iloveyou"))
    #
    # turtle库的常用指令
    # forward(distance)将箭头移到某个指定坐标
    # left(angel) right(angel)
    # penup()提起笔,用于另起一个地方绘制时用,与pendown()配对使用。
    # goto(x,y)
    # home()
    # circle(radius)
    # speed()
    #
    # 用turtle库绘制并填充一个五角星的程序
    """
    from turtle import Turtle

    p = Turtle()
    p.speed(1)
    p.pensize(5)
    p.color("black","yellow")
    p.begin_fill()
    for i in range(5):
      p.forward(200)
      p.right(144)
    p.end_fill()
    """
    # 用递归函数画树:
    from turtle import Turtle

    def maketree(x,y):
      p = Turtle()
      p.speed(0.1)
      p.color("green")
      p.pensize(5)
      p.hideturtle()
      p.getscreen().tracer(30,0)
      p.left(90)
      p.penup()
      p.goto(x,y)
      p.pendown()
      t = tree([p],110,65,0.6375)
      print(len(p.getscreen().turtles())) #用了多少个turtle绘制

    def tree(plist, l, a, f):
      if l > 5:
        lst = []
        for p in plist:
          p.forward(l)
          q = p.clone()
          p.left(a)
          q.right(a)
          lst.append(p)
          lst.append(q)
        tree(lst, l*f, a, f)

    def main():
      maketree(-200, 200)
      maketree(0, 0)
      maketree(200, -200)

    main()

  • 相关阅读:
    linux umask使用详解
    Linux 解压压缩命令
    linux命令:tail 命令
    linux命令:head 命令
    linux下cat命令详解
    linux命令:rm 命令
    linux命令:mv命令
    Linux 的cp命令
    文件权限详解
    Linux ls命令参数详解
  • 原文地址:https://www.cnblogs.com/fengbo1113/p/7794269.html
Copyright © 2011-2022 走看看