python-猜单词小游戏及一些基础练习

程序很简单,最近爬虫写多了,换换口味。巩固一下基础,并不断的完善自己的代码风格,让代码更加规范。

同时我减少了注释,甚至根本没有加注释,因为,我觉得加注释只会让优雅的代码变得复杂。增加代码长度,而且以python语言的特性,读起来应该没有什么困难。就没加注释了,以后只会在非常重要的地方加注释,然后在函数声明后加说明文档。


给定一个单词列表,随机选一个单词,输入一个字母,如果再所选的字母中,就继续,且有次数限制。

选中的单词显示为单词长度个_,比如选中的是‘dog’。
效果如下:

python-猜单词小游戏及一些基础练习_第1张图片
image.png
import random

def pick_word(words):
    return random.choice(words)

def factory(word, guess, s, list_word):
    s[list_word.index(guess)] = guess
    list_word[list_word.index(guess)] = '_'
    
def get_guess_word():
    return input("Guess a letter?\ninput:")

def main(words):
    word = pick_word(words)
    time = TIME
    list_word = list(word)
    s = ['_' for i in word]

    while True:
        if list_word == ['_' for i in word]:
            print('All right! word :{0}\nTime left:{1}!'.format(word, time))
            break
        if time < 0:
            print('Time out!\n')
            break
        
        for x in s:
            print(x, end=' ') 
        print('\ntime remaining:{0}!'.format(time))
        guess = get_guess_word()
        if guess in list_word:
            print('right!\n')
            time -= 1
            factory(word, guess, s, list_word)
        else:
            print('wrong!\n')
            time -= 1

WORDS = ['append','dog','cat','pig','forg','ant','hen']
TIME = 14


if __name__ == '__main__':
    main(WORDS)

程序中值得注意的一点:

  • 当单词中的字母重复时,比如,add这个单词,如何判断啊输入的d是第几个位置。

判断输入的数是否是偶数,如果是偶数输出True,奇数输出False。不用乘法、除法、取余。

def is_even(k):
    return True if format(k, 'b')[-1] == '0' else False


if __name__ == '__main__':
    k = 11
    print(is_even(k))

利用位操作,利用format(obj, ‘b’)将输入的对象转换为二进制,如果是偶数,则它的二进制最后一位一定是0,如果是奇数,它的二进制,最后一位一定是1,所以可以用这个特点判断输入的数是否是偶数。


编写一个函数,输入参数n,输出1~n的平方和。

def func(n):
    result = []
    for i in range(1, n+1):
        result.append(i**2)
    return sum(result)


if __name__ == '__main__':
    print(func(10))

你可能感兴趣的:(python-猜单词小游戏及一些基础练习)