9.25 总结

9.25 总结

9.22考试回顾

  1. 下面哪个选项输出的结果展示为10+20 (BC)
# A
print(10, 20, '+')     # 10 20 +
# B
print(10, 20, sep='+')      # 10+20
# C
print(10, end='+'); print(20)    # 10+20
# D
print(10, '+', '20')     # 10 + 20
  1. 下面哪个代码可以同时定义出a和b两个变量,并分别赋值为10与20 (BD)
# A
a = 10, b = 20        # python中赋值要换一行
# B
a, b = 10, 20
# C
a = (b = 20) - 10
# D
a = (b := 20) - 10
  1. 十六进制的符号集有:0 1 2 3 4 5 6 7 8 9 a b c d e f

  2. 汉字的unicode编码是从到:\u4e00 到、\u9fa5

  3. not 0的结果是True

9.22 作业

  1. 上公交车,并且可以有座位坐下
    1)输入公交卡当前的余额,
    2)只要超过2元,就可以上公交车
    3)如果车上有空座位,就可以坐下,否则站着乘车
# 方法2 :
money = float(input('公交卡余额:'))
if money > 2:
    print('上公交车')
    has_site = input('是否有座位:')
    if has_site == '有':
        print('坐着乘车')
    else:
        print('站着乘车')
else:
    print('无法乘车,余额不足')
  1. 键盘输入一个四位数 判断是否位四叶玫瑰数
    四叶玫瑰数的判断条件 各个位上的四次方的和 等于他本身
num4 = int(input('输入一个四位数 :'))
if num < 1000 or num > 9999:
    print(num,'不是四叶玫瑰数')         
else:
	num11 = num4 % 10
	num22 = num4 // 10 % 10
	num33 = num4 // 100 % 10                 
	num44 = num4 // 1000             
	if (num11**4 + num22**4 + num33**4 + num44**4) == num4:
    	print(f'{num4}为四叶玫瑰数')
	else:
    	print(f'{num4}不是四叶玫瑰')

##注: num33 = num4 // 100 % 10 这里要考虑多位数的情况,比如要是四位数,不加 % 会得到两位数,无法取得十位数

num44 = num4 // 1000 此处直接整除是因为最高就四位,所以不用取余

  1. 输入三个整数x,y,z,请把这三个数由小到大输出
x = int(input('x:'))
y = int(input('y:'))
z = int(input('z:'))
if x > y and x > z and y > z:
    print(z,y,x)
elif x > y and x > z and z > y:
    print(y,z,x)
elif y > x and y > z and x > z:
    print(z,x,y)
elif y > x and y > z and z > x:
    print(x,z,y)
elif z > y and z > x and x > y:
    print(y,x,z)
elif z > x and z > y and y > x:
    print(x,y,z)
    
# 方式2 :思路:按照对比交换两个变量的值
# 让值交换之后 x获取最大值 y是中间值 z是最小值
x = int(input('x:'))
y = int(input('y:'))
z = int(input('z:'))
if x < y:
    # 要让x和y交换位置
	x, y = y, x
if x < z:
    x, z = z, x
if y < z:
    y, z = z, y
print(z, y, x)
range功能

用来产生等差数列的,这个结果也是容器型的一个数据,是range类型的

什么叫等差数列? 数据是递增或者递减 【递增或者递减的数据的差值-步长,在整个数据序列中是一致的】

注意:range只能产生整数的等差数列

格式1range(stop结束值)
		序列中的数值是从0开始步长为1的递增到stop[不包含]的数列
		比如 range(10) ===> 0 1 2 3 4 5 6 7 8 9 
格式2: range(start起始值, stop结束值)
		序列中的数值是从start[包含]开始步长为1的递增到stop[不包含]的数列
		比如: range(1, 11) ===> 1 2 3 4 5 6 7 8 9 10
格式3range(start起始值, stop结束值, step步长)
		step为正数 表示递增的数列  start < stop
		step为负数 表示递减的数列  start > stop
		从start[包含]开始 以步长 step 递增或者递减到 stop[不包含]的数列
		比如: range(1, 11, 2) ===> 1 3 5 7 9 
		range(1, 100, 10) ====> 1 11 21 31 41 51 61 71 81 91  [可以理解为100以内 个位数为1的数据]
		range(10, 0, -2) ====> 10 8 6 4 2 

例题:

