python的for、while循环和if条件语句

if 条件语句

通过下图来简单了解条件语句的执行过程:


  • Python程序语言指定任何非0和非空(null)值为true,0 或者 null为false。
  • Python 编程中 if 语句用于控制程序的执行,基本形式为:
if <判断条件1,如果>    //注意加上冒号:  
   <执行语句1>elif <判断条件2,又如果>:     <执行语句2>
else <判断条件3,否则>:
     <执行语句3>ps:条件判断后,逻辑操作可以有多行。

其中elifelse均为可选。

python中条件判断主要根据缩进和冒号进行判断,假如if中的条件为True,则执行if下一行缩进的print语句,否则什么也不做。
下面的语句则添加了else条件,当if条件为True时执行后面缩进的print语句,否则执行else后面缩进的语句。

例子1: 判断 d 是否为字典,如果 d 为词典则输出 d 的值是字典

d = dict(a=1)
if isinstance(d,dict):
    print("{0} is dict".format(d))
输出结果:

py代码解析: 
1、将d赋值一个字典值为 a:1 
2、使用 isinstance() 函数 判断 d类型是否为dict类型; isinstance() 判读数据是否有指定的类型
3、根据判断d类型如果为dict类型,则会输出如上图中的结果{‘a’: 1} is dict ; .format()  传参数(字符串格式化)

例子2:根据输入正确的数字判断年龄是否已成年或是小孩

age = input("Please input your age: ")
 if age.strip():
    if age.isdigit():
         if int(age)>=18:
             print("you is a man!")
         else:
             print("你是一个成年人!")
    else:
         print("你输入的不是数字")
else:
        print("你输入的只有空格")


ps:注意格式的缩进,if 和 else 的缩进。

py代码解析: 

1、将age设置一个 input函数,根据input输入的信息进行下列的判断打印对应的消息 ;input()  用户交换函数,输入后强制转换字符串类型
2、根据输入的信息判断的结果如上面4张图 
3、 上面用到的 strip()函数,用于字符串过滤空格; isdigit()函数,判断输入的信息是否为数字 ;int() 函数,强制类型转换,转换成整型
4、 这里使用了多层 if….else.. 的逻辑关系

例子2:判断输入的值是正数还是负数:

下面的语句中添加了elifelse条件。
if条件为True时执行后面缩进的print语句,剩余的elifelse均不执行。
if条件为False时执行elif语句,当elif条件为True时,执行其后面缩进的print语句,剩下的else不执行。
ifelif条件均为False时,执行else后面缩进的print语句。

num = input("please input a number: ")
if int(num)>0:
    print("{0}是正数".format(num))
elif int(num)<0:
    print("{0}是负数".format(num))
else:
    print("你输入的数字为{0}".format(num))

py代码解析: 

1、将num设置一个 input函数,根据input输入的信息进行下列的判断打印对应的消息 ;
2、根据输入的值判断的结果如上面3张图 
3、上面用到的 int()函数,用于将输入的值转换为整型 
4、这里使用了 if..elif..else.. 的逻辑关系


for循环的使用:

for循环的语法格式

for item in sequence:
    执行语句

例子1:计算1-10的和

sum = 0
for i in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]:
    sum += i
print(sum)

-----------
55

例子2:使用range()函数可以生成整数序列。

for i in range(1,5):
   print(i)
-----------
1
2
3
4
根据上面输出可以看到:
range()函数输出的序列包含左面数字,不包含右面数字。

 
 
例子3:根据for循环和range函数实现乘法口诀。
代码思路
  • 根据乘法口诀的特点,a表示乘号前的数字,b表示乘号后的数字。
  • b总是和它所在的行数相等。
  • a是变化的,但变化范围总是从1至b。
for b in range(1, 10):
    for a in range(1, b+1):
        print("{0} x {1} = {2}\t".format(a, b, a*b), end="")
    print()

py代码解析:

1、用到了end"",可以将回车 换成 空格,然后再打印一次就会变成阶梯型的九九乘法表了。
2、\t   控制字符,制表符,Tab键


while循环的使用:

Python 编程中 while 语句用于循环执行程序,只要条件满足就不断循环,直到条件不满足时才退出循环,以处理需要重复处理的相同任务。

如下图

1、while循环语法结构:

while 的基本形式

while <判断条件>:

      执行语句(逻辑操作)........

ps:条件判断后的,逻辑操作可以有多行。

例子:循环打印出1~100的结果

a = 100
while a >= 1:
    print(a)
    a -= 1

py代码解析: 

1、将a赋值100 
2、使用while循环结构,当a>=1时开始循环 
3、打印出a的值,每次打印a都减去1,因为首次输入为100,后续每次结果减1,99、98、97如此类推打印 
4、输出结果为1到100的值

while、for、if 循环的组合使用

例子1:死循环执行,例如循环打印成绩是否合格

score = 59
while True:
    if score > 60:
        print("you passed")
    else:
        print("不及格,请准备补考!")

py代码解析: 

1、将score赋值59 
2、使用while判断值为True时,根据下面if的条件输出结果 
3、score赋值为59,输入结果会不断打印”不及格,请准备补考!”,会导致死循环

注意: 

1、如果需要使用到死循环,while 1: 会比while True: 效率高 
2、使用break和continue可以解决死循环的问题: 
break        #中断,用于满足条件就停止循环 
continue   #停止,用于在不满足条件时候提示重新输入等,继续循环执行到满足为止

例子2:判断年龄是否已成年或是小孩,如果输入有误则提示继续输入:

while 1:
 age = input("please input your age: ")
 if age.strip():
     if age.isdigit():
         if int(age) >= 18:
             print("你是一个成年人")
             break
         else:
             print("你是小孩")
             break
     else:
         print("你输入的不是数字, 请重新输入:")
         continue
 else:
     print("你输入的只有空格, 请重新输入:")
     continue

py代码解析: 

1、使用continue,在输入为空格或不是数字的情况下会提示让重新输入,继续循环工作 
2、使用break,当满足条件正确后则会结束循环并打印结果

五、总结 

1、学习了for、if、while的语法使用,在实际情况中嵌套使用 
2、在处理死循环语句中,可以用到break和continue。
break用于满足条件后退出;continue用于不满足条件,则继续执行循环 
3、end    不换行,将回车 转换 为空格




猜你喜欢

转载自blog.csdn.net/qq_39407518/article/details/79822498