Python 初学笔记(二)

Python 要点

1、想随机生成一组数据
import random
random 文件里有random.random()和random.choice()两个函数
random.random() 为随机生成一个(0,1)的浮点数
random.choice(range(n)) 为随机生成一个(0,n)的浮点数
2、输入一个数值n 并循环为
number = int(input('please input a number: '))
for i in range(number):
3、randrange()
randrange(a,b,c) 函数为:返回指定递增基数集合中的一个随机数,基数默认值(初始值)为1. a,b为区间 c为step步长
eg.
randrange(1,100,2) 指随机从1到100的奇数集合中随机抽取一个数
另:
用randrange()函数要导入random模块,即 import random
4、正则表达式(regular expression):
https://www.runoob.com/regexp/regexp-tutorial.html

Python 习题

  1. 蒙特卡洛方法计算圆周率的近似值
  2. 抓狐狸游戏

1.用蒙特卡洛方法计算圆周率的近似值
蒙特-卡罗方法是一种通过概率来得到问题近似解的方法。假设又一块边长为2的正方形木板,上面画一个单位圆,然后随意往木板上扔飞镖,落点坐标(x,y)必然在木板上(更多的是落在单位圆内),如果扔的次数足够多,那么落在单位圆内的次数除以总次数再乘以4,这个次数会无限接近圆周率的值。
代码:

from random import random
times = int(input('请输入掷飞镖次数:'))
hits = 0
for i in range(times):
    x = random()
    y = random()
    if x*x+y*y<=1 :
        hits += 1
print(4.0*hits/times)

2、抓狐狸游戏
假设一共有一排5个洞口,小狐狸最开始的时候在其中一个洞口,然后玩家随机打开一个洞口,如果里面有狐狸就抓到了。如果洞口里没有狐狸就第二天再来抓,但是第二天狐狸会在玩家来抓之前跳到隔壁洞口里。
代码:


from random import choice,randrange
def catchMe(n=5,maxStep=10):
    '''模拟抓小狐狸,一共n个洞口,允许抓maxStep次
    如果失败,小狐狸就会跳到隔壁洞口'''
    # n个洞口,有狐狸为1,没有狐狸为0
    positions = [0] * n
    # 狐狸的随机位置
    oldPos = randrange(0,n)
    positions[oldPos] = 1
    # 抓maxStep次
    while maxStep >= 0:
        maxStep -= 1
        # 这个循环保证用户输入的是有效洞口编号
        while True:
            try:
                x = input('今天打算打开哪个洞口(0-{0}):'.format(n-1))
                # 如果输入的不是数字,就会跳转到except部分
                x = int(x)
                # 如果输入的洞口有效,结束这个循环,否则就继续输入
                assert 0 <= x < n,'要按套路来啊,再给你一次机会。'
                break
            except:
                # 如果输入的不是数字,就执行这里的代码
                print('要按套路来啊,再给你一次机会。')
        if positions[x] == 1:
            print('成功,我抓到小狐狸啦。')
            break
        else:
            print('今天又没抓到。')
 
        # 如果这次没抓到,狐狸就跳到隔壁洞口
        if oldPos == n-1:
            newPos = oldPos - 1
        elif oldPos == 0:
            newPos = oldPos + 1
        else:
            newPos = oldPos + choice((-1,1))
        positions[oldPos],positions[newPos] = 0,1
        oldPos = newPos
    else:
        print('放弃吧,你这样乱试是没有希望的。')
    # 启动游戏,开始抓狐狸吧
catchMe()

3、

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值