小甲鱼python07-09分支循环

 

07

 

0.if not(money < 100):上边这行代码相当于?

if money>=100

 

  1. 1.assert 的作用是什么?
  2. assert “断言”,当这个关键字后边的条件为假的时候,程序自动崩溃并抛出 AssertionReeor

 

2.假设有x=1,y=2,z=3,请问如何快速将三个变量的值相互交换?

x,y,z=1,2,3

x,y,z=z,y,x

print(x,y,z)

 

3.你听说过成员资格运算符吗?

Python 有一个成员资格运算符:in,用于检查一个值是否在序列中,如果在序列中返回True,否则返回False
>>> name ="小甲鱼"
>>> '鱼' in name
True
>>> '哈哈' in name
False

 

动手

0.按照100分制,90分以上成绩为A,80到90为B,70到80为C,60到70为D,其余为不及格

注意:三元操作符   small = x if x < y else y

自己写的代码还是很Low

while True:
    temp=input("chengji")
    while temp.isspace() or not temp.isdigit():
        temp =input("chongxinshuruchengji")
    a=int(temp)
    if a>=90:
        print('A')
    elif a>=80 and a<90:
        print('B')
    elif a>=70 and a<80:
        print('C')
    elif a>=60 and a<70:
        print('D')
    else:
        print('不及格')
附加:
temp = input("请输入分数:")
score = int(temp)
while score > 100 or score <0:
    temp = input("输入错误,请重新输入")
    score = int(temp)
if 90 <= score <= 100:
    print("A")
elif 80 <= score < 90:
    print("B")
elif 70 <= score < 80:
    print("C")
elif 60 <= score <70:
    print("D")
else:
    print("不及格")

1.转换成三元操作符

x,y,z =6,5,4

if x<y:

  small=x

  if z<small:

    small=z

elif y<z:

  small=y

else:

  small=z

 

small = x if x<( y if y<z else z) else ( y if y<z else z)

-----------------------------------------------------------------------------------------

09

知识点:

1、while 条件 :

            循环体

当条件为真时,执行循环体;否则跳出循环;

2、for  目标 in 表达式 :

       循环体

目标:迭代变量,类似c语言里经常用到的次数i,但要注意的是i只从表达式(列表里)抽取元素,不受循环体里影响,下面举例说明。

循环体:列表,类似数组。

>>> name="isabel"
>>> for i in name:
	print(i,end='*')

i*s*a*b*e*l*
>>> member=['isabel','light','l']
>>> for i in member:
	print(i,len(i))#i代表列表中每个元素,相当于c语言中member[i],第一个元素是member[0]

isabel 6
light 5
l 1
>>> member=['isabel','light','l']
>>> for i in member:
	print(i,len(member))#len(member)返回member列表中元素个数

isabel 3
light 3
l 3
>>> 

 3、range(start,stop,step)#默认step=1

>>> range(5)
range(0, 5)
>>> list(range(5))
[0, 1, 2, 3, 4]
>>> for i in range(5):
	print(i)

0
1
2
3
4
>>> #range默认从0开始。range(5),5代表截止到的元素,但其实真正能到的是它前一个元素
>>> for i in range(2,7):
	print(i)

2
3
4
5
6
>>> #range(2,7)代表从2到7,i代表里面每个元素;
>>> for i in range(1,10,3):
	print(i)

1
4
7

4、break

作用:跳出循环

5,continue

作用;跳出本轮循环,开启下一轮循环

>>> for i in range(1,10):
    if i%2!=0:
        print(i)
    i+=2
    print(i)

1
3
4
3
5
6
5
7
8
7
9
10
9
11
>>> for i in range(1,10):
    if i%2!=0:
        print(i)
        continue
    i+=2
    print(i)

1
4
3
6
5
8
7
10
9

对比可看出,加continue后后面循环不再执行,i再往后移动一个元素

--------------------------------------------------------------------------------------------------------

课后练习动动手:

1、设计一个验证用户密码程序,用户只有三次机会输入错误,不过如果用户输入的内容中包含"*"则不计算在内。

我的代码:错误!将两个字符串一个个比较了

正确代码:

count = 3
password = 'FishC.com'

while count:
    passwd = input('请输入密码:')
    if passwd == password:
        print('密码正确,进入程序......')
        break
    elif '*' in passwd:
        print('密码中不能含有"*"号!您还有', count, '次机会!', end=' ')
        continue
    else:
        print('密码输入错误!您还有', count-1, '次机会!', end=' ')    
    count -= 1
1.编写一个程序,求 100~999 之间的所有水仙花数。
如果一个 3 位数等于其各位数字的立方和,则称这个数为水仙花数。例如:153 = 1^3 + 5^3 + 3^3,因此 153 就是一个水仙花数。 
我的代码:
for i in range(100,1000):
    sum=0
    x=i
    while x!=0:
        r=x%10
        sum=sum+r**3
        x=x//10
    if sum==i:
        print(i)
小甲鱼代码:

for i in range(100, 1000):
    sum = 0
    temp = i
    while temp:
        sum = sum + (temp%10) ** 3
        temp //= 10         # 注意这里要使用地板除哦~
    if sum == i:
        print(i)


2.三色球问题
有红、黄、蓝三种颜色的球,其中红球 3 个,黄球 3 个,蓝球 6 个。先将这 12 个球混合放在一个盒子中,从中任意摸出 8 个球,编程计算摸出球的各种颜色搭配

我的代码

i=0
for red in range(0,4):
    for yellow in range(0,4):
        for blue in range(0,7):
            if (red+blue+yellow==8):
                i+=1
                print("第",i,"种可能")
                print("红色球数目为:",red,"黄色球数目为:",yellow,"蓝色球数目为",blue)
    
                
                

小甲鱼代码

print('red\tyellow\tblue')
for red in range(0, 4):
    for yellow in range(0, 4):
        for blue in range(2, 7):
            if red + yellow + blue == 8:
                print(red, '\t', yellow, '\t', blue)

其中\t是横向制表符

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值