用python写猜数字游戏
生活随笔
收集整理的這篇文章主要介紹了
用python写猜数字游戏
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
猜數字游戲
從名單中隨機抽取5位同學,參加猜數字
目的:練習文件操作、循環、判斷、構造函數、列表和集合的操作
主要思路:
- 隨機抽取從文件中抽取5個人員參加游戲
- 判斷名單名字的行數
- 隨機生成數,并在文件中獲取名單
- 判斷數字的大小
名字單:name
版本一:
""" 從名單中隨機抽取5位同學,參加猜數字 """ import random def main():# 2、隨機抽取5個人員peopleNum = 5 #抽取5人people(peopleNum)# 3、隨機生成數字1~100的數number = random.randint(1,100)# 4、判斷正確referee(number) #2、隨機抽取5個人員 def people(peoplNum):peopleList = set()line = fileLine()while len(peopleList) < peoplNum : #避免了猜數字人員名字的重復問題# 生成隨機數randNum = random.randint(1, line)with open("name", 'r', encoding="utf-8") as f: #可以不用close()文件for i in range(1, randNum + 1): #目的:一次遍歷文件的內容,找到指定的行(randNum就是行號)name = f.readline().strip('\n') #去掉名字中的\nif randNum == i:peopleList.add(name) #將名字添加到人員名字中peopleListprint("恭喜",peopleList,"進行猜數比賽")#2.1 、獲取名單的行數 def fileLine():with open("name","r",encoding="utf-8") as f:linecount = 0for line in f:linecount +=1return linecount#4、判斷正確 def referee(number):max = 100min = 1print(number)while True:inputNum = int(input("請輸入%d~%d整數:\n"%(min,max)))if inputNum == number:print("恭喜你猜中了",number)breakelif inputNum >= min and inputNum < number:min = inputNumelif inputNum <= max and inputNum > number:max = inputNumif __name__ == '__main__':main()版本二:
""" 從名單中隨機抽取5位同學,參加猜數字 """ import random def main():# 2、隨機抽取5個人員peopleNum = 5 #抽取5人people(peopleNum)# 3、隨機生成數字1~100的數number = random.randint(1,100)# 4、判斷正確referee(number) #2、隨機抽取5個人員 def people(peoplNum):peopleList = [] #人員的名字radNum = [] #保存隨機數,為避免隨機數產生相同line = fileLine()for x in range(peoplNum):# 生成隨機數randNum = random.randint(1, line)radNum.append(randNum) if radNum.count(randNum) > 1: #統計數隨機數產生的的個數continuewith open("name", 'r', encoding="utf-8") as f:for i in range(1, randNum + 1): name = f.readline().strip('\n')if randNum == i:peopleList.append(name)print(peopleList) #2.1 、獲取名單的行數 def fileLine():with open("name","r",encoding="utf-8") as f:linecount = 0for line in f:linecount +=1return linecount#4、判斷正確 def referee(number):max = 100min = 1print(number)while True:inputNum = int(input("請輸入%d~%d整數:\n"%(min,max)))if inputNum == number:print("恭喜你猜中了",number)breakelif inputNum >= min and inputNum < number:min = inputNumelif inputNum <= max and inputNum > number:max = inputNumif __name__ == '__main__':main()版本三:
""" 從名單中隨機抽取5位同學,參加猜數字 """ import random import linecache def main():# 2、隨機抽取5個人員peopleNum = 5 #抽取5人people(peopleNum)# 3、隨機生成數字1~100的數number = random.randint(1,100)# 4、判斷正確referee(number) #2、隨機抽取5個人員 def people(peoplNum):peopleList = [] #人員的名字line = fileLine()radNum = [] # 保存隨機數,為避免隨機數產生相同while len(peopleList) < peoplNum:index = random.randint(1,line) radNum.append(index)if radNum.count(index) > 1: # 統計數隨機數產生的的個數,避免名單人員名字重復continuepeopleList.append(linecache.getline("name",index).strip("\n"))print(peopleList) #2.1 、獲取名單的行數 def fileLine():with open("name","r",encoding="utf-8") as f:linecount = 0for line in f:linecount +=1return linecount#4、判斷正確 def referee(number):max = 100min = 1while True:inputNum = int(input("請輸入%d~%d整數:\n"%(min,max)))if inputNum == number:print("恭喜你猜中了",number)breakelif inputNum >= min and inputNum < number:min = inputNumelif inputNum <= max and inputNum > number:max = inputNumif __name__ == '__main__':main()總結
以上是生活随笔為你收集整理的用python写猜数字游戏的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Conflux CTO伍鸣博士应邀出席金
- 下一篇: 到底是人玩了游戏,还是游戏玩了人?---