2020-11-20 作业

I…if else语句

if是如果的意思,例如a,b,c,d=1,2,3,4等等数字,如果a除以2能整除,没有余数,a就是偶数。
if else就是在如果后边加了个否则,例如a,b,c,d=1,2,3,4等等数字,如果(if)a除以2能整除,没有余数,a就是偶数。否则(else)就是奇数。
a = 0
if a % 2 == 0 :
print(" 偶数 “)
else:
print(” 奇数 ")

elif == else: if
来看一个例子三种不同写法:
1.
month = int(input(‘现在的月份:’))
if 0 < month < 13:
if 3 <= month < 6:
print(‘春季’)
if 6 <= month < 10:
print(‘夏季’)
if 10 <= month < 1:
print(‘秋季’)
if 1 <= month < 4:
print(‘冬季’)
else:
print(‘我可不过这个月’)

2.这个语句看上去比第一种方法代码要多,但是他有一个有点,就是在加了else后当任意一个if条件成立,他会结束判定,直接打印输出。再看一下第一种,比如我输入的是4,那么系统会在打印输出" 春季 "后继续完成以下的所有条件判断,会减慢运行速度。

month = int(input(‘现在的月份:’))
if 0 < month < 13:
if 3 <= month < 6:
print(‘春季’)
else:
if 6 <= month < 10:
print(‘夏季’)
else:
if 10 <= month < 1:
print(‘秋季’)
else:
if 1 <= month < 4:
print(‘冬季’)
else:
print(‘我可不过这个月’)

3.这样用elif代替else if效果是相同的,但会少些一些代码。但是要注意elif前一定要有一个并列等级的if。将else和if合并写,要求你要很清楚你代码的逻辑,不能随意合并。

month = int(input(‘现在的月份:’))
if 0 < month < 13:
if 3 <= month < 6:
print(‘春季’)
elif 6 <= month < 10:
print(‘夏季’)
elif 10 <= month < 1:
print(‘秋季’)
elif 1 <= month < 4:
print(‘冬季’)
else:
print(‘我可不过这个月’)

II… while语句(当型循环)

while语句和if相似 ,不同的是while在结果为真执行完语句后会进行重新判定条件的真假,直到条件为假,否则会一直循环。这就是while循环语句。所谓假就是0、空串、或条件判断为false才会结束循环。
这里以一个打印100以内的质数为例(用的自己的逻辑,不一定是最简单的。)

判断是否是100以内

while i < 100:
j = 1
while j <= i:
# 判定不为质数,则直接跳出循环
if i % j == 0 and j != 1 and j != i:
break
else:
# 判定是否取完所有可能的因数,若未取完则j自增
if j != i:
j += 1
# 如判定取完可能因数,且上述已判定完不为质数的情况下,则可以确定该数为质数,打印输出并且跳出循环。
else:
# 1不是质数
if i != 1:
print(i)
break
# 进行下一个数的判定。
i += 1

这个例子,要求打印100以内的质数,那么先判断这个数是0-100。

这里设定i为需要判定的数,j为辅助判定因数。

i = 0

判断是否是100以内

while i < 100:

然后打印质数,这就要从质数的定义入手,质数的定义是除了1和它本身没有别的因数。那么一个数可能的因数都有哪些呢,就是从1到它本身之间的数,那就一个一个试,这里我们就设置一个辅助因数。判断这个辅助因数到底是不是因数进行取余看是否为零就可以了。那么不满足质数定义的数直接跳到下一个数就可以了。
j = 1
while j <= i:
# 判定不为质数,则直接跳出循环
if i % j == 0 and j != 1 and j != i:
break
else:
# 1不是质数
if i != 1:
print(i)
break

i += 1

作业:
1.水仙花数:

num = 100
while num < 1000:
    hundred = int(num / 100 % 10)
    ten = int(num / 10 % 10)
    a = int(num % 10)
    if hundred ** 3 + ten ** 3 + a ** 3 == num:
        print(num)
        num += 1
        continue
    num += 1

2.质数

# 用户输入数字
num = int(input("请输入一个数字: "))
 
# 质数大于 1
if num > 1:
   # 查看因子
   for i in range(2,num):
       if (num % i) == 0:
           print(num,"不是质数")
           print(i,"*",num//i,"=",num)
           break
   else:
       print(num,"是质数")
       
# 如果输入的数字小于或等于 1,不是质数
else:
   print(num,"不是质数")

3.石头剪刀布游戏

#将玩家和机器视为两个参量,机器产生随机数1-3,代表着'1':'石头','2':'剪刀','3':'布'
#然后玩家可以输入进行模拟比赛了
print('*******************begin*******************')
#先设置一个空表以及初始化infos
player_info = []
player_score = 0
infos = {'1':'石头','2':'剪刀','3':'布'}

while True:
    #控制程序可以一直比赛下去
    computer = str(random.randint(1,3))
    player = input('请选择:1-石头,2-剪刀,3-布:')
    if player not in ['1','2','3']:
        print('输入有误,请重新输入:')
        continue
    else:
        ret = (player,computer)
        player_info.append(ret)
        if ret==('1','2') or ret==('2','3') or ret=('3','1'):
            print('玩家赢了')
            player_score += 1
        elif player == computer:
            print('平局')
        else:
                print('机器赢了')
                player_score -= 1
        print('对战双方结果:玩家:%s,机器;%s'%(infos[player],infos[computer]))
        #设置结束条件
        choice = input('\n是否继续游戏?(yes/no):')
        if choice=='no':
                break
        elif choice=='yes':
            continue
        else:
            #这里还有优化的空间,后面补充如何让其跳转到——是否继续游戏
            print('输入有误!')
            continue

    print('*******************end*******************')
    index=1
    print('玩家\t\t机器\n')
    for m,n in player_info:
        print('%s\t\t%s'%(infos[m],infos[n]))
    print('总分为:%s'%player_score)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值