Python 练习
标签: Python Python练习题 Python知识点
##二. 使用random中的randint函数随机生成一个1~100之间的预设整数让用户键盘输入所猜的数,如果大于预设的数,屏幕显示“太大了,请重新输入”如果小于预设的数,屏幕显示“太小了,请重新输入”如此循环,直到猜中,显示“恭喜你,猜中了!共猜了N次”N为用户猜测次数. 答案:
1import random 2 3 4def guess_number(): 5 true_num = random.randint(1, 100) 6 user_num = int(input("请输入一个整数:")) 7 count = 1 8 while true_num != user_num: 9 if true_num > user_num: 10 print("太小了,请重新输入!") 11 elif true_num < user_num: 12 print("太大了,请重新输入!") 13 count += 1 14 user_num = int(input("请输入一个整数:")) 15 print("恭喜您,您猜对了!您一共猜了%d次" % count) 16 17guess_number()
###知识点 ####1.Python中的random模块 #####1.1 random 模块简介 Python标准库中的random函数,可以生成随机浮点数、整数、字符串,甚至帮助你随机选择列表序列中的一个元素,打乱一组数据等。 #####1.2 random 模块方法说明
-
random.random(): 函数会生成一个随机的浮点数,范围是在0.0~1.0之间
In [2]: import random
In [3]: random.random() Out[3]: 0.6935051182120364
-
random.uniform(a, b): 函数随机生成一个处于范围[a,b]的浮点数
In [26]: random.uniform(0, 100) Out[26]: 26.977426505683276
-
random.randint(a, b): 随机生成一个范围[a, b]内的整数(int类型)
In [28]: random.randint(1,2) Out[28]: 2
In [29]: random.randint(1,2) Out[29]: 1
-
random.choice(): 可以从任何序列,比如list列表中,选取一个随机的元素返回,可以用于字符串、列表、元组等。
参数为列表时:
1In [31]: random.choice([1,2,3]) 2Out[31]: 3 3 4In [32]: random.choice([1,2,3]) 5Out[32]: 1 6
参数为字符串时:
1In [38]: random.choice("i am a bad boy") 2Out[38]: 'y' 3 4In [39]: random.choice("i am a bad boy") 5Out[39]: 'b' 6
参数为元祖时:
1In [41]: random.choice((1,3,7,4)) 2Out[41]: 1 3 4In [42]: random.choice((1,3,7,4)) 5Out[42]: 7 6
-
random.shuffle: 如果你想将一个序列(不包括元祖和字符串)中的元素,随机打乱的话可以用这个函数方法
In [49]: list = [1,2,3,4]
In [50]: random.shuffle(list)
In [51]: list Out[51]: [4, 2, 1, 3]
-
random.sample(a, b): 从序列a中随机且独立的截取指定长度b的片段。
In [58]: b = (9,9,9,1,2)
In [59]: random.sample(b, 2) Out[59]: [9, 1]
In [60]: random.sample(b, 2) Out[60]: [1, 9]
In [61]: random.sample(b, 2) Out[61]: [1, 9]
In [62]: random.sample(b, 2) Out[62]: [1, 9]
In [63]: random.sample(b, 2) Out[63]: [2, 9]
In [64]: list = [1,2,3,5,7,94,2]
In [65]: random.sample(list, 3) Out[65]: [1, 5, 7]
In [66]: random.sample(list, 3) Out[66]: [2, 2, 5]
In [67]: random.sample("i am a bad boy", 3) Out[67]: [' ', 'a', 'b']
In [68]: random.sample("i am a bad boy", 3) Out[68]: ['a', 'y', 'b']
####2. python中random模块的randint与numpy.random模块的randint的区别
-
random.randint(a, b) # 随机返回闭区间 [a, b] 范围内的整数值
-
numpy.random.randint(a, b) # 随机返回开区间 [a, b) 范围内的整数值
In [69]: random.randint(0,1)
Out[69]: 0In [70]: random.randint(0,1)
Out[70]: 1In [71]: numpy.random.randint(0,1)
Out[71]: 0In [72]: np.random.randint(0,1)
Out[72]: 0