2021.03.04

总结

1.if多分支 - 根据不同的条件做不一样的事情,但是要求条件之间存在:其中某一个条件成立了,另外的其他条件一定不会成立

语法:
if 条件语句1:
代码段1
elif 条件语句2:
代码段2
elif 条件语句3:
代码段3

else:
代码段N

练习:

1).根据分数对成绩进行评级:A(90 ~ 100)、B(80 ~ 89)、C(60~79)、D(60分以下),分数是有效的百分制分数

score = 30
# 方法一:
if 90 <= score <= 100:
    print('A')
elif 80 <= score <= 89:
    print('B')
elif 60 <= score <= 79:
    print('C')
else:
    print('D')

# 方法二:
if score >= 90:
    print('A')
elif score >= 80:
    print('B')
elif score >= 60:
    print('C')
else:
    print('D')

2).进校标准:分数高于500进普通班级,等级是A级进特长班

score = 492
grade = 'A'
# 进校标准:分数高于500进普通班级,等级是A级进特长班
if score > 500:
    print('进普通班级')
if grade == 'A':
    print('进特长班')

3).定义两个变量保存⼀个⼈的身⾼和体重,编程实现判断这个⼈的身材是否正常!公式: 体重(kg) / (身⾼(m)的平⽅值 ) 是否在18.5 ~ 24.9之间打印正常、偏瘦或者偏重。

height = 1.55
weight = 44
result = weight / height ** 2
if result < 18.5:
    print('偏瘦')
elif result > 24.9:
    print('偏重')
else:
    print('正常')

2.if嵌套

判断一个数是否是偶数,如果是打印’偶数’否则打印’奇数’,同时判断这个数是否是4的倍数,如果是打印’4的倍数’

num = 20
if num % 2 == 0:
    print('偶数')
    if num % 4 == 0:
        print('4的倍数')
else:
    print('奇数')

循环结构:代码只写一遍,但是可以重复执行很多次

1.for循环

语法:
for 变量 in 序列:
循环体

说明:
1)for、in - 关键字;固定写法
2)变量 - 变量名
3)序列 - 容器型数据类型的数据,例如:字符串、列表、字典、元组、集合、迭代器、生成器、range等
4)循环体 - 和for保持一个缩进的一条或者多条语句;循环体就是需要重复执行的代码

执行过程:
让变量去序列中取值,一个一个的取,取完为止,每取一个值就执行一次循环体。(序列中元素的个数决定了循环的次数)

for x in 'abc=-':
    print('+++', x)

2.range函数 - 产生一个指定范围的数字序列

range(N) - 产生[0,N)的数字序列, N必须大于0,每次数字增加1
range(M,N) - 产生[M,N)的数字序列,M < N, 每次数字增加1
range(M,N,step) - 产生[M,N)的数字序列,每次数字增加step

for x in range(5):
    print('x1:', x)

练习:写程序打印’hello’ 100遍

for x in range(100):
    print('hello')
print('=========================')

for x in range(-10, 10):
    print('x2:', x)

print('=========================')
for x in range(1, 10, 2):
    print('x3:', x)

for x in range(100, 80, -1):
    print('x4:', x)

统计100以内能被3整除数的个数

#方法一:

count = 0
for num in range(100):
    if num % 3 == 0:
        # count = count + 1
        count += 1
print(count)

#方法2:

count = 0
for num in range(0, 100, 3):
    count += 1
print(count)

计算1~100中所有能被3整除但是不能被5整除的数的和

s = 0   # 保存最后的和
for x in range(3, 101, 3):
    if x % 5 != 0:
        s += x
print('和:', s)

2.while循环

语法:
while 条件语句:
循环体

说明:
1)while - 关键字;固定写法
2)条件语句 - 任何有结果的表达式
3)循环体 - 和while保持一个缩进的一条或者多条语句;循环体就是需要重复执行的代码段

执行过程:
先判断条件语句是否为True,为True就执行循环体,执行完再判断条件语句是否为True,为True就执行循环体,…
以此类推,直到判断条件语句的时候结果为False,整个循环就结束。

#打印1-100

num = 1
while num < 101:
    print(num)
    num += 1
num = 0
while num < 10:
    print('hello')
    num += 1

for循环和while循环的选择;当循环次数不确定的时候使用while循环,否则使用for循环

pw='abc123'
  i_pw=input('请输入密码:')
  i_pw=''
  while i_pw!=pw:
  		i_pw=input('请输入密码:')

练习:写一个猜数字游戏

程序开始的时候随机产生一个100以内的数,用户通过输入的方式来猜数字,如果猜对了游戏结束,如果猜错了给出提示信息:大了、小了

