python小练习

十进制转二进制

# a=eval(input('请您输入十进制数:'))
# m=''
# while a>0:
#     m+=str(a%2)  #a对2求余,添加到字符串m最后
#     a=a//2
# print(m[::-1])   #反向输出
a = int(input('请输入一个十进制数:'))
m = bin(a)
print(m)

十进制转十六进制

# val = int(input("请输入一个十进制数"))不去0x
# val = hex(val)
# print(val)
val = int(input("请输入一个十进制数"))去0x
val = hex(val)
print(type(val))
interval = val[2:].upper()
print(interval)

不死兔子

#不死兔子
def get_rabbit(num):
    if num <5:
        return 1
    return get_rabbit(num-1)+get_rabbit(num-4)
 
    print(get_rabbit())

棋盘

def board(arr):
    if arr is None:
        return 0
    if len(arr) == 1 and len(arr[0]) == 1:
        return 1

    # 第一行只有一种走法
    for i in range(len(arr[0])):
        arr[0][i] = 1
    # 纵轴的第一列
    for i in range(len(arr)):
        arr[i][0] = 1

    # 外层循环控制的纵轴
    for i in range(1, len(arr)):
        # 里层循环控制的横轴
        for j in range(1, len(arr[0])):
            arr[i][j] = arr[i - 1][j] + arr[i][j - 1]

    return arr[len(arr) - 1][len(arr[0]) - 1]


# python的主函数
# 在静态编程语言中,main函数是程序的入口
# 注意:python中的main函数,并不是程序的入口
# 主要是用来写测试代码
# python的main函数中的代码,一般是测试当前模块的代码
# 这些代码无法被导入到其他模块中
if __name__ == '__main__':
    ls = [
        [0, 0, 0, 0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0, 0, 0, 0],
    ]
    count = board(ls)
    print(f"从左上角开始走,到右下角,共有{count}种走法")

Python (蒙特卡罗模拟)一个正方形被分为四个更小的区域,如图a所示。如果你投掷一个飞镖到这个正方形一百万次,这个飞镖落在一个奇数区域里的概率是多少?编写程序模拟这个过程然后显式结果。(提示:将这个正方形的中心放在坐标系统的中心位置,如图b所示。在正方形中随机产生一个点,然后统计这个点落人奇数区域的次数。)

# 方法一:
import random
sum = 0
for i in range (0, 1000001):
    x = random.random() * random.choice([-1,1])
    y = random.random() * random.choice([-1,1])
    if x<= 0 or ( x >= 0 and y >= 0 and (y / (1 - x) >= 1)):
        sum += 1
a = sum / 1000000
print("1000000个随机点落在奇数区域的概率是%.12f"%a)

# 方法二:
import random
total = 1000000
count = 0
for i in range(0,total):
    x = random.random() * 2 - 1  # random.random()  产生[0,1)之间任意一个小数
    y = random.random() * 2 - 1  # random.random()  产生[0,1)之间任意一个小数
    if -1 <= x <= 0 and -1 <= y <= 1:
        count += 1
    elif 0 <= x <= 1 and 0 <= y <= 1 and y / (1-x) <= 1:
        count += 1
print("1000000个随机点落在奇数区域的概率是%.12f"%(count / total))

Python (显示闰年)编写程序显示21世纪(从2001年到2100年)里所有的闰年,每行显示10个闰年。这些年被一个空格隔开。

count = 0
for y in range(2001, 2100 + 1):
    if y % 400 == 0 or y % 4 == 0 and y % 100 != 0:
        print(y, end=" ")
        count += 1
        if count % 10 == 0:
            print()
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值