# 1.输入一个整数。计算这个数的阶乘,比如 5!=5 * 4 * 3 * 2 * 1
num = int(input('输入一个整数:'))
count = 1
for i in range(num, 0, -1):   # 5 4 3 2 1
    count *= i
print(count)                # 负数没有阶乘

# 2.求1-100中个位数是3并且是9的倍数的累加和
count1 = 0
for s in range(1, 101):
    if s % 10 == 3 and s % 9 == 0:
        count1 += s
print(count1)

# 3.求1-100中是5的倍数,并且也是3的倍数的数据的个数
count3 = 0
for c in range(1,101):
    if c % 3 == 0 and c % 5 == 0:
        count3 += 1
print(count3)
==================================
# 如果想看数据,可以加print(c)
count3 = 0
for c in range(1,101):
    if c % 3 == 0 and c % 5 == 0:
        print(c)
        count3 += 1
print(count3)
# 生成不一样的数列
# 数列中全是5的倍数,这个数列该怎么写?
for e1 in range(5, 101, 5):
    if e1 % 3 == 0:
        print(e1)
# 数列中全部是3的倍数 这个数列该怎么写?
for e2 in range(3, 101 ,3):
    if e2 % 5 == 0:
        print(e2)
# 数列中全部是15的倍数  这个数列该怎么写?[15是3和5的最小公倍数]
for e3 in range(15, 101, 15):
    print(e3)

while循环

while 条件判断:
	重复操作的代码块

重复操作,直至成功

num = 1
while num <= 10:
    print(num)
    num = num + 1  # num += 1
print('循环结束')

次数明确 用for – in --range即可

次数不明确,用while

练习

# 练习
# 1.折纸问题
    # 一张纸厚度是0.08mm,问对折多少次,达到珠穆朗玛峰的高度8848.18M
    # 注意单位换算 1m = 1000mm
num4 = 0.08
count4 = 0
while num4 <= 8848180:
    num4 *= 2
    count4 += 1
print(count4)

# 2.一个猴子吃桃子,第一天有2350个桃子,每天吃剩余桃子的一半多一个,问多少天后桃子吃完
num5 = 2350
count5 = 0
while num5 > 0:
    num5 = num5 / 2 - 1
    count5 += 1
print(count5)
beak、continue、pass

pass 是代码块占位符,代码块中不能空白的 【那块的逻辑暂时未写 可以使用pass占位】

break和continue都是应用于循环语句中的

  1. break 的作用是退出结束其所在的循环语句
  2. continue的作用是结束当前执行,回归到条件判断或者in 遍历操作的位置,检测条件是否成立或者容器是否还有数据,条件成立或者是容器中有数据,继续执行下一次,否则结束循环
写while循环的时候 这个条件实在是不知道怎么写

可以写成
while True: [死循环]
按照需求根据数据的变化使用break退出循环

# 青蛙从井底向上爬 井深10m  白天向上爬3m  晚上掉下去1m  问几天爬出来
# 重复的操作 爬+掉

deep = 10  # 井的深度
day1 = 0  # 爬的天数的记录者
while True:
    day1 += 1  # 开始爬 进行计数
    # 白天向上爬
    deep -= 3  # 注意要有判断: 白天爬出来了
    if deep <= 0:
        break  # 结束循环
    # 晚上掉下去
    deep += 1
print(day1)

在这里插入图片描述

continue 结束当前次 在判定条件是否开启下一次

需求: 打印1-10中的偶数

for e in range(1, 11):
# 打印的时候判断是否为偶数
    if e % 2 == 0:
        print(e)
print('========')

反向思维:可以判断是否为奇数 是奇数 跳过打印

for e1 in range(1, 11):
    if e1 % 2:  # 隐式布尔转换 按照布尔转换规则  非0即为True
# 跳过后面 不执行
        continue
    print(e1)

在这里插入图片描述

pass

占个位置,告诉计算机不要报错,继续执行

for ele in range(1, 100):
# 这里的内容没想好写什么  不能直接略过的
print('循环结束')

# 例如
for i in range(1,10):
    print('快乐')		# 此处没想好,可以用pass代替
print('循环结束)


continue
print(e1)


[外链图片转存中...(img-8KieTmhE-1695653653082)]

### pass

占个位置,告诉计算机不要报错,继续执行

```python
for ele in range(1, 100):
# 这里的内容没想好写什么  不能直接略过的
print('循环结束')

# 例如
for i in range(1,10):
    print('快乐')		# 此处没想好,可以用pass代替
print('循环结束)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值