《python训练营学习打卡task2》

目录

1.学习知识点概要

2.内容

3.问题与解答

4.思考与总结


 一、学习知识点概要

二、学习内容

1.位运算补充

原码:就是其二进制表示(注意,最高位是符号位)。

00 00 00 11 -> 3
10 00 00 11 -> -3


反码:正数的反码就是原码,负数的反码是符号位不变,其余位取反(对应正数按位取反)。

00 00 00 11 -> 3
11 11 11 00 -> -3

补码:正数的补码就是原码,负数的补码是反码+1。

00 00 00 11 -> 3

11 11 11 01 ->-3

符号位:最高位为符号位,0表示正数,1表示负数。在位运算中符号位也参与运算。

按位左移:num << i 将num的二进制表示向左移动i位所得的值。


00 00 10 11 -> 11
11<<3
---
01 01 10 00 ->88

按位右移: 

num >> i 将num的二进制表示向右移动i位所得的值。


00 00 10 11 -> 11
11 >> 2
---
00 00 00 10 -> 2

2.循环语句、条件语句

if语句:

temp = input('请输入成绩:')
source = int(temp)
if 100 >= source >= 90:
    print('A')
elif 90 > source >= 80:
    print('B')
elif 80 > source >= 60:
    print('C')
elif 60 > source >= 0:
    print('D')
else:
    print('输入错误!')

for循环: 

#如果只要第一个出现在1500至2700之间的符合条件的数字
for i in range(1500,2701):
    if (i%7==0)&(i%5==0):
        print(i)
        break
       

#enumerate用这个函数就会生成两个东西 两个对象并行循环
'''
0              1      2      3   这是i
1500         1501   1502   1503  这是j
第一次循环 第二次


'''
for i,j in enumerate(range(1500,2701)):
    #i是从0,1,2,,,到1200。基于刚刚的题目再加一个为偶数的条件(只需要输出偶数)
    if (j%7==0)&(j%5==0)& (i%2==0):
        print(j)
        

 pass语句:

#pass语句
for letter in 'Runoob': 
   if letter == 'o':
      pass
      print ('执行 pass 块')
   print (letter)

assert关键词: 

'''
#python assert断言的作用
python assert断言是声明其布尔值必须为真的判定,如果发生异常就说明表达示为假。可以理解assert断言语句为raise-if-not,用来测试表示式,其返回值为假,就会触发异常。
>>assert 1==1
>> assert 1 == 2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AssertionError
'''
>>assert 2+2==2*2
>>assert len(['my boy',12])<10
>>assert range(4)==[0,1,2,3]
>>> mylist = ['item']
>>assert len(mylist) >= 1
>>mylist.pop()
'item'
>>assert len(mylist) >= 1
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AssertionError

 3.异常处理

 关于try语句:

try:
     <语句>
 
except Exception:
 
      print('异常说明')

try:
     <语句>
 
except <异常名1>:
 
      print('异常说明1')
 
except <异常名2>:
 
      print('异常说明2')
 
else:
 
      <语句>  # try语句中没有异常则执行此段代码 

 三、问题与思考

#编写一个程序查找那些既可以被7整除又可以被5整除的数字,介于1500和2700之间
#python取左不取右
#两个条件之间要加括号
#如果想让它们之间空一个格子,就这样引号里面打一个格子。
for a in range(1500,2701):
    if (a%7==0) and (a%5==0):
        print(a,end=' ')
#龟兔赛跑游戏
'''
乌龟与兔子进行赛跑,跑场是一个矩型跑道,跑道边可以随地进行休息。乌龟每分钟可以前进3米,兔子每分钟前进9米;兔子嫌乌龟跑得慢,觉得肯定能跑赢乌龟,于是,每跑10分钟回头看一下乌龟,若发现自己超过乌龟,就在路边休息,每次休息30分钟,否则继续跑10分钟;而乌龟非常努力,一直跑,不休息。假定乌龟与兔子在同一起点同一时刻开始起跑,请问T分钟后乌龟和兔子谁跑得快(大写的摘)
'''
T=input()
T=int(T)
t=0
rabit=0
turtle=0
stop=False
timer=0
if(T>0):
    while(t<T):
        if(t%10==0):
            if(rabit>turtle):
                if(timer==30):
                    timer=0
                    stop=False
                stop=True
                timer+=1
        if(stop==False):
             rabit+=9
        turtle+=3
        t+=1
    if(turtle>rabit):
        print("@_@ "+str(turtle))
    elif(turtle<rabit):
        print("^_^ "+str(rabit))
    else:
        print("-_- "+str(rabit))

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值