分支循环
1.if 结构
if一共有五种结构,前面四种比较基础,最后一种稍微炫酷一点。
1.判断一个条件,如果这个条件成立,就执行其包含的某条语句或某个代码块。
if 3<5:
print("1")
print("2")
print("3")
2.判断一个条件,成立则执行其包含的某个代码块,不成立就执行另外的某条语句或者某个代码块。
if "love"=="study":
print("I Love Study")
else:
print("I Love Sleep")
3.判断多个条件,第一个不成立判断第二个,第二个不成立判断第三个,一直进行下去。
score=input("请输入你的分数")
score=int(score)
if 0<=score<60:
print('D')
elif 60<=score<70:
print('C')
elif 70<=score<80:
print('B')
elif 80<=score<90:
print('A')
4.第四种情况是在第三种的基础上,如果前面条件都不成立,执行某条语句。
score=input("请输入你的分数")
score=int(score)
if 0<=score<60:
print('D')
elif 60<=score<70:
print('C')
elif 70<=score<80:
print('B')
elif 80<=score<90:
print('A')
else:
print('请输入正确分数!')
5.第五种格式为: 条件成立时执行的语句 if condition else 条件不成立时执行的语句
age=18
print('欢迎您')if age<18 else print('未满18岁禁止访问')
2.循环结构
1.while结构
while(条件为真)一直执行下面的代码块。
i=1
sum=0
while i<10000000:
sum+=i
i+=1
print(sum)
使用break语句可以立刻跳出一层循环,不执行break后面的语句。
使用continue语句可以跳出本轮循环,但是不会终止循环,而是进行下一次循环。
i=0
while i<10:
i+=1
if(i%2==0):
continue
print(i)
使用else语句会在循环条件不为真的时候,else语句执行。break语句是直接跳出循环,如果break和else在同一段代码块里,那么break跳出之后else并不会执行。
i=1
while i<5:
print(i)
if(i==2):
break
i+=1
else:
print("循环条件不为真")
while——else这样的设计主要是为了检测循环退出的情况。
day=1
while day<=7:
answer=input("今天好好学习了吗")
if answer!='yes':
break
day+=1
else:
print("很棒!你已经坚持了七天打卡!")
3.循环嵌套
打印9*9乘法口诀表:
print里的逗号的作用是将每个print的参数(即要输出的表达式)连接在一起,以空格作为分隔符。在这段代码中,逗号使得每次循环打印的结果都在同一行上,以空格分隔。
end参数的作用是指定print函数输出结束时要使用的字符串。默认情况下,end参数的值是"\n",(换言之,print函数默认自动换行了)即换行符,表示每个print函数输出后都会换行。但在这段代码中,end参数被设置为" ",表示每个print函数输出后会使用空格作为结束符,而不是换行。
i=1
while(i<=9):
j=1
while j<=i:
print(j,'*',i,'=',i*j,end=" ")
j+=1
print()
i+=1
我们再来举一个例子说明print函数里end参数的作用:
i=1
while i<5:
print(i,end='-')
i+=1
此时,输出结果为1-2-3-4-
无论是break语句还是continue语句都只能跳出一层循环。
4.for循环
for循环语法为: for 变量 in 可迭代对象: statement(s)
s='lovePython'
for each in s:
print(each)
使用while循环是否可以实现呢?可以,但是需要用到后面知识。
s='lovePython'
i=0
while i<len(s):
print(s[i])
i+=1
如何计算1+2+3+4+...+10000000?
这时我们必须使用range函数。range是经常和for循环出生入死的好兄弟,作用是生成一个整数序列。
range函数的基本语法是:
range(start, stop, step)
其中,start表示序列的起始值(默认为0),stop表示序列的结束值(不包括该值),step表示序列的步长(默认为1)。
range函数生成的序列是一个不可变的序列类型,可以通过list函数将其转换为列表类型。
下面是几个示例:
range(stop):生成一个从0开始,到stop-1结束的整数序列。
for i in range(5):
print(i)
range(start, stop):生成一个从start开始,到stop-1结束的整数序列。
for i in range(1, 6):
print(i)
range(start, stop, step):生成一个从start开始,到stop-1结束的整数序列,步长为step。
for i in range(1, 10, 2):
print(i)
接着我们回来看range函数在数字求和中的应用
sum=0
for i in range(0,10000001,1):
sum+=i
print(sum)
我们再来看最后一个例子:打印2-10内的所有素数,如果不是素数,请你将其分解(分解成一种形式即可)
for n in range(2,11):
for x in range(2,n):
if n%x==0:
print(n,'=',x,'*',n//x)
break
else:
print(n,'是一个素数')
解释下怎么判断2是素数的:对于2而言,外层n是2,内层x是从2到小于2,这里面是没有元素的,因此第二层循环代码块是不执行的,那么就执行else语句,因此输出2是一个素数。