课堂练习¶

1.给出一个最大值不超过max、初始值为1、1的斐波那契数列生成函数,即每个数字均为前两个数字之和,max为函数的输入参数¶
In [ ]:
#方法1
def fibonacci(max):
    f = [1,1]
    a = 1
    b = 1
    n = a + b
    while True:
        if n > max:
            return f
        else:
            f.append(n)
        a = b
        b = n
        n = a + b

print(fibonacci(10))#用10测试一下函数是否正确
In [ ]:
#方法2
def fibonacci2(max):
    f = [1,1]
    while True:
        if f[-1] > max:
            return f[:-1]
        else:
            f.append(f[-1]+f[-2])

print(fibonacci2(10))
2. 输入任意一个正整数,判断其是否为每个位数都是奇数,是则输出Yes,否则输出No¶

如输入131则输出Yes,输入201则输出No

In [ ]:
number = input('输入一个正整数:')
is_odd = True
#虽然输入的是数字,但是实际上计算机初始得到的是一个字符串,因此可以直接看作一个列表
#每个“数字”为列表中的一个元素,如输入123,则可以看作是['1','2',3]
#注意在进行计算时候还需要进行值类型的转换
for n in number:
    if int(n)%2 == 0:
        is_odd = False
        break
if is_odd:
    print('Yes')
else:
    print('No') 
3. 计算机随机生成一个0~100的整数,猜这个数是多少。输入的数大于该数则提示“太大”,反之则提示“太小”,猜中输出“恭喜你答对了!答案为+该数”¶

提示:random.uniform (a, b) 用于生成一个[a,b]之间的数字,符合均匀分布

In [ ]:
import random

number = int(random.uniform(0,100))
print(number)

while True:
    guess = int(input("输入一个整数"))
    if guess > number:
        print("太大")
    elif guess < number:
        print("太小")
    else:
        print("恭喜你答对了!答案为{}".format(number))
        break

课后作业¶

请编写一个简易的抽奖程序,要求:¶

1)总人数不确定,程序开始时输入总人数,每个人用编号表示即可
2)依次随机抽取三等奖10人、二等奖3人、一等奖1人,每个人只能中奖一次
3)不同奖项分批次抽取,即三等奖抽完后公布中奖名单、然后二等奖抽取并公布名单、最后一等奖抽取并公布名单

In [ ]: