if语句
单分支
#格式
# if 表达式:
# 代码块
x=int(input('')) #输入11
if x>10:
print(x) #输出11
#如果x大于10,输出x
双分支
#格式
# if 表达式:
# 代码块1
# else:
# 代码块2
x=int(input('')) #9
if x>10:
print(x)
else:
print(10) #10
#如果x大于10输出x,否则输出10
多分支
#格式
#if 表达式1:
# 代码块1
#elif 表达式2:
# 代码块2
#else:
# 代码块n
#如果满足表达式1则执行代码块1;如果满足表达式2则执行代码块2;否则执行代码块n
表达式
条件表达式:关系运算符
1、关系运算符用于数值的大小比较,一般用于条件表达式;
2、包括大于()、小于(<)、等于(==)、大于等于(=)小于等于(<=)和不等于(!=)六种;
3、它们都是双目运算符;
4、关系运算符运算的结果是bool型,值只有两种: False或True;
5、False代表关系不成立,True代表关系成立。
逻辑表达式
1、Python语言中提供了三种逻辑运算符:与运算(and)、 或运算(or)、非运算(not);与运算符和或运算符均为双目运算符,具有左结合性;非运算符为单目运算符,具有右结合性。
2、短路操作:在Python 中,and 和or 不一定会计算右边表达式的值,有时候只计算左边表达式的值就能得到最终结果。另外,and 和or 运算符会将其中一个表达式的值作为最终结果,而不是将 True 或者 False 作为最终结果。
3、对于 and 运算符,两边的值都为真时最终结果才为真,但是只要其中有一个值为假,那么最终结果就是假。
如果左边表达式的值为假,那么最终结果都是假,此时 and 会把左边表达式的值作为最终结果。此时就不用计算右边表达式的值,因为不管右边表达式的值是什么都不会影响最终结果。
如果左边表达式的值为真,那么最终值是不能确定的,and 会继续计算右边表达式的值,并将右边表达式的值作为最终结果。
print(False and True) #False
print(True and 2+3) #5
4、对于 or 运算符,情况是类似的,两边的值都为假时最终结果才为假,只要其中有一个值为真,那么最终结果就是真。
如果左边表达式的值为真,那么最终结果都是真,此时 or 会把左边表达式的值作为最终结果。那么右边表达式的值就不用计算了,因为不管右边表达式的值是什么都不会影响最终结果。
如果左边表达式的值为假,那么最终值是不能确定的,or 会继续计算右边表达式的值,并将右边表达式的值作为最终结果。
print(False or 1+1) #2
print(True or 1+1) #True
for语句
#格式
#for <variable> in <sequence>:
# 代码块
1、<variable>:循环变量,一般为i,j,k;
2、<sequence>:序列或者可迭代的对象(可遍历的),一般为range()。
range()函数
range0函数用于生成一系列数字,用于循环结构的遍历;
在python2中生成一个数字列表,python3中是一个可迭代对象 (可遍历的)
range(start, stop, step)
#从start开始(默认为0) ,到stop结束 (不含stop),步长为step (默认为1)
1、range(5) 等价于 range(0,5) 等价于 range(0,5,1): 0,1,2,3,4
2、range(0,10,3): 从0开始到10结束 (不含10) ,步长3: 0,3,6,9
3、range(0,9,3): 从0开始到9结束 (不含9),步长3: 03,6
4、range(10,-1,-2): 从10开始到-1结束 (不含-1) ,步长-2: 10,8,6,4,2,0
示例
n=int(input('n:'))
o=0
j=0
sum=0
quadrature=1
for i in range(1,n+1):
if i%2==0: #用判断语句
print("偶数:",i,end=';')
o+=i
else :
j+=i
print(' ') #换行
print("奇偶数和:",o+j)
for j in range(2,n+1,2): #用步长筛选偶数
print(j,end=',')
sum+=i #求和
print(' ') #换行
print("1-n的和:",sum)
quadrature*=i #n的阶乘
print("1-n的阶乘:",quadrature)
#输出结果
#n:10
#偶数: 2;偶数: 4;偶数: 6;偶数: 8;偶数: 10;
#奇偶数和: 55
#2,4,6,8,10,
#1-n的和: 50
#1-n的阶乘: 10
while语句
#格式
#while 条件表达式:
# 代码块
#辗转相除求m和n的最大公约数
m,n=eval(input('输入m和n')) #输入m和n3,6
r=m%n #求余数
while r!=0: #当余数不为零:GCD(m,n)=GCD(n,r)
m=n #新一轮的被除数m等于上一轮的除数n
n=r #新一轮的除数n等于上一轮的余数r
r=m%n #新一轮的余数
print("gcd=%d"%n) #gcd=3
for循环和while循环区别
1、for循环常用于已知循环次数的情况,或者遍历列表,字典等数据结构;
2、while循环可用于不知道循环次数,但可以通过终止条件停止循环;
3、在一定程度上两者可互相转换。
while循环求和
n=int(input()) # 10
i=1
res=0
while i<=n:
res+=i
i+=1
print(res) # 55
for循环求和
n=int(input()) #10
res=0
for i in range(1,n+1):
res+=i
print(res) # 55
break和continue区别
break语句可以跳出for和while的循环体,即直接结束循环。适用于嵌套循环中。
continue语句跳过当前循环体块儿中的剩余语句,进行下一轮循环,即跳过本次循环继续执行下一次循环。
break
i=0
while True:
i+=1
if i>5:
break
if i==3:
continue
print(i,end=',') #1,2,4,5,
continue
i=0
while True:
if i>5:
break
if i==3:
continue
i+=1
print(i,end=',') #1,2,3,
循环嵌套例子
九九乘法表
for i in range(1,10):
for j in range(1,i+1): #对外循环的每一个i执行内循环
print("%d*%d=%2d "%(j,i,i*j),end='')
print("") #末尾换行
结果
n到m间的素数
n=int(input("n:")) #1
m=int(input("m:")) #50
for i in range(n,m+1):
ok=True
for j in range(2,i): #如果i能被2到i-1之间的数整除则不是素数
if i%j==0:
ok=False
break
if ok and i!=0 and i!=1:
print(i,end=',') #2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,
欢迎指正!