2021-07-23

猜数字游戏

import random
guess=random.randint(1,100)
print(guess)
i=1
while True:
    print("第%d次,请输入数字"%i)
    try:
        temp=int(input())
        i+=1
    except ValueError:
        print("input error")
        continue
    if temp==guess:
        print("equal")
        break
    elif temp>guess:
        print("gt")
    else:
        print("lt")

变量、运算符与数据类型

x,y=4,5
small=x if x<y else y
print(small)
letters=['A','B','C','D','E','F','G']
if 'A' in letters:
    print("in")
if 'H' not in letters:
    print("not in")
  1. is, is not 对比的是两个变量的内存地址
  2. ==, != 对比的是两个变量的值
    即:
  3. 假如比较的两个变量,指向的都是地址不可变的类型(str等),那么is,is not 和 ==,!= 是完全等价的。
  4. 假如对比的两个变量,指向的是地址可变的类型(list,dict,tuple等),则两者是有区别的。

运算符的优先级

  1. 一元运算符优于二元运算符。如正负号。
  2. 先算术运算,后移位运算,最后位运算。例如 1 << 3 + 2 & 7等价于 (1 << (3 + 2)) & 7
  3. 逻辑运算最后结合

保留浮点型的小数点后 n 位。可以用 decimal 包里的 Decimal 对象和 getcontext() 方法来实现。

import decimal
from decimal import Decimal

a=decimal.getcontext().prec=4
print(Decimal(1)/Decimal(3))
  1. 对于数值变量, 0 , 0.0 都可认为是空的。
  2. 对于容器变量,里面没元素就是空的。

判断两个类型是否相同推荐使用 isinstance() 。

print()函数

  1. 将对象以字符串表示的方式格式化输出到流文件对象file里。其中所有非关键字参数都按 str() 方式进行转换为字符
    串输出;
  2. 关键字参数 sep 是实现分隔符,比如多个参数输出时想要输出中间的分隔字符;
  3. 关键字参数 end 是输出结束时的字符,默认是换行符 \n ;
  4. 关键字参数 file 是定义流输出的文件,可以是标准的系统输出 sys.stdout ,也可以重定义为别的文件;
  5. 关键字参数 flush 是立即把内容输出到流文件,不作缓存。
import decimal
from decimal import Decimal

a=decimal.getcontext().prec=4
print(Decimal(1)/Decimal(3))

元素与集合的操作:

a|(1<<i)
a&~(1<<i)
a&(1<<i)

集合之间的操作:

~a
a&b
a|b
a&(~b)

练习题
leetcode 习题 136. 只出现一次的数字
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
尝试使用位运算解决此题。

~a
a&b
a|b
a&(~b)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值