美文网首页Python 学习笔记
2020-06-26 Python学习笔记8

2020-06-26 Python学习笔记8

作者: 建渐升辉 | 来源:发表于2020-06-26 19:13 被阅读0次

    写一些关于自己学习Python的经历的内容,遇到的问题和思考等,方便以后查询和复习。

    声明:本人学习是在扇贝编程通过网络学习的,相关的知识、案例来源于扇贝编程。如果使用请说明来源。

    第八关:条件初阶

    练习:是否租此房

    房租预算是3000元,大于不租,小于就可以租

    rent = 3000

    def transfer(rent):

      if rent > 3000:

        print('这可太贵了')

      else:

        print('就租这个吧')

    rent = int(input('请输入房租:'))

    transfer(rent)

    这个是可以得到正确结果的。

    最初在倒数第二行中,忘记加入变量rent,结果虽然能挑出对话框,但是输入的结果并没有赋值给变量,所以会反馈说变量rent没有定义

    增加rent变量之后,将输入的结构对其赋值,就可以正常运行,此时不需要在第一行赋值,因为通过输入已经给变量重新赋值的,原值有没有都不影响了。

    如果有第一行的原始赋值,但是倒数第二行的输入没有重新赋值,就会导致无论输入什么结果都是执行else,因为赋值是3000是不变的。虽然有输入但是没有对变量实现赋值。

    参考答案中,函数中的变量是rent,而后面的输入赋值于变量input_rent,调用的还是函数transfer,但是变量也变成了input_rent。

    用这个变量名称,可读性比较强

    def transfer(rent):

      if rent > 3000:

        print('这可太贵了')

      else:

        print('就租这个吧')

    x = int(input('请输入房租:'))

    transfer(x)

    我试验了一下,把倒数第一第二行的变量改成x也是可以的,这个等于说吧变量名字都改变了啊,相同的函数中,变量名可以不同,而且默认相等吗?

    练习:记录涨粉量

    def check_growth(growth):

      if growth:

       print('你忘记记录今天的涨粉量了')

     else:

       print(chech_growth(growth))

    growth = input('请输入今天涨粉量:')

    check_growth(growth)

    输入什么数字都是打印“你忘记记录今天的涨粉量了”,有些不理解,于是看答案

    答案的思路和我是一样的,使用if growth,设置了一个布尔表达式。但是不同的时候,它打印的是growth,就是当growth的布尔值为真时,就打印出输入的值。

    而我的刚好是为真时,打印“你忘记记录今天的涨粉量了”

    还有一个要注意的是:答案不是打印函数,而是直接打印变量的值,因为这个不需要运算,符合条件直接打印出值就行,只是记录数量。

    答案中还是用了新的变量input_growth,作为输入值的变量名,增加可读性

    def check_growth(growth):

      if growth:

        print(growth)

      else:

        print('你忘记记录今天的涨粉量了')

    growth = input('请输入今天涨粉量:')

    check_growth(growth)

    打印内容颠倒一下,而且把为真时打印的是变量值,而不是打印函数值

    如果输入具体数值,包括零,则if growth为真,就打印数字,如果什么都不输入,包括空格也没有,则为假,就打印忘记了。如果输入空格,仍然为真,程序正常运行,但是结果是空白,本来就是空白,打印的是空格,输入几个空格就打印几个,只是看不见

    如果第三行改成:打印函数print(check_growth(growth)),报告多错误:

    ExternalError: RangeError: Maximum call stack size exceeded on line 3

    超过调用最大范围什么的吧

    练习:到哪里工作?

    wage_bj = 8500 # 北京薪资

    wage_hf = 6700  # 合肥薪资

    rent_bj = 2800  # 北京房租

    rent_hf = 1400  # 合肥房租

    def choice(x):

      x1 = wage_bj - rent_bj

      x2 = wage_hf - rent_hf

      if x1 > x2:

        print('去北京工作吧')

      else:

        print('去合肥工作吧')

    choice(x)

    结果报错

    NameError: name 'x' is not defined on line 14

    把x1和x2提到函数前面,还是不行,错误原因是一样的。在第14行x是全局变量,而在函数中x是局部变量

    看了答案才意识到整复杂了,这个不需要计算,只要比较,然后打印就可以了,不用函数的

    我后来想着把调用函数的语句去掉,就是最后的第14行,还是不行,但是没有想着去掉函数,这两个应该一起去掉的。不调用函数,还定义函数干什么啊?

    wage_bj = 8500 # 北京薪资

    wage_hf = 6700  # 合肥薪资

    rent_bj = 2800  # 北京房租

    rent_hf = 1400  # 合肥房租

    x1 = wage_bj - rent_bj

    x2 = wage_hf - rent_hf

    if x1 >= x2:

      print('去北京工作吧')

    else:

      print('去合肥工作吧')

    直接用条件分支,然后打印即可,不需要调用定义函数和调用函数。

    第八关导图:

    相关文章

      网友评论

        本文标题:2020-06-26 Python学习笔记8

        本文链接:https://www.haomeiwen.com/subject/fxiufktx.html