210121课业整理

210121课业整理

一、前情回顾

python

1、运算符

  • 数学运算符 加+ 减— 乘* 除/ 取余% 整除// 幂**

  • 比较运算符 > < == != >= <=

  • 逻辑运算符 and or not

  • 赋值运算符 = += -= *= /= %= //= **=

运算优先级排序:数学>比较>逻辑>赋值

2.分支结构

if 满足条件执行,不满足不执行

‘’’
if 条件语句:
代码
‘’’

if-else 如果xx就xx否则就xx

‘’’
if 条件语句:
代码
else:
代码
‘’’

print(100 - 25 * 3 % 4)
n = 6784
print(n / 1000 % 100)
print(n % 1000 / 100)
print(n // 100 % 10)
print(n // 10 % 100 // 10)

x = (input())    # 输入12

print(type(x))   # <class 'str'>

a = 100

b = False

print(a * b > -1)

x = 3
print(x == 3)
x += 6
print(x)

二、if多分支结构和if嵌套

应用场景 if-elif-else

‘’’
根据不同的场景执行不同的操作

1.语法:

if 条件语1:
代码1
elif 条件2:
代码2
elif 条件3:
代码3
elif 条件n
代码n
else:
代码n+1
程序结束

2.执行过程:

从上往下依次判断语句的结果是否为True,
是就执行这个if或elif所对应的代码,
执行完了,后面的代码段不再执行
else后面的代码只有在前面条件都不满足时才执行
‘’’

'''求身高体重比例是否正常
height = 1.60      weight = 60'''
result = weight / height ** 2
if 18.5 <= result <= 24.9:
    print('正常')
elif result < 18.5:
    print('偏轻')
else:                       # 不写else也可以
    print('偏重')

'''练习:输入成绩,如果输入的成绩在90分以上(含90分)输出A;
80分-90分(不含90分)输出B;70分-80分(不含80分)输出C;
60分-70分(不含70分)输出D;60分以下输出E。'''

grade = float(input('请输入分数:'))
if grade >= 90:
    print('A')
elif grade >= 80:
    print('B')
elif grade >= 70:
    print('C')
elif grade >= 60:
    print('D')
else:
    print('E')

# 考虑输入分数不在正常范围内的情况

if grade < 0 or grade > 100:
    print('不正常')
3、if嵌套
# 练习:输入一个数,
# 如果输入的数是偶数就打印'偶数', 否则打印奇数。
# 如果这个数能被4整除,还要打印'4的倍数'
num = int(input('输入一个数:'))
if num % 2 == 0:
    print('偶数')
    if num % 4 == 0:
        print('4的倍数')
elif num % 2 != 0:
    print('奇数')
    if num % 10 == 1:
        print('个位数是1')

四、for循环

1.语法:

for 变量 in 序列:
循环体
说明:for in 冒号 ----》必写固定用词
变量 -变量名自己命名
序列 -容器型数据,如:字符串、列表、元组、 集合、字典、迭代器、
生成器、range等
循环体 - 和for保持一个缩进的一条或者多条语句,需要重复执行的代码

2.执行过程

让变量去序列中取值,每取一个值执行一次循环体,取完为止
for循环的次数是由序列中的个数决定的

DRY原则(don`t repeat yourself)不要重复写代码占用空间

# 需求:把一句话打印10遍
# 方法一:复制粘贴十遍
# 方法二:
massage = ('一段话')
print(massage)
# 复制粘贴十遍
# 方法三:
for x in range(10):
    print(massage)
# 例子
for x in 'abcd':
    print('hello')
#例子2
for x in 'python':
    print(x)
    print('==')
# 练习:把+打印5次
# 方法一:
for x in '12345':
    print('+')
# 方法二:使用range函数 ---》for循环的完美搭档
for x in range(5):
    print('+')

五、range函数的使用

'''
用法1.
range(n)    - 产生[0,n)的数字范围,里面包含:0、1、2、...n-1
'''
print(range(10))      # range范围[0,10)
for x in range(10):
    print(x)
'''
用法2.
range(m,n)   - 产生[m,n)的数字范围,里面包含:m、m+1、m+2、...n-1
其中m<n
'''
# 打出-100到-1的范围
for x in range(-100, 0):
    print('x1:', x)
'''
用法3.
range(m,n,step)   --从m开始每次加step产生的数,直到n加step,没有n
'''
# 练习:-1,-3,-5,-9
for a in range(-1, -10, -2):
    print(a)
# 5, 4,3,2,1
for b in range(5, 0, -1):
    print(b)
# 练习:计算1+2+3+...+100的和
sum1 = 0
for num in range(1, 101):
    sum1 += num
print(sum1)         # 5050
'''
计算原理:
1.sum1=0
2.for循环:num取值范围是1到100
'''
# 练习:求10+20+30+...+100的和
sum2 = 0
for num1 in range(10, 101, 10):
    sum2 += num1
print(sum2)
# 练习:统计1~100中能被3整除的数的个数
# 方法一
count = 0
for num3 in range(1, 101):
    if num3 % 3 == 0:
        count += 1
print('个数:', count)       # 33
# 方法二:
count = 0
for num3 in range(3, 101, 3):
    count += 1
print('个数:', count)

六、while循环

1、语法

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

说明:

while 冒号 —为固定写法
条件语句 —除赋值语句以外的任何有结果的表达式
循环体 —和while保持一个缩进的一条或多条语句 需要重复执行

2、执行过程

不断地判断条件语句是否为True,为True就执行循环体
为False就不执行

一般在明确循环次数的情况下,用for循环更方便

循环次数不确定的情况下,使用while循环,一般手机上的App都是while循环

# 例:把'hello'输入4遍
# 方法一:
for x in range(4):
    print('hello')
# 方法二:
num = 0
while num < 4:
    print('hello')
    num += 1
    
# 练习:不断输入数据,直到输入内容为0
value = 1    #   输入非0的任意数字
while value != '0':
    value = input('请输入数字:')

七、循环关键字

**循环关键字有三个: continue break else **

1.continue 继续

只能出现在循环体中
比如在 for循环或者while循环
**作用:**直接结束当次循环,直接进入下一次循环的判断

for x in range(3):
    print('gei li giao giao')
    continue
    print('你说yes,我说 giao')

for num in range(1, 11):
    if num % 3 == 0:
        continue
    print(num)
2、break 结束

只能出现在循环体中
比如在 for循环或者while循环

**作用:**直接结束整个循环

for x in range(3):
    print('gei li giao giao')
    break
    print('你说yes,我说 giao')

while True:   # 先判断是否为true
    value = input('请输入数字:') # 描述需要执行的操作
    if value == '0':         
        break

# 练习:使用while循环,打印1~10
num = 1
while True:
    print(num)
    num += 1
    if num > 10:
        break        
3、else 另外

1)完整的for循环:
for 变量 in 序列:
循环体
else:
代码段
2)完整的while循环:
while 条件语句:
循环体
else:
代码段
注意:
else的存在不影响原来循环的执行
当循环自然死亡,就会执行else后面的代码。
当循环非自然死亡,就不会执行else

# 例子,以下就不会执行
for x in range(3):
    print(x)
    if x == 2:
        break
else:
    print('else后面的代码')
# 例子2
num = 17
for x in range (2, num):
    if num % x == 0:
        print(num, '不是质数')
        break
else:
    print(num, '是质数')

八、作业

基础题

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

    grade = float(input('输入成绩:'))
    if grade >= 60:
        print('及格')
    else:
        print('不及格')
    # 输入成绩:44
    # 不及格
  2. 根据输入的年纪范围打印成年或者未成年,如果年龄不在正常范围内(0~150)打印这不是人!

    age = float(input('请输入年龄'))
    if 150 >= age >= 18:
        print('成年')
    elif 0 < age < 18:
        print('未成年')
    if age <= 0 or age > 150:
        print('这不是人')
    # 请输入年龄-1
    # 这不是人
  3. 输入两个整数a和b,若a-b的结果为奇数,则输出该结果,否则输出提示信息a-b的结果不是奇数

    a = int(input('输入数字a:'))
    b = int(input('输入数字b:'))
    if (a - b) % 2 != 0:
        print(a - b)
    else:
        print('a-b的结果不是奇数')
    # 输入数字a:10
    # 输入数字b:4
    # a-b的结果不是奇数
  4. 使用for和while循环输出 0~100内所有3的倍数。

    # for 循环
    count = 0
    for x in range(0, 99, 3):
        count += 3
        print( count)
    # while 循环
    
  5. 使用for和while循环输出0~100内所有的偶数。

进阶题

  1. 使用循环计算1*2*3*4*...*10的结果。# 10的阶乘
sum = 10    # 10的阶乘
for num in range(1, 10):
    sum *= num
print(sum) 
# 3628800 
  1. 统计100以内个位数是2并且能够被3整除的数的个数。

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

    注意: 这儿不能使用字符串,只能用循环

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

    ⼀个⽔仙花数,因为 1³ + 5³ + 3³ 等于 153。

挑战题

  1. 判断指定的数是否是素数(素数就是质数,即除了1和它本身以外不能被其他的数整除的数)

  2. 求斐波那契数列列中第n个数的值:1,1,2,3,5,8,13,21,34… (这儿的n可以是任意正整数,可以通过输入来确定)

  3. 输出9*9口诀。 程序分析:分行与列考虑,共9行9列,i控制行,j控制列。

  4. 这是经典的"百马百担"问题,有一百匹马,驮一百担货,大马驮3担,中马驮2担,两只小马驮1担,问有大,中,小马各几匹?(可以直接使用穷举法)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值