Python 趣味编程:我的压岁钱

liftword3个月前 (03-09)技术文章21

题目

压岁钱又名压祟钱。是除夕吃完年夜饭,由长辈将事前准备好的钱分给晚辈,是过年习俗之一。

今年除夕页面,小明收到了妈妈的 600 元,爸爸的 800 元,奶奶的 800 元,爷爷的 1000 元,姥姥的 666 元,姥爷的 888 元,舅舅的 500 元以及姑姑的 500 元。

请帮小明计算下今年收到了多少压岁钱呢?

代码

# 妈妈的压岁钱
MotherMoney = 600
# 爸爸的压岁钱
FatherMoney = 800
# 奶奶的压岁钱
GrandmotherMoney = 800
# 爷爷的压岁钱
GrandFatherMoney = 1000
# 姥姥的压岁钱
GrandmaMoney = 666
# 姥爷的压岁钱
GrandpaMoney = 888
# 舅舅的压岁钱
UncleMoney = 500
# 姑姑的压岁钱
AuntMoney = 500

print(f"妈妈给小明{MotherMoney}元")
print(f"爸爸给小明{FatherMoney}元")
print(f"奶奶给小明{GrandmotherMoney}元")
print(f"爷爷给小明{GrandFatherMoney}元")
print(f"姥姥给小明{GrandmaMoney}元")
print(f"姥爷给小明{GrandpaMoney}元")
print(f"舅舅给小明{UncleMoney}元")
print(f"姑姑给小明{AuntMoney}元")
print(f"小明今年一共收到了{MotherMoney + FatherMoney + GrandmotherMoney + GrandFatherMoney + GrandmaMoney + GrandpaMoney + UncleMoney + AuntMoney}元")
# 输出结果
# 妈妈给小明600元
# 爸爸给小明800元
# 奶奶给小明800元
# 爷爷给小明1000元
# 姥姥给小明666元
# 姥爷给小明888元
# 舅舅给小明500元
# 姑姑给小明500元
# 小明今年一共收到了5754元

知识点

在 Python 中,整数(int)是一种基本的数据类型,用于表示整数数值。以

整数的定义和表示

在 Python 中,可以直接使用数字来定义整数,不需要像其他一些语言那样声明数据类型。

整数可以是正数、负数或零。

# 定义不同类型的整数
positive_integer = 10
negative_integer = -20
zero = 0

print(positive_integer)  # 输出: 10
print(negative_integer)  # 输出: -20
print(zero)  # 输出: 0

整数的进制表示

Python 支持多种进制的整数表示:

  • 十进制:最常见的表示方式,直接使用数字。
  • 二进制:以 0b 或 0B 开头,后面跟着二进制数字(0 或 1)。
  • 八进制:以 0o 或 0O 开头,后面跟着八进制数字(0 - 7)。
  • 十六进制:以 0x 或 0X 开头,后面跟着十六进制数字(0 - 9,a - f 或 A - F)。
# 十进制
decimal_num = 25
print(decimal_num)  # 输出: 25

# 二进制
binary_num = 0b11001
print(binary_num)  # 输出: 25

# 八进制
octal_num = 0o31
print(octal_num)  # 输出: 25

# 十六进制
hex_num = 0x19
print(hex_num)  # 输出: 25

整数的运算

Python 支持多种整数运算,包括基本的算术运算和位运算。

基本算术运算

a = 10
b = 3

# 加法
sum_result = a + b
print(sum_result)  # 输出: 13

# 减法
sub_result = a - b
print(sub_result)  # 输出: 7

# 乘法
mul_result = a * b
print(mul_result)  # 输出: 30

# 除法
div_result = a / b
print(div_result)  # 输出: 3.3333333333333335

# 整除
floor_div_result = a // b
print(floor_div_result)  # 输出: 3

# 取余
mod_result = a % b
print(mod_result)  # 输出: 1

# 幂运算
pow_result = a ** b
print(pow_result)  # 输出: 1000

位运算

x = 5  # 二进制: 0101
y = 3  # 二进制: 0011

# 按位与
and_result = x & y
print(and_result)  # 输出: 1

# 按位或
or_result = x | y
print(or_result)  # 输出: 7

