#Day5.承接day3的

一、运算符

        对变量和值进行操作的就是运算符。

1)算术运算符

        这一部分就是前文我们经常遇到的,加(“+”)减(“-”)乘(“*”)除(“/”)取幂(“**”)。

2)比较、逻辑运算符

        比较运算符

        逻辑运算符

        在这里我们要重提前文的一种数据类型——布尔值。遇到算术运算符时,我们按照数学思维直接计算其值即可。但是如果遇到了如比较、逻辑运算符呢,,像这样的式子我们固然知道它是假的。但是落实到计算机里最终到底该怎么算呢?前文我们提到过布尔值为两种True(真)和False(假)。除了这样直接赋予外,往往它就是通过比较、逻辑运算符得出,当比较、逻辑运算符两端的值符合规则时,其值就为True,否则就是False。

        此外值得注意的是,由于True,False在计算机里实际存储的时候使用简单的1,0表示的,所以在实际应用中一个非空非0的值往往和True等价,0往往和False等价,可以互相替换。

3)赋值运算符

        这里需要注意的是,虽然逻辑判断相等和赋值在数学中均是“=”。但是Python中“=”仅代表赋值,进行逻辑判断相等我们用的是“==”。此外Python为了方便还开发出了赋值增强语句。简单来说就是普通语句的缩写。如下所示

a = 1
a = a + 1

print(a)

#等价写法
a = 1
a += 1

print(a)

二、Python里的“语法”

1)选择

        if语句常见格式为:

        这就如自然语言一样,其实很好理解。if(如果)条件1是真的,那就执行代码一,elif(或者如果)条件2是真的,那就执行代码2...else(最后要是以上都不成立),那就执行代码n。
        当然,面对更简单的场景时我们可以缩减。比如进行是否判断时,我们可以忽略elif,仅if 条件成立,执行代码1。条件不成立就else,执行代码2。
        这里着重要解释的就是格式了。if/elif空一格再写条件,条件写完后要增添一个冒号表示完结。内部的代码块要按下tab缩进四格以示区分。

        为了帮助各位更好的理解,我们来看接下来这个例子。

age = int(input("请输入你的年龄:"))    #input(),将会在控制台输出提示性文本 请输入你的年龄:,并将用户键入的值以str形式返回

#第一部分
if age <= 18:
    print("未成年!")
elif age <= 65:
    print("成年人!")
else:
    print("老年人!")

#第二部分
if age <= 18:
    print("*未成年!*")
if age <= 65:
    print("*成年人!*")
else:
    print("老年人!")

        这两种代码的核心区别就是第二部分的代码并未使用elif,这会导致任何18及以下的输入都会使“*未成年!*”和“*成年人!*”同时被打印。临时提问:为什么呢?

#

#

#

        因为当我们在执行elif的时候,我们说的是“或者如果”,既事实上这里执行的判断是条件一不满足且满足条件二。而在第二部分的代码中第二条判断语句从elif变为if就使判断条件变成了只要满足条件二即可。在这里,显然任何满足条件一的(输入年龄是在18及以下)都会满足条件二(输入年龄在65及以下)

2)循环

        循环分两种,一种有限,叫for循环,一种无限,叫while循环。

        什么叫有限?举个具体例子。

for i in 'python':
    print(i)
print('循环结束喽')

        在这里,我们从'python'这串字符串中遍历组成它的每一个字符。第一次循环,我们读取到字符'p',将它放入变量i,然后通过print()将i中存储的内容打印出来;第二次,我们读取到字符'y'...这样依次读取,当最后一个字符'n'也被取出时循环就结束了。这样循环的次数显而易见的由字符串的长度决定,就是所谓的有限循环。

        对于for循环还有一个常用的函数range()。这里给出示例,较为简单就不加以赘述了。

for i in range(10):
    print(i)

for i in range(5, 10):
    print(i)

for i in range(10, 5, -1):
    print(i)

        对于无限循环,while,它如何无限呢。因为while语句是这样写的。

flag = 1
while flag == 1:
    print('循环中')
print('循环结束')

        这段代码不建议大家运行,因为这是无限循环,也称死循环。如果误运行了请按ctrl+c终止,或者干脆关掉你的软件。为什么会无限循环?因为while语句会在每次循环时判断while后面的条件是否成立,如果成立,就执行内部的代码。而条件"flag == 1"显然恒成立。

3)异常处理

        对于任何一段代码来说,出Bug都是一个不得不考虑的情形。那么就相应的会有处理Bug的方法。第一种颇为有用:调试。在Pycharm中,我们可以在代码行数上单击以设置break point(断点),让程序在运行到该行代码前就停止。右键唤起菜单,单击Debug 'main'(调试主文件)选项,进入Debug(排除Bug)模式。在该模式下我们可以逐行调试代码,每按下一次Step(步过)计算机将会执行一行代码,并停下来让我们能够查看当前变量到底变化成了什么值。在遇到函数时,我们还可以点击Step Into(步进),进入函数内查看仔细运行过程。为我们排除Bug提供了很大的便利。第二种办法就是异常捕获语句,但是对于我们的目表的开发岗来说意义不大,这里仅给出示例。感兴趣可自行学习。

try:
    num = int(input("请输入一个数字: "))
    result = 10 / num
    print(f"结果是: {result}")
except ValueError:
    print("输入的不是有效数字!")
except ZeroDivisionError:
    print("不能除以零!")
except Exception as e:
    print(f"发生错误: {e}")
else:
    print("计算成功!")
finally:
    print("程序执行完毕。")

三、一个良好的编程习惯是必要的

        到此,想必朋友你已通过文内的跟练或者自己看补充查阅辅助理解的其他资料多少练习了一些。或许注意到一个良好的编程习惯颇为重要。
        在现在代码仅有几行时,它能让你的代码保持美观。更重要的是到后期代码行数几何级增长时,这会让你的代码更简洁易读。这是拒绝“屎山代码”的重要进步。
        我的建议,先从赋值语句“=”的两端各自按下一个空格键分隔,算式中“+”或“-”的两端也按下一个空格键分隔开始。逗号后也时常要记得添加一个空格。此外,一段功能完整的代码块(例如前文的函数)最好也在它的前后各空置一行,以示独立性。当然如果代码量过大的话我们甚至可以让一个函数单独作为一个文件,这个我们后续展开。

        当然,这并不是什么硬性要求,各位完全可以按照自己的喜好来具体操作。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