天池AI训练营python基础task1

天池AI训练营python基础task1

一、运算符的类型以及优先级
1.算术运算符

操作符名称
+加法
-减法
*乘法
/除法
//整除
%取余
**

2.比较运算符
基本都是大于、小于、不等于、大于等于、小于等于、等于和不等于这几类
3.逻辑运算符

名称计算口诀
同一为一,有零为零
全零为零,有一为一
一变零,零变一

4.位运算符
位运算的意思就是按照二进制的位数进行的运算
特别注意:左移和右移
【举个栗子1】num<<i
就是num这个数字的二进制向左移i位
比如:0110<<2(就是6左移两位)
变成:011000(也就是24)
重大发现1!🙋‍♂️
发现24=6x2x2
根据规则得出:左移一位就是原来的num乘以2
所以🎈
num<<i 的等于num*(2^i)
num>>i的等于num/(z^i)
5.三元运算符
if else

x,y=4,5
s=x if x<y else y

6.其他运算符

操作符名称
is
is not不是
in存在
not in不存在

重大发现2!🙋‍♂️
请问is、is not与==、!=之间的区别!
is 用于判断两个变量引用对象是否为同一个,
== 用于判断引用变量的值是否相等。
【举个栗子2】当他们用于地址相同的地方时结果相同:
在这里插入图片描述
当他们用于地址不相同的地方时结果不同:
在这里插入图片描述

二、数据类型
1.数据类型
int、float、bool

2.浮点型如何保留小数?
使用decimal包里的getcontext()函数,
这个函数的参数中有一个prec参数代表精度
默认28

3.布尔型
bool(0)和bool(0.00)为False
bool(空):比如bool([])、bool({})为False
其余都是True

三、位运算
1.原码、反码、补码
原码:二进制表示
反码:正数不变、负数符号位不变,其余取反
补码:正数不变,负数的反码+1

2.为什么通过^可以交换两个整数?
a^=b
b^=a
a^=b
证明:
因为:a′=a^b
又因为b=a′^b
b=a^b ^b=a
a=a′^b=a ^b ^a(因为现在b=a了)
所以a=b
所以完成了交换

练习题:
leecode136:
暴力&位运算
暴力解决:
补充:
完成leecode137题目
Counter()函数
from collections import Counter
Counter函数:统计一个容器里某个元素的个数

在这里插入图片描述
4.条件语句
if语句
if-else语句
if-elif-else语句:else指的是if和elif之外的其他情况
特别注意:assert关键词,加入assert后面的关键词后面的条件是False,程序自动崩溃

5.循环语句
while循环
while-else循环:如果while语句正常执行,那么再执行else语句的内容,如果while循环里面使用break跳出循环,那么不执行else的内容

for循环
for-else循环

6.range()函数

7.enumerate()函数:给元素加序号,可利用start参数决定下标的起始数

8.break语句:跳出循环

9.continue语句:终止本次循环,开始下次循环

10.pass语句:不作任何操作

11,推导式

练习题:
1.
2.龟兔赛跑游戏

v1, v2, t, s, l = map(int, input().split())
sum_1, sum_2 = 0, 0
time_1, time_2 = 0, 0
while True:
    if (sum_1 - sum_2) >=t:
        if (sum_2+v2*s)>l:
            time_2+=(l-sum_2)/v2
            sum_2=l
        else:
            time_2+=s
            time_1+=s
            sum_2+=v2*s
    else:
        time_1 += 1
        time_2 += 1
        sum_1+=v1
        sum_2+=v2

    if sum_1 >= l and sum_2 >= l:#一起到达终点
        print('D')
        print(time_2)
        break
    elif sum_2 >= l and sum_1 < l:#乌龟获胜
        print('T')
        print(time_2)
        break
    elif sum_1 >= l and sum_2 < l:#兔子获胜
        print('R')
        print(time_1)
        break

结果:在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值