from random import randint
num = randint(0, 99)    # 产生0到99的随机整数并且保存到变量num中
i_num = int(input('请输入数字(0~99):'))
while i_num != num:
    if i_num > num:
        print('大了,再小点儿')
    else:
        print('小了,再小点儿')
    i_num = int(input('请输入数字(0~99):'))
print('恭喜你!猜对了')

continue和break

continue和break只能在循环体中使用
continue: 结束一次循环(当执行循环体的时候遇continue,当次循环结束,直接进入下次循环的判断)
break:结束整个循环(当执行循环体的时候遇到break,整个循环直接结束)

for x in range(5):
    print('====')
    continue
    print('++++')
    print('----')

print('===========================')
for x in range(5):
    if x % 2:
        continue
    print(x)
x: 0~41次循环:x = 0 -> if x % 2 -> if 0 % 2 -> if False; print(x) -> print(0)2次循环:x = 1 -> if x % 2 -> if 1 % 2 -> if 1 -> if True: continue(当次循环结束)3次循环:x = 2 -> if x % 2 -> if 2 % 2 -> if False; print(x) -> print(2)4次循环:x = 3 -> if x % 2 -> if 3 % 2 -> if True: continue(当次循环结束)5次循环:x = 4 -> if x % 2 -> if 4 % 2 -> if False; print(x) -> print(4)
循环结束

0
2
4
print('======================================================')
for x in range(5):
    print('xxx')
    break
    print('hello')
pw='123456'
while true
		i_pw=input('请输入密码:')
		if i_pw==pw:
			break

使用while循环的套路

while True:
每次循环要做的事情
if 循环结束的条件:
break

else

python中完整的for循环和while循环后面都有else结构,else结构的存在不影响原循环的执行。
for 变量 in 序列:
循环体
else:
代码段

while 条件语句:
循环体
else:
代码段

当循环是因为遇到break而结束的,那么循环后面else里面的代码不会执行。
循环结束的时候不是因为遇到break,那么else后面的代码段会执行

print('============================================================')
for x in range(5):
    print(x)
    if x == 3:
        break
else:
    print('else中的代码')

基础题

1.根据输入的成绩的范围打印及格 或者不及格

num=float(input('请输入成绩:'))
if num >=60:
    print('及格')
else:
    print('不及格')

2.根据输入的年纪范围打印成年或者未成年,如果年龄不在正常范围内(0~150)打印这不是人!

age=int(input('请输入年龄:'))
if age>150:
    print('不是人!')
elif age>=18:
    print('成年')
else:
    print('未成年')

3.输入两个整数a和b,若a-b的结果为奇数,则输出该结果,否则输出提示信息a-b的结果不是奇数

a=int(input('请输入一个整数:'))
b=int(input('请输入一个整数:'))
s=a-b
if s%2!=0:
    print(s)
else:
    print('a-b的结果不是奇数')

4.使用for和while循环输出 0~100内所有3的倍数。

for x in range(3,100,3):
    print(x)
xnum = 0
while True:
    print(num)
    num += 3
    if num >= 100:
        break

5.使用for和while循环输出100~200内个位数或者十位数能被3整除的数。

for x in range(100, 201):
    if x % 10 % 3  == 0 or x // 10 % 10 % 3==0:
        print(x)
x = 100
while x < 201:
    if x % 10 % 3 == 0 or x // 10 % 10 % 3 == 0:
         print(x)
    x += 1
 
 num = 100
while True:
    if (num % 10) % 3 == 0 or (num // 10 % 10) % 3 == 0:
        print(num)
    num += 1
    if num >= 200:
        break

进阶题

1.使用循环计算1*2*3*4*...*10的结果。

result=1
for x in range(1,10):
    result*=x
    print(result)

2.统计100以内个位数是2并且能够被3整除的数的个数。

count = 0
for x in range(2, 100, 10):
    if x % 3 == 0:
        count += 1
print(count)

3.输入任意一个正整数,求他是几位数?

#注意:这不能使用字符串,只能使用循环
count = 1
num =int(input('请输入一个数:'))
while num //10 > 0:
    count += 1
    num//= 10
print('他是', count, '位数')


num = 2
count = 0
while True:
    num //= 10
    count += 1
    if num == 0:
        break

print('位数:', count)

4.打印出所有的水仙花数,所谓水仙花数是指一个三位数,其各位数字⽴方和等于该数本身。例如:153是

⼀个⽔仙花数,因为 1³ + 5³ + 3³ 等于 153。
for x in range(100, 1000):
g = x % 10
s = x // 10 % 10
b = x // 100
if g3 + s3 + b**3 == x:
print(x)

挑战题

你可能感兴趣的:(python)