Introduction & Porgram Requirements for the Higher Lower Game

Solution & Walkthrough of the Higher Lower Game

Which Gets Googled More? Play The Higher Lower Game

Top 100 按關注數排序 Instagram網紅排行榜 - NoxInfluencer

import random
import requests
from bs4 import BeautifulSoup
html_doc = requests.get('<https://tw.noxinfluencer.com/instagram-channel-rank/top-100-tw-all-sorted-by-followers-weekly>').text
soup =BeautifulSoup(html_doc, 'lxml')

name=[]
name2=[]
name_inside=[]
is_game_over = False

article_tags = soup.find_all('div',class_='table-body')
for number in article_tags:
    number_tit = number.find_all('span',class_='title pull-left ellipsis')
    #number_num = number.find_all('span',class_='number', class_='rank-cell pull-left rank-followers') 錯的
    number_num = number.find_all('span', class_='number')

for fancy in range(3, 400, 4):
    name2.append(float((number_num[fancy].text)[:-2]) * 10000)

for data in number_tit:
    name.append(data.text)

def get_a_number():
    xx = random.randint(0, 99)
    return xx

def get_a_name():
    yy = get_a_number()
    if yy in name_inside:
        get_a_name()
    else:
        name_inside.append(yy)
    return name[yy], name2[yy]

def Compare_scores(user_chose_name, npc_chose_name):
    user_score = int(name2[name.index(user_chose_name)])
    npc_score = int(name2[name.index(npc_chose_name)])
    if user_score > npc_score:
        anwser =(f"you win, {user_chose_name} 粉絲有 {user_score} 人,{npc_chose_name} 粉絲有 {npc_score} 人!")
        win_name = user_chose_name
        return anwser, 1, win_name

    elif user_score < npc_score:
        anwser = (f"you lose, {user_chose_name} 粉絲有 {user_score} 人,{npc_chose_name} 粉絲有 {npc_score} 人!")
        return anwser, 0, "lose"

aa_name, aa_value = get_a_name()
# bb_name, bb_value = get_a_name()

score = 0

while not is_game_over:
    bb_name, bb_value = get_a_name()
    user_chose = input(f"誰的粉絲比較多,'A :' {aa_name},'B : '{bb_name},請選擇 :").lower()
    if user_chose == "a":
        who_win, x, win_name = Compare_scores(aa_name, bb_name)
    else:
        who_win, x, win_name = Compare_scores(bb_name, aa_name)

    # if len(name_inside) == 100:
    #     print("100分,大贏家!")
    #     is_game_over = True

    if x == 0:
        is_game_over = True
        print(who_win)
        print(f"game over,你得到 {score} 分")
    elif x == 1:
        score += 1
        print(who_win)
        if score == 100:
            print("100分,大贏家!")
            is_game_over = True
        else:
            print(f'你得到 {score} 分,請繼續')
        aa_name = win_name
        # bb_name, bb_value = get_a_name()
2022/03/08
調整後的版本

import random
import requests
from bs4 import BeautifulSoup
html_doc = requests.get('<https://tw.noxinfluencer.com/instagram-channel-rank/top-100-tw-all-sorted-by-followers-weekly>').text
soup =BeautifulSoup(html_doc, 'lxml')

name=[]
name2=[]
name_inside=[]
is_game_over = False

article_tags = soup.find_all('div',class_='table-body')
for number in article_tags:
    number_tit = number.find_all('span',class_='title pull-left ellipsis')
    #number_num = number.find_all('span',class_='number', class_='rank-cell pull-left rank-followers') 錯的
    number_num = number.find_all('span', class_='number')

for fancy in range(3, 400, 4):
    name2.append(float((number_num[fancy].text)[:-2]) * 10000)

for data in number_tit:
    name.append(data.text)

def get_a_number():
    xx = random.randint(0, 99)
    while xx in name_inside:
        xx = random.randint(0, 99)
    return xx

def get_a_name():
    yy = get_a_number()
    name_inside.append(yy)
    #print(name_inside)
    #print(name[yy], name2[yy])
    return name[yy], name2[yy]

def Compare_scores(user_chose_name, npc_chose_name):
    user_score = int(name2[name.index(user_chose_name)])
    npc_score = int(name2[name.index(npc_chose_name)])
    if user_score > npc_score:
        anwser =(f"you win, {user_chose_name} 粉絲有 {user_score} 人,{npc_chose_name} 粉絲有 {npc_score} 人!")
        win_name = user_chose_name
        return anwser, 1, win_name

    elif user_score < npc_score:
        anwser = (f"you lose, {user_chose_name} 粉絲有 {user_score} 人,{npc_chose_name} 粉絲有 {npc_score} 人!")
        return anwser, 0, "lose"

aa_name, aa_value = get_a_name()
# bb_name, bb_value = get_a_name()

score = 0

while not is_game_over:
    bb_name, bb_value = get_a_name()
    #print(name_inside)
    user_chose = input(f"誰的粉絲比較多,'A :' {aa_name},'B : '{bb_name},請選擇 :").lower()
    if user_chose == "a":
        who_win, x, win_name = Compare_scores(aa_name, bb_name)
    else:
        who_win, x, win_name = Compare_scores(bb_name, aa_name)

    if x == 0:
        is_game_over = True
        print(who_win)
        print(f"game over,你得到 {score} 分")
    elif x == 1:
        score += 1
        print(who_win)
        if score >= 99:
            print("大贏家!")
            is_game_over = True
        else:
            print(f'你得到 {score} 分,請繼續')
        aa_name = win_name

Study Tip : Set Reminders in Your Calendar to Review