前面我们学习的是顺序结构语句,除了结构语句,还有条件语句和循化语句
第一个if语句,if+判断条件+执行语句,如
if s>0
print(“这个数是:”,s)
这两段,如果满足if条件就执行print,如果不满足就不执行print,也就是print的这段没有意义,判断条件有多个组成可以用and or 连接
第二if语句,if:判断条件+执行语句 else+执行语句,如
s=input(“请输入数值:”)
s=int(s)
if s>0:
print(“s是正数”,s)
else:
print(“s是负数”,s)
这里意思是if的判断条件符合就执行语句,否则就执行else的执行语句,也就是非负既正
针对if语句,有一个案例,要求比较两个数。
a=input(“请输入第一个数:”)
b=input(“请输入第二个数:”)
a=float(a)
b=float(b)
if a>b:
print(“最大数是:”,a)
else:
print(“最大数是:”,b)
第三个是复杂条件语句,if+条件语句+执行语句
elif+条件语句+执行语句 elif+条件语句+执行……else+条件语句+执行语句
依次判断if的条件,不满足就下一个elif,以此类推,最后不满足就执行else
案例输入学生成绩按ABC排名
m=input("请输入学生成绩:")
m=float(m)
if m>100 or m<0:
print("输入成绩无效")
elif m>80:
print("该成绩为A")
elif m>60:
print ("该成绩为B")
else :
print("该成绩为C")
if的条件语句还有一个嵌套关系,比如
if 条件:
if 条件:
执行
elif条件:
执行
else:
执行
else:
执行
我们要注意他们的空格,把行间距调整好
while循环语句,包涵3部分
循环变量的初始化+ 循环条件 +循环变量变化
在while中,满足循环条件,程序会一直运行循环,直到循环条件不符合,才结束循环
n=input("数值:") #循环的初始化
n=float(n)
while n<3:
print(n) #循环体
n=n+1 #循环变量n的变化
print("结果是:",n)
如果输入0整个程序会出现结果:
0.0
1.0
2.0
结果是3.0
它会把012的过程也写出来,因为上面循环体中我们是print输出,所有过程都会输出出来
上面案例是有限循环,如果条件一直满足,会变成死循环,一直运行循环,下面的代码将不会运行,最为经典的就是我们忘记设置循环变量变化,i=i+1这种。
计算1+2+3+……+n的和
n=input("输入数值:")
n=int(n)
s=0
m=1
while m<=n:
s=m+s
m=m+1 #顺序不能错
print("该数值是:",s)
在循环变量中,s和m的变化公式的顺序有很大的影响,这里以s为核心,m是依次加1的,进入循环之后s也开始加1,如果s写在m式的底下,也就意味着m先加1变成2在输入到s公式中,所以sm的输入顺序很重要。
输入5个同学的成绩,s为总分,计算平均分
s=0
i=0
while i<5:
m=input("第"+str(i+1)+"个成绩:")
m=float(m)
s=s+m
i=i+1
print("平均成绩:",s/5)
这里先是给si定变量,我们要输入,可以在while语句中输入,str是将要输入的数值转换成字符串,这样我们就可以在结果中得到:第i+1个成绩。s为0,s=s+m意义为不断加m的值。
输入一个正整数,输出出去与他相反的数
n=input("n=")
n=int(n)
s=""
while n!=0:
m=n%10
s=s+str(m)
n=n//10
print(s)
例如n为123,在while中不为0,进入循环则m=3,s=3,n除10取余变为12,再次进入循环,m=2,s=32,因为s=s+str(m),最后可以循环出321
while循环的退出,当while满足循环条件之后会自动退出执行下一条语句,也可以用break中途退出。
i=0
while i<4:
print(i)
if i%2==1:
break
i=i+1
print("结果",i)
句中插入if+break,当满足if程序自动退出循环,if,break插在print输出与循环变量之间。
输入正整数,判断是否为质数
n=input("n=")
n=int(n)
m=2
while m<n:
if n%m==0:
break
m=m+1
if m==n:
print(n,"数值是质数")
else:
print(n,"数值不是质数")
m是变化量,进入while循环之后,m一直增加,与n相除,如果while一直循环到结束那m就是等于n的,就满足if中的判断条件,会输出数值是质数。如果m中途满足break的if条件,中途退出就不满足下面if,会执行else条件语句,既数值不是质数。
找出两个正整数的最小公倍数
a=input("a=")
b=input("b=")
a=int(a)
b=int(b)
if a>b:
c=a
else:
c=b
m=a*b
while c<=m:
if c%a==0 and c%b==0:
break
c=c+1
print(c)
注意:if语句和c=c+1要对齐。条件很重要,
找出两个正整数的最大公约数
a=input("a=")
b=input("b=")
a=int(a)
b=int(b)
if a>b:
c=a
else:
c=b
while c>=1:
if a%c==0 and b%c==0:
break
c=c-1
print(c)