Python 趣味编程:我的压岁钱
题目
压岁钱又名压祟钱。是除夕吃完年夜饭,由长辈将事前准备好的钱分给晚辈,是过年习俗之一。
今年除夕页面,小明收到了妈妈的 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) # 可以正常输出结果