程序很简单,最近爬虫写多了,换换口味。巩固一下基础,并不断的完善自己的代码风格,让代码更加规范。
同时我减少了注释,甚至根本没有加注释,因为,我觉得加注释只会让优雅的代码变得复杂。增加代码长度,而且以python语言的特性,读起来应该没有什么困难。就没加注释了,以后只会在非常重要的地方加注释,然后在函数声明后加说明文档。
给定一个单词列表,随机选一个单词,输入一个字母,如果再所选的字母中,就继续,且有次数限制。
选中的单词显示为单词长度个_,比如选中的是‘dog’。
效果如下:
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))