标签(空格分隔): 编程语言 python
1.if
number = 100
guess_number = int(input('guess number:'))
if guess_number == number:
print ('Bingo')
elif guess_number > number:
print ('think smaller')
else:
print ('think bigger!')
满足if的条件就print ('Bingo'),不满足则跳过;
满足elif的条件就......,不满足就跳过;
如果if和elif的条件都不满足,就执行else下面的代码。
图中代码要注意int(input)这里,针对希望写入数字时,就要使用int给转义成数字格式,否则默认input是字符串,执行代码时会报错。
满足else的执行结果
满足elif的执行结果
满足if的执行结果
menu = 'A','C','D'
for i in menu:
if i == 'A' or 'C':
print ('aaa')
else:
print ('bbb')
if i == 'A' or 'C' 这个从表面意思看可能的判断如果i等于A或者C的话,就print aaa,但其实不是这样的,这个C的部位即使不是C,是任意数据都表示为数字1(True),所以实际意思是当 i 等于A或True就会print aaa,C这个部位存在任意数据就相当于一直为True,所以可以看到执行结果就是一直print aaa
menu = 'A','C','D'
for i in menu:
if i == 'A' or 'any':
print ('aaa')
else:
print ('bbb')
可以看到or 后面是任何数据类型,都为True。
menu = 'A','C','D'
for i in menu:
if i == 'A' or i == 'any':
print ('aaa')
else:
print ('bbb')
if i == 'A' or i == 'any' 这表示相当于判断等于A或any就print aaa
menu = 'A','C','D'
for i in menu:
if i == ('A' or 'any'):
print ('aaa')
else:
print ('bbb')
加括号的方式来写也可以。
2.while
2.1 无线循环
count = 0
while True:
print ('count',count)
count += 1
当一直为True时,也就是一直为真,就会执行count +=1(相当于count = count +1),每加一次1就赋值给count,并打印出来。
只是一瞬间数字就加到了240529,这里只能强制停止循环,否则会一直加下去。
2.2 break
umber = 100
while True:
guess_number = int(input('guess number:'))
if guess_number == number:
print ('Bingo')
break
elif guess_number > number:
print ('think smaller!')
else:
print ('think bigger!')
If条件成立的话就print,然后break会跳出while循环;
否则就一直while循环
2.3 设置常事限制次数
number = 100
count = 0
while True:
if count ==3:
print ('time out')
break
guess_number = int(input('guess number:'))
if guess_number == number:
print ('Bingo')
break
elif guess_number > number:
print ('think smaller!')
else:
print ('think bigger!')
count += 1
我们通过一个变量count来进行计数,初始值为0
尝试一次,就执行一次count +=1,当满足count等于3时(限制次数为3),就通过break结束while循环。
2.4 while条件修改
number = 100
count = 0
while count<3:
guess_number = int(input('guess number:'))
if guess_number == number:
print ('Bingo')
break
elif guess_number > number:
print ('think smaller!')
else:
print ('think bigger!')
count += 1
else:
print ('time out!')
删除标题3中的if count == 3这块语句,直接在while中定义,当count<3时,就执行while语句,这样就减少并优化了代码,执行结果是一样的。
2.5 while与else,选择性退出循环
number = 100
count = 0
while count<3:
guess_number = int(input('guess number:'))
if guess_number == number:
print ('Bingo')
break
elif guess_number > number:
print ('think smaller!')
else:
print ('think bigger!')
count += 1
if count ==3:
confirm = input('time limited,continue or not...please choose y or n:')
if confirm != 'n':
count = 0
else:
print ('time out!')
当while的条件成立时,就运行while下面的子代码;
如果while的条件不成立,就运行最下面else的代码。
如果break就不会执行下面任何代码了,包括else。
同时代码中还设立了选择性退出的语句,如果if count ==3,就使用y和n来进行选择是否继续循环,只要输入的不是n,就继续循环; 继续的话就将count清0,这样while循环条件继续成立就可以继续循环。
如果选择n的话,因为count已经等于3了,不满足while条件,就不会再循环了,就会执行下面的else代码。
可以看到选择y后,还能继续去guess,选择了n就执行了下面的else代码;
2.6 For循环
- 循环数字范围
for i in range(10):
print ('loop:',i)
For循环,每循环一次就将当前循环的值赋值给i。
Range就是范围的意思,根据括号中的10,就是0到9,从0开始,一共10个数字。
i是一个名称,in会将0到9循环的赋值给i
print会将每一个轮询的内容打印出来,直到轮询结束。
- for替代while
number = 100
count = 0
for i in range(3):
guess_number = int(input('guess number:'))
if guess_number == number:
print ('Bingo')
break
elif guess_number > number:
print ('think smaller!')
else:
print ('think bigger!')
else:
print ('time out!')
最多能for循环3次,如果for循环完成就会执行else代码;
如果没有执行完成for循环,就break,下面就不会执行else代码了。
- 步长
for i in range(0,10,2):
print ('loop:',i)
0,10表示定义从0到10这个范围数字,然后对这个范围进行循环;
2表示步长,也就是每隔2个数字循环一次。
执行结果为每隔2个循环一次,没有循环到10,是因为最后一个数字不进行循环,也就是说实际数字范围是到9,不满足步长2的循环,所以最终只循环到了8。
- pycharm的断点测试
从图中可以看到行数的右边,代码的左边默认是空的,没有任何标记。
通过使用鼠标左键在每一行标的右边一次进行点击,点击后就会出现红点。
在工具栏中找到debug图标,然后点击(在当前file文件右键中也可以找到debug)
点击debug后,被标记断点的地方,颜色就会改变,可以看到除了121行,其他行都是红色,121行之所以颜色不同,是表示当前代码卡在121行,该行代码还没有执行。
点击debug以后,在pycharm工具下方会弹出该窗口
注意图中圈起来的部分,一个是箭头,一个是Debugger,当前我们处于Debugger窗口
点击一下箭头表示执行当前代码行(121行)
点击箭头后可以看到121行,代码右边多处来一个信息,i:0表示当前i等于0的意思。
然后第122行代码颜色又变了,表示当前代码卡在第二行,还没有执行。
所以debug功能是非常强大的,可以通过该方式一步一步的去查看我们的代码每步是如何执行的,来判断我们的代码是否正确执行; debug是一个非常好用的排错功能。
从pycharm下面的Debugger窗口也可以看到执行第一步后的一些信息,可以看到i={int}0,表示当前的i等于0,i属于int格式。
切换到Console窗口,然后不断的去点击箭头来观察代码执行的每一步的结果,这样就可以判断执行代码的每一步是否正确。
- continue
for i in range(0,10):
if i <3:
print ('loop:',i)
else:
continue
print ('test')
continue用来跳出本次循环,执行下一次循环;也就是说执行continue后,下面的代码就不会再执行,根据循环执行下一次循环。
设立if条件<3时,打印一次 i 和test,所以当 i 等于3时,if条件就不满足了,就会执行else中的continue,接下来的循环就不会不会打印 i 对应的值,也不会打印test了。
- 嵌套循环
for i in range(0,10):
if i <3:
print ('外循环---',i)
for m in range(10):
print ('--',m)
每一个大循环中会有10个小循环
10*10,一共循环了100次
for i in range(0,10):
if i <3:
print ('外循环---',i)
for m in range(10):
print ('--',m)
if m >= 3:
break
设立内循环停止循环的条件,当大于等于3时,就停止循环。
debug的箭头的含义:
step into:单步执行,遇到子函数就进入并且继续单步执行(简而言之,进入子函数);
step over:在单步执行时,在函数内遇到子函数时不会进入子函数内单步执行,而是将子函数整个执行完再停止,也就是把子函数整个作为一步。有一点,经过我们简单的调试,在不存在子函数的情况下是和step into效果一样的(简而言之,越过子函数,但子函数会执行)。
step out:当单步执行到子函数内时,用step out就可以执行完子函数余下部分,并返回到上一层函数。
下面以 pycharm IDE 为示例作简要说明:
点击 pycharm 右上部爬虫按钮进入调试状态,程序在第14行断点处停止,按 F5(step into)进入 add() 函数,按 F7(step out) 执行完add()函数余下部分,返回入口函数 debug_test() 继续执行,按 F6(step over) 直接将 divide() 函数执行完。最后单步执行至入口函数结束。