# 按位异或
xor_result = x ^ y
print(xor_result)  # 输出: 6

# 按位取反
not_result = ~x
print(not_result)  # 输出: -6

# 左移
left_shift_result = x << 1 printleft_shift_result : 10 right_shift_result='x'>> 1
print(right_shift_result)  # 输出: 2

整数的方法

1. bit_length()

功能:返回以二进制表示一个整数时所需的最少位数,不包含符号位和前面的零。

num1 = 10  # 二进制为 1010
print(num1.bit_length())  # 输出: 4

num2 = -10
print(num2.bit_length())  # 同样输出 4,因为不考虑符号位

2. to_bytes(length, byteorder, *, signed=False)

功能:将整数转换为指定长度和字节序的字节对象。

参数说明

    • length:生成字节对象的长度。
    • byteorder:字节序,值可以是 'big'(大端序)或 'little'(小端序)。
    • signed:布尔值,表示是否使用有符号整数表示。
num = 255
# 大端序,长度为 2 字节
bytes_big = num.to_bytes(2, byteorder='big')
print(bytes_big)  # 输出: b'\x00\xff'

# 小端序,长度为 2 字节
bytes_little = num.to_bytes(2, byteorder='little')
print(bytes_little)  # 输出: b'\xff\x00'

3. from_bytes(bytes, byteorder, *, signed=False)

功能:这是一个类方法,用于将字节对象转换为整数。

参数说明

    • bytes:要转换的字节对象。
    • byteorder:字节序,值可以是 'big' 或 'little'。
    • signed:布尔值,表示是否使用有符号整数表示。
byte_data = b'\x00\xff'
# 大端序转换为整数
num = int.from_bytes(byte_data, byteorder='big')
print(num)  # 输出: 255

4. as_integer_ratio()

功能:返回一个元组,包含整数的分子和分母,对于整数而言,分母始终为 1。

num = 5
ratio = num.as_integer_ratio()
print(ratio)  # 输出: (5, 1)

整数的类型转换

可以使用 int() 函数将其他数据类型转换为整数:

# 浮点数转换为整数
float_num = 3.14
int_num = int(float_num)
print(int_num)  # 输出: 3

# 字符串转换为整数
str_num = "10"
int_num = int(str_num)
print(int_num)  # 输出: 10

整数的无限精度

Python 的整数类型具有无限精度,这意味着可以处理任意大的整数,而不会像其他一些语言那样出现溢出问题。

# 处理大整数
large_num = 123456789012345678901234567890
result = large_num * large_num
print(result)  # 可以正常输出结果

#趣味编程#

相关文章

Python中的十六进制与十进制的相互转换

十进制主要运用于日常生活当中,而八进制主要运用于电子技术行业,是为了配合二进制而使用的,二进制是机器能够识别的最直接语言,但是二进制位数太多,不方便记录,所以一般把二进制转化为八进制或十六进制。在这篇...

python散装笔记——149: 从Python 2迁移到Python 3的不兼容性(六)

26: 编码/解码为十六进制不再可用Python 2.x Version ≤ 2.7"1deadbeef3".decode('hex') # Out: '\x1d\xea\xdb\xee\xf3' '...

Python二进制、八进制、十进制、十六进制互转

Python二进制、八进制、十进制、十六进制互转在Python中各种进制的转换还是比较方便的,都有内置的方法二进制 bin()八进制 oct()十六进制 hex()十进制 int()通过以上4个方法就...

Python 数字和转换

在本节中,我们来学习 Python 中的数字数据类型以及你可以对这些数字执行的数学运算。此外,我们还会学习如何从一种数据类型转换为另一种数据类型。Python 数字数据类型Python 中的数字数据类...

跟我学Python(26)——Python中的数据类型转换

上篇文章小编已经给大家介绍了Python中基本数据类型的布尔类型,这篇文章小编将跟大家分享一下Python中数据类型如何转换。Python是动态类型的语言(也称为弱类型语言)所以是可以进行数据类型转换...

通过篡改cred结构体实现提权利用

前言作者利用任意地址读写分别改写modprobe_path以及cred结构体去实现提权的操作,由于改写modprobe_path的方法之前已经研究过了,因此现在详细记录一下如何修改cred结构体完成提...