【Python】看技术文,拿offer,冲冲冲!

下载Python资源

数值类型

一、 数值类型分为三种

1.int型

整型通常被称为整型或整数,是正或负整数,不带小数点

2.float型

浮点型由整数部分与小数部分组成

float(‘INF’) 表示正无穷

float(‘-INF’) 表示负无穷

3.complex型

复数由实数部分和虚数部分构成,可以用a+b,或者complex(a,b)表示,复数的实部a和虚部都是浮点型

4.bool型

布尔型,通常用于判断,语法是:FALSE和TRUE

二、 math模块中的常用方法

1.ceil:取大于等于x的最小的整数值,如果x是一个整数,则返回x

2.fabs:返回x的绝对值

3.floor:取小于等于x的最大的整数值,如果x是一个整数,则返回自身

4.pow:返回x的y次方,即x**y

5.sqrt:求x的平方根

# type查看数值类型
a = 10.1
print(type(a))
# 强制转换
print(int(a))
b = 10
print(float(b))
# 除法/
print(20 / 3)
# 整除,不保留小数位 //
print(20 // 3)
# 一个数的多少次方,23的7次方
print(23 ** 7)
 
# 导入math包
import math
# math常用方法
print(math.ceil(2.3))# 3
print(math.fabs(-12.1))# 12.1
print(math.floor(-2.6))# -3
print(math.pow(98, 29))# 5.566166524310583e+57
print(math.sqrt(9))# 3


三、 进制转换

# 十进制转二进制
n = 189
result = bin(n)
print(result)

# 十进制转八进制
result = oct(n)
print(result)

# 十进制转十六进制
n = 290
result = hex(n)
print(result)

# 前缀:0b 二进制		0o 八进制	  0x 十六进制	 默认十进制

n = 0x889
result = int(n)
print(result)

已知二进制转换为十进制

983:

已知二进制转换为八进制:将二进制从右侧开始3位一组,最后一组不足3位补0 按111为421计算

0o3467:0b011100110111

0o7654:0b111110101100

0o6321:0b110011010001

已知二进制转换为十六进制:将二进制从右侧开始3位一组,最后一组不足4位补0 按1111为8421计算

0xad92:0b1010110110010010

0xff98:0b1111111110011000

0xbcde:1011110011011110

四、位运算

# 按位与:&——参与运算符的两个值,如果两个相应位都为1,则该位的结果为1,否则为0
print(9 & 3) 
'''
	1001
	0011
	0001:结果为1
'''
# 按位或:|——只要对应的两个二进位有一个为1时,结果位就为1
n = 8
print(n | 9)
'''
	1000
	1001
	1001:结果为9
'''

# 按位异或:当两对应的二进位相异时,结果为1
x = 4
print(~4)
'''
	原码:0000 0100
	取反:1111 1011
		 1011:结果为-11
'''

#  左移
n = 12 # 00001100
print(n << 1) # 24 12*2
print(n << 2) # 24 12*2*2
print(n << 3) # 24 12*2*2*2

n = 54
print(n << 4) # 54*16
# 右移
n = 12
print(n >> 1) # 6 12//2 ==>6
print(n >> 2) # 6 12//4 ==>3
print(n >> 3) # 6 12//8 ==>1

n = 89 # 右移五位
print(89 >> 5) # 2 89//32

n = 93 # 左移3位
print(93 << 3) # 744 93*2*2*2 


已知二进制的负数(判断是否是负的二进制的依据,看二进制的最高位:1111 1010,最高位是1则表为负数,0则为正数 补码为加1,负数二进制转负数10进制减1)

~7:-8

原码:00000111

取反:11111000

~-4:3

原码:0000 0100

取反:11111011

补码:11111100

取反:00000011得出-4取反为3

-9的二进制:

原码:00001001

取反:11110110

补码:11110111

1111 1101的十进制:

减一:11111100

取反:00000011

十进制为-3

五、 运算符优先级

运算符描述
**指数(最高优先级)
~、+、-按位翻转,一元加号和减号(最后两个的方法名为+@和-@)
*、/、%、//乘、除、取模和取整除
+、-加法、减法
>>、<<右移、左移运算符
&位与
^、|位运算符
<=、<、>、>=比较运算符
/ <> == !=等于运算符
= %= /= //= -= += *= **=赋值运算符
is is not身份运算符
in in not成员运算符
not or and逻辑运算符

六、 Random随机数常用方法

1.random.random():返回[0.0, 1.0)之间的浮点数,注意,这是一个左闭右开的区间,随机数可能会是0但不可能为1

2.random.randint(a, b):生成一个a与b之间的随机整数,也就是[a, b]

3.random.randrange(a, b):生成的随机整数不包含b,即[a, b)

4.random.uniform(a, b):生成[a, b]之间的随机浮点数

5.random.choice([]):从列表中随机取出一个元素

6.random.shuffle([]):打乱列表中元素的顺序

7.random.sample([], n):从列表中随机取出n个元素

# 导入random包
import random

# random.random():返回[0.0, 1.0)之间的浮点数,注意,这是一个左闭右开的区间,随机数可能会是0但不可能为1
print(random.random())
# random.randint(a, b):生成一个a与b之间的随机整数,也就是[a, b]
print(random.randint(1, 10000))
# random.randrange(a, b):生成的随机整数不包含b,即[a, b)
print(random.randrange(10, 50))
# random.uniform(a, b):生成[a, b]之间的随机浮点数
print(random.uniform(1, 1000))
# random.choice([]):从列表中随机取出一个元素
print(random.choice([1, 3, 4, 4, 10, 100, 33]))
# random.shuffle([]):打乱列表中元素的顺序
a = [1, 2, 3, 4, 5, 6, 7, 8, 9]
random.shuffle(a)
print(a)
# random.sample([], n):从列表中随机取出n个元素
print(random.sample([1, 3, 4, 4, 10, 100, 3, 1, 2, 3, 4, 5, 6, 7, 8, 9], 5))
"""
    商家优惠节推出活动(用户名、消费总金额、账户金额、优惠券)
    1.如果金额0-500元则是LV1级别
    2.如果500-2000元则是LV2级别
    3.2000以上是LV3级别

    优惠政策:
    LV1:随机赠送3张1-10元的优惠券
    LV2:赠送2张50元优惠券,如果充值则送充值金额的10%
    LV3:赠送2张100元优惠券,如果充值则送15%的金额
"""
import random

print('请输入用户名:')
username = input()
print('请输入消费总金额:')
total = int(input())  # 消费总金额
money = 0  # 账户金额
coupon = []  # 优惠券

# 判断用户等级
# 1.如果金额0-500元则是LV1级别
if 0 < total < 500:
    print('恭喜您成为LV1用户')
    # LV1:随机赠送3张1-10元的优惠券
    coupons1 = random.randint(1, 10)
    coupons2 = random.randint(1, 10)
    coupons3 = random.randint(1, 10)
    coupon.append(coupons1)
    coupon.append(coupons2)
    coupon.append(coupons3)
    print('赠送您三张优惠券金额分别为:', coupon)
# 2.如果500-2000元则是LV2级别
elif 500 <= total < 2000:
    print('恭喜您成为LV2用户')
    coupons4 = 50
    # LV2:赠送2张50元优惠券
    coupon.append(coupons4)
    coupon.append(coupons4)
    print('赠送您两张50元优惠券:', coupon)
    # 如果充值则送充值金额的10%
    opt = input("现在充值赠送10%的金额,是否进行充值(y/n):")
    if opt == 'y':
        moneys = int(input('请输入充值金额:'))
        money = 1.1 * moneys
        gift = moneys * 0.10
        print('赠送金额为:', gift)
        print('账户总金额为:', money)
# 3.2000以上是LV3级别
else:
    print('恭喜您成为LV3用户')
    # LV3:赠送2张100元优惠券
    coupons5 = 100
    coupon.append(coupons5)
    coupon.append(coupons5)
    print('赠送您两张100元优惠券:', coupon)
    # 如果充值则送15 % 的金额
    opt = input("现在充值赠送10%的金额,是否进行充值(y/n):")
    if opt == 'y':
        moneys = int(input('请输入充值金额:'))
        money = 1.15 * moneys
        gift = moneys * 0.15
        print('赠送金额为:', gift)
        print('账户总金额为:', money)

  • 21
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ゞ长情.骅栢乄·&

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值