亲爱的战友们接下来笔记的是关于python输入与输出,条件语句和循环语句的知识,条件语句和循环语句不仅是python学习的基础,而是是贯穿复杂语句的重要部分,我们一起慢慢走近、了解和掌握难点!!
一、Python的输入和输出
1.输入
第一种在控制台的输出、输入作为程序输出,复杂的输入则是AI渲染的输出、网页的渲染、app小程序等(作为小白这个东西就离目前的学习太过遥远咯)
基本的用法
2.传入 变量
print(a)
当然此时a作为变量没有声明,通过运行访问发现会报错,那么作为新手小白有没有思考过如果不出现报错,让程序运行下去会出现什么情况!
其实是程序的保护措施,如果程序一直运行下去,这里提到一个专业名词叫做“野指针“,如果一直运行不进行报错,那么错误程序会访问电脑的变量(称为野指针),一旦把系统中的变量激活了,极易导致系统混乱,系统混乱将会出现蓝屏,当然这是python(包括编程软件)最前期未优化的情况,在如今python版本已经达到3以上的版本后,无论是系统程序还是编程软件的发展都已经逐步有了稳定的趋势,这里作为科普给同样作为新手的小白们。
大多是程序员看,不是作为用户查看,分隔符也以自身的熟悉程序进行编写
特别需要注意的是当我们自己需要打印多个值,又不想每一个值下面进行打印觉得麻烦,用print(x,x,x,x)打印出来的都是最近打印出来的一个值,而不是自己所需要的每个不同值。默认换行的符号为\n,当我们不需要换行时,在print(x,end=" ")此时便能得到同行的情况。
2.输出
input() 内置函数从标准输入读取文本,默认的标准输入是键盘。
首先输入print("请输入:”)
x=input()
print("请输出的结果是:”)
为了把与下面的那个字符串进行拼接起来我们加入一个f,完整的表达为
print(f"请输出的结果是:{x}”)
对于控制台打印的结果我们认为应该是将两个print打印出来,可实际上的结果只打印了第一个,第二个print等x=input()进行运行完成才能运行
此图表示把x=input()进行注释与下面的图进行对比,大家能直观的看到差别
对x=input函数运行
input也能直接进行打印,但相比print又多一个在程序台输入的功能
对于我自己理解的有一些问题是print打完是连接在一起,而添加end=" ”才会进行换行。
二 条件语句(复合语句)
if +condition(表达式)
表达式大家怎样理解呢?
=a 变量位于“=”右边称为变量取值表达式
a=变量位于“=”左边称为变量赋值表达式
作为条件语句的开始,现在让我们走近条件语句
if 表达式: (:下面会有缩进,tab会是进行空格的一种使用方式)
执行体代码(1行或者多行),每一行需要对齐,不能跟if单词平级。若跟if平级则认为并不属于if语句。
1.if 后面的表达式会判定为布尔值,判定是指隐式代码bool(表达式)
if和print(6666)为一个语句,而由于print(1111)是平级属于第二个语句。
而条件语句开头我们指的复合语句是多语句构成,而上图中print(1111)则是单语句。
此图中虽然print(6666)为一个单语句,print(1111)为一个单语句,但由于没跟if语句平级,他们两条语句跟if只属于一条单语句。
2.如果布尔值判定的结果为true(0则为false),则就会执行if语句的执行体,如果为false,则不会执行if
执行体则为缩进代码,当然需要对齐。
大家思考一个问题,就是if语法执行了吗,这也是上课我们所提到的问题。
答案是执行了,如果第一个语句没有执行那么也不会执行第二个语句,只是第一个语句执行的是false使得第一个语句已经到表达式便已经执行完毕,如果是为true的话,则需要执行到执行体完成才是整个语句执行完成。
举例子:此例题问最后怎么运行和打印的结果大家可以思考一下,为前边位运算符的基础有所联系
这里出现else
与之前不同的是,虽然else是与if对齐,但是else是一条语句,if是一条语句,它们合在一起为一条语句,如果if运行则else不会运行,如果if表达式不成立,则执行else语句。
看到此题先问大家一个问题,运行这个代码最终会打印几次?
答案给到大家是两次。此语句可以单独解答,if和else是同一语句,但运行第一个就不用再运行第二个,如果第一个语句表达式为false则执行完毕,开始执行else语句。通过此题我们可以发现money满足则开始执行if语句,又因为age符合执行条件则开始执行print,而因为下一个print跟if同齐,则无论if语句是否执行到执行体运行,print都会运行,最后的结果是print(“太小了,钱虽然够了,但是年龄不够 不准吃馒头”)、(“可以买馒头吃”)
小白最易犯的错,虽然会觉得每一个语句都是单独的语句,会觉得是单独完成的,但是!!!由于“==”左边叫做取值操作,那么最近一次的取值找到,是最开始的“1”吗,并不是由于vip=3是赋值操作,最近一次的赋值会找到“vip==3”进行操作。很有可能新手小白操作会在自己输入程序时不小心将赋值搞错而将最后一大串的值给搞错。
所以此处引入“elif",由图便可作用。
关于elif和else,else作为默认选项,而elif是作为if语句避免重复检测而出现的误差而设定,
三 循环语句
作为思考题,在下一期中会得发一个结果给大家参考
首先是循环语句的大类有两种,已知循环次数和已知循环结束的条件
这里提到了arr,是一个数据容器,不作过多的引入,可以用循环语句去取出它里面的数据。
通过在一定范围内,我理解的是数据容器里使用函数for 变量 in arr就可以得到循环的数。
通过测试也可以发现确实是函数进行打印的。
arr=range()中有三个参数,第一个参数是循环到不包含结尾数,第二个参数是从开头到结尾数的上一个数,第三个参数是有多少个跨步长。
i作为变量,range作为0-9,print打印的是0-9次666,至于i是变量代表0,1,2...到9(数据容器中每一个数据),就是a=10放在这里也可以不适用它,所以此题的结果是10次666。但一般都会用到变量。
使用while函数,布尔表达式为真,最后的结果都是重复此语句而不执行第二个语句。
如果在运行过程中,可以更改变量值,使得不满足表达式,则便会停止打印。进行运行第二个语句。