1、if条件判断的基本形式
python中,if语句用于控制程序的执行,基本形式为:
其中,①”判断条件” 成立时(非0),则执行其后面的语句,执行内容可以是多行,以缩进来区分表示同一范围。
③ 缩进 遇到冒号 就要缩进 标准的一个缩进=4个空格,注意4个空格并不等于一个tab。python中用tab是不规范的用法,一般用4个空格。但是在pychram中tab 跟4个空格是一样的,但是在python里面是不一样的!!!!
在一个if 表达式中,即一个完整的if ...elif...elif....else...中,如果运行了其中一个条件,其他的分支条件不会再运行了!!!!
总结起来:当其中一个条件满足,其他的条件分支自动屏蔽,不会再运行!!!
上述第一个条件成立,直接执行运行结果,不会再去执行别的分支了(即使别的分支的条件也是为True)
② a 是非空类型的,就等同与 if True:,就是条件成立,直接执行if下的语句,结束。(不会再去处理else了)
if not a:判断某个变量是否为空 ,是否存在(用的非常多)
4.else 是可选语句 在判断条件不成立时,执行相关语句
说明else 不是必备的 。要不要加else,根据自己的判断逻辑和业务逻辑去自行决定。(加上else,逻辑会更完整)
总结 :python运行一个文件的时候,会查看所有顶格写的代码。一个完整的if表达式只会看某一个满足条件的语句。
什么是遍历? 就是每个元素都想看看(for 循环,遍历,迭代, 是自动播放所有列表(序列)当中的元素)
应用在哪些数据类型:字符串 列表 元组 字典 集合(可迭代的对象就可以for循环)
列表的切片 字符串的for循环
例2:元组迭代,同上述列表
1.对字典使用for循环,取到的默认是字典所有的Key
集合也可以for循环,一般不用,用列表即可。
for循环的嵌套:主要用来获取测试用例的数据
(应用:九九乘法表、排序算法(冒泡排序,选择))--------面试
1.range()函数 :用在你想重复执行多少次计算的时候,没有现存的列表可以循环,就用range()
2.for循环嵌套实例
总结:for 循环的嵌套,就是外层取一个值,内层取全部值,再返回外层。。。。依次循环。(外层一个,内层一遍)
三、while循环(没for循环用的多)
1.while循环的应用场景:没有具体的可迭代对象,没有遍历,不知道要循环多少次,不知道什么时候结束
3.执行流程:当把while循环下面的子分支执行完毕以后,程序会返回while的条件判断。就是一个加强版的if 判断
while 循环是把for循环的机制手动化了。即while循环需要手动控制
4.break:跳出循环,执行循环体之外后面的代码了(也可以用在for循环)
5.continue:跳出本次循环,执行下一次循环(也可以用在for循环)
6.pass:占坑(子语句还没设计好怎么写,就用pass代替,保持语法的完整性)
7.while循环的嵌套(外层一个,内层一遍)
Java 中的算术运算符,包括以下几种:
我们本讲要重点讲的是 “++” 和 “–”,其他的算术运算符相对比较简单直观,本讲就不花精力去讲解了,之所以要把 “++” 和 “–” 单独拿出来讲,是因为在使用他们的时候有很多坑需要开发者注意,最重要的是 “++” 和 “–” 也是面试中高频出现的面试题。
先来看 “++” 的基本使用:
代码解析:i++
是先给 i2 赋值再自身 +1 ,所以 i2 等于0,而 ++j
是先自加等于 1 之后,再赋值给 j2,所以 j2 等于 1。
++/-- 是非线程安全的,也就是说 ++/-- 操作在多线程下可能会引发混乱,例如下面代码:
如上图所示,每台机器的执行可能略有差距,但大多数情况下并不能给我们想要的真实值 200000。
“++” 操作在多线程下引发混乱的原因:因为 ++ 操作对于底层操作系统来说,并不是一条 CPU 操作指令,而是三条 CPU 操作指令——取值、累加、存储,因此无法保证原子性,就会出现上面代码执行后的误差。
如何避免 ++/-- 操作在多线程下的“误差”?
最后,因为 – 的语法和 ++ 完全一致,所以 – 的操作,请参照上面的 ++ 语法。
条件运算符(?:)也叫“三元运算符”。
布尔表达式 ? 表达式1 :表达式2
运算过程:如果布尔表达式的值为 true,则返回 表达式 1 的值,否则返回 表达式 2 的值。
在 Java 语言中使用条件语句和循环结构来实现流程控制。
其中的条件判断必须使用括号括起来不能省略。
while 当条件成立的时候执行下一条语句。
while 是先判断再决定是否执行,有可能一次也不执行,如果希望至少执行一次,可以使用 do/while。
for 循环是程序中最长使用的循环之一,它是利用每次迭代之后更新计数器来控制循环的次数。
for 循环中可使用关键字 continue,跳过后续操作,继续下一次迭代。
如结果所示,第二次循环就会跳过,执行下一次循环。
在循环中检查两个浮点数是否相等要格外小心,例如下面代码:
循环永远不会停下来,由于舍入误差,因为 0.1 无法精确的用二级制表示,所以上面代码到 0.9000001 之后,会直接跳到 1.0000001,不会等于 1,所以循环就永远不会停下来。
switch 的特点是可以判断多个条件,if 的特点是执行少量判断,它们两个刚好形成互补的关系。
可用于 case 的类型有:
switch 使用时,每个选项最末尾一定不要忘记加 break 关键字,否则会执行多个条件。
所以使用 switch 时,每个选项的末尾一定得加 break 关键字。
答:i 先赋值再运算;i 先运算再赋值。
题目解析:因为 Java 虚拟机在执行 i++ 时,把这个值有赋值给了 i,而 i++ 是先赋值再相加,所以这个时候 i 接收到的结果自然是 0 了。
答:可以正常执行,其中判断条件的括号不能省略,大括号是可以省略的(作者并不建议为了省代码的而牺牲代码的可读性)。
答:错误,while 可以单独使用。
答:编译器报错,do/while 之后必须使用分号 ;
结尾。
答:无数次,循环永远不会停下来。由于舍入误差,因为 0.1 无法精确的用二级制表示,所以上面代码到 0.9000001 之后,会直接跳到 1.0000001,不会等于 1,所以循环就永远不会停下来。
题目解析:== 运算返回的是 boolean 类型,不能使用 int 接收,所以程序会报错。
欢迎关注我的公众号,回复关键字“Java” ,将会有大礼相送!!! 祝各位面试成功!!!
JS可以阻止主线程,但是你的接口也被卡住了。另外,webworker中的importscripts()和node中的各种同步api可以阻塞它们自己的线程。但是如果线程被阻塞,你就不能在这个线程上做任何事情。堵塞主线是特别忌讳的。如果您只想暂停一段代码的执行,那么可以在不阻塞线程的情况下实现它。方法是利用发电机的暂停和恢复特性。
要了解更多信息,请阅读TJ/Co的源代码。
您应该询问为什么返回函数没有终止函数。如果循环是for(vari=0I<10i){return function},则返回函数将在这里结束。但是如果你的循环是$。每个(data,function(index,item){return value}),它只终止循环,因为return语句实际上在另一个函数体中。因此,要判断一个函数是否会被返回函数终止,需要看返回函数的位置。
JS跳出每个循环,返回到循环,返回到下一个循环,JS跳出for循环,break直接退出for循环。此循环将不再执行!继续跳出这个for循环。下次继续。return语句用于指定函数返回的值。即使函数体中有其他语句,函数执行也会停止!
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任。如有侵权/违法内容,本站将立刻删除。