python全栈学习第四天
- 1. if
- 2.if - else
- 3.if - elif -else
- 4.if嵌套
- 总结:for循环和while循环的选择
- 课后习题
- 读程序,总结程序的功能
- 一、求1到100之间所有数的和、平均值
- 二、计算1-100之间能3整除的数的和
- 三、计算1-100之间不不能被7整除的数的和
- 1. 求斐波那契数列列中第n个数的值:1,1,2,3,5,8,13,21,34....
- 2.判断101-200之间有多少个素数,并输出所有素数。判断素数的⽅法:⽤一个数分别除2到sqrt(这个数),如果能被整除,则表明此数不不是素数,反之是素数
- 3.打印出所有的⽔水仙花数,所谓⽔水仙花数是指⼀一个三位数,其各位数字⽴立⽅方和等于该数本身。例例如:153是⼀个⽔水仙花数,因为153 = 1^3 + 5^3 + 3^3
- 4.有⼀一分数序列列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列列的第20个分数 分子:上⼀一个分数的分⼦子加分⺟母 分⺟母: 上⼀个分数的分⼦子 fz = 2 fm = 1 fz+fm / fz
- 5. 给⼀个正整数,要求:1、求它是⼏位数 2.逆序打印出各位数字
1. if
“”"
结构:
if 条件语句:
满足条件要执行的代码段
“”"
age = 10
if age >= 18:
print(‘成年’)
print(’=====’)
2.if - else
“”"
结构:
if 条件语句:
代码段1
else:
代码段2
执行过程:先判断条件语句的结果是否是True, 如果是True就执行代码段1。
如果是False就执行代码段2
“”"
#要求成绩大于等于60打印及格,否则打印不及格
score = 85
if score >= 60:
print(‘及格’)
else:
print(‘不及格’)
print(’====’)
3.if - elif -else
“”"
结构:
if 条件语句1:
代码段1
elif 条件语句2:
代码段2
elif 条件语句3:
代码段3
…
else:
代码段4
执行过程: 先判断条件语句1是否成立,成立就执行代码段1;不成立才去判断条件语句2是否成立,成立就执行代码段2;
不成立就去判断条件语句3是否成立… 当前面所有的条件语句都不成立,才执行else后边的代码段4
注意:elif可以根据情况有一个或者多个;最后的else可以省略
“”"
#如果年龄在18岁以下打印未成年,18岁到28岁打印青年,28到50最打印中年,50岁以上打印老年
age = 26
if 0 < age < 18:
print(‘未成年’)
elif age <= 28:
print(‘青年’)
elif age <= 50:
print(‘中年’)
elif age > 50:
print(‘老年’)
else:
print(‘年龄不正确!’)
if 0 <= age < 18:
print(‘未成年’)
elif 18 <= age <= 28:
print(‘青年’)
elif 28 < age <= 50:
print(‘中年’)
else:
print(‘老年’)
4.if嵌套
#判断一个数是否是偶数,如果是就打印偶数,否则打印奇数。如果是偶数再看这个数是否能被5整除
number = 82
if number & 1 == 0:
print(‘偶数’)
if number % 5 == 0:
print(‘这个偶数可以被5整除’)
else:
print(‘这个偶数不能被5整除’)
else:
print(‘奇数’)
“”"
python中循环结构有两个: for和while循环
for循环:
1.for循环语法:
结构:
for 变量 in 序列:
循环体
说明:
for -> 关键字
变量 -> 和变量名的要求
in -> 关键字
序列 -> 只能是容器类型的数据,例如:字符串、列表、字典、集合、元祖、迭代器、range等…
循环体 -> 需要重复执行的代码段
执行过程:让变量去序列中取值,一个一个的取,取完为止。每取一个值执行一次循环体。
(循环次数由序列中值的个数决定)
“”"
“”"
序列中的值:H e l l o
x = H print(x)
x = e print(x)
x = l print(x)
x = l print(x)
x = o print(x)
“”"
for x in ‘Hello’:
print(x)
print(’======’)
“”"
2.range函数
range(n) -> 产生0到n-1的所有的所有整数(范围), 要求n要大于0
0 1 2 3 4
range(m,n) -> 产生m到n-1的所有的整数, 要求n大于m
1 2 3 4 5 6 7
range(m, n, step) -> 从m开始,每次加setp产生下一个整数,知道n前面一个值为值
step = 2, m = 1, n = 11
1 3 5 7 9
“”"
#练习: 1+2+3+…+100
#保存最后的和
“”"
sum1 = 0
序列:1 ~ 4
x = 1 sum1 = 0 + x = 0+1
x = 2 sum1 = sum1 + x = 1+2
x = 3 sum1 = sum1 + x = 1+2+3
x = 4 sum1 = sum1 + x = 1+2+3+4
…
“”"
sum1 = 0
for x in range(1, 101):
# print(x)
sum1 += x # sum1 = sum1 + x
print(sum1)
“”"
如果for循环用来取值的变量,如果在循环体中不需要,这个变量命令的时候要求使用_来给变量命名
“”"
#打印10行 ‘’
for _ in range(10):
print('*’)
“”"
1.语法
结构:
while 条件语句:
循环体
说明:
while - 关键字
条件语句 - 除了赋值语句以外其他的表达式都可以(一般要求是一个结果是布尔的表达式)
循环体 - 重复执行的代码段
执行过程:先判断条件语句的结果是否为True,为True就执行一次循环体,执行完循环体再回头判断条件语句是否为True,
为True又执行循环体,以此类推,直到条件语句的结果为False,循环就结束
for循环永远不会产生死循环,while循环可以产生死循环
while True —> 死循环
“”"
#1+2+3+…+100
sum1 = 0
number = 1
while number <= 100:
# print(number)
sum1 += number
number += 1
print(sum1)
总结:for循环和while循环的选择
“”"
如果是遍历序列中的元素,使用for循环; 如果循环次数确定,也使用for循环;
死循环用while循环;如果循环次数不确定,使用while循环
“”"
#‘abc1234’
#[1, 23,56, 68, 90]
#{‘a’: 12, ‘b’: 100}
#要求:从控制台不断的输入数字,直到输入的数是0为止
#10 20 30 33 0
#10 0
#9 8 7 6 99 87 45 67 8 0
number = int(input(‘请输入一个数:’))
while number != 0:
number = int(input(‘请输入一个数:’))
print(‘结束’)
课后习题
读程序,总结程序的功能
numbers = 1
for i in range(0,20):
numbers = 2
print(numbers)
#程序功能:计算12222222222222222222*2的值
#即2的20次方
summation=0
num=1
while num<=100:
if (num%30 or num%70) and num%21!=0:
summation += 1
num+=1
print(summation)
##程序功能,在1~100范围内统计能被3或者7整除,且能不能被21整除的数
一、求1到100之间所有数的和、平均值
sum = 0
average = 0
for x in range(1,101):
sum += x
pass
average = sum / 100
print(“1-100之间所有数的和是:”,sum,“平均值是:”,average)
sum = 0
avergae = 0
x = 1
while x <= 100 :
sum += x
x += 1
pass
average = sum / 100
print(“1-100之间所有数的和是:”,sum,“平均值是:”,average)
二、计算1-100之间能3整除的数的和
sum = 0
for x in range(1,101):
if x % 3 ==0:
sum += x
pass
pass
print(“1-100之间能3整除的数的和为:”,sum)
sum = 0
x = 3
while x<=100:
sum += x
x +=3
pass
print(“1-100之间能3整除的数的和为:”,sum)
三、计算1-100之间不不能被7整除的数的和
sum = 0
for x in range(1,101):
if x % 7 !=0:
sum +=x
pass
pass
print(“1-100之间不能被7整除的数的和是:”,sum)
sum = 0
x = 1
while x <= 100 :
if x % 7 != 0 :
sum += x
pass
x += 1
pass
print(“1-100之间不能被7整除的数的和是:”,sum)
1. 求斐波那契数列列中第n个数的值:1,1,2,3,5,8,13,21,34…
n = int(input(“请问你要求第几个斐波拉契数 :”))
x=0
for x in range(1,n+1):
if x1:
one=1
print(one,end=’ ')
pass
elif x2:
two=1
print(two,end=’ ‘)
else :
three=one+two
two=one
one=three
print(three,end=’ ')
pass
pass
#print(three)
2.判断101-200之间有多少个素数,并输出所有素数。判断素数的⽅法:⽤一个数分别除2到sqrt(这个数),如果能被整除,则表明此数不不是素数,反之是素数
count = 0
x = 101
while x <= 200:
i = 2
while i < x0.5:
if x%i==0:
break
else:
i += 1
if i >= x0.5:
count += 1
print(x,end=’ ')
x += 1
print("\n在101-200之间,共有",count,“个素数”)
3.打印出所有的⽔水仙花数,所谓⽔水仙花数是指⼀一个三位数,其各位数字⽴立⽅方和等于该数本身。例例如:153是⼀个⽔水仙花数,因为153 = 1^3 + 5^3 + 3^3
for x in range(100,1000):
gewei = x % 10
shiwei = x //10 %10
baiwei = x // 100
if gewei3+shiwei3+baiwei**3==x:
print(x,“是一个水仙花数”)
4.有⼀一分数序列列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列列的第20个分数 分子:上⼀一个分数的分⼦子加分⺟母 分⺟母: 上⼀个分数的分⼦子 fz = 2 fm = 1 fz+fm / fz
fz = 2
fm = 1
for _ in range(2,21):
temp = fz
fz = fz + fm
fm = temp
print(“第二十项是”,fz,"/",fm)
5. 给⼀个正整数,要求:1、求它是⼏位数 2.逆序打印出各位数字
N = int(input(“请输入一个正整数 : “))
count = 0
while N > 0:
print(N % 10,end=’ ')
N = N // 10
count += 1
pass
print(”\n输入的这个正整数共有”,count,“位”)