python解题_python 答题小游戏

#^_^coding=gbk ^_^

import linecache

#数据分割

f = [ x.replace('\n','') for x in linecache.getlines('a.txt')]

items = [filter(lambda k:k.startswith(str(x)),f) for x in range(1,6)]

items1 = filter(lambda k:k.startswith('A:'),f)

items2 = filter(lambda k:k.startswith('B:'),f)

items3 = filter(lambda k:k.startswith('C:'),f)

items4 = filter(lambda k:k.startswith('D:'),f)

answers = [ x.replace('\n','') for x in f if len(x) == 1 ]

#把正确答案组成一个字典,方便后面字典查询

answers_dict = { x:answers[x] for x in xrange(5)}

def test1():

'判断用户输入的答案和正确答案是否一样,正确加2分,错误-4'

score_list = 8

for x in range(len(items1)):

items_input = raw_input('{0}\n{1}\n{2}\n{3}\n{4} \n'.\

format(str(items[x][0]),items1[x],items2[x],items3[x],items4[x]))

if items_input.upper() == answers_dict[x]:

score_list += 2

print '恭喜您,回答正确! 您现在的分数是 %d' % score_list

else:

score_list = score_list - 4

print '回答错误 扣除4分! 您现在的分数是 %d' % score_list

welcome_info = raw_input('嘿嘿,欢迎来到<幸福小子>的python的小游戏世界.(y:进入,q:退出) :' )

while True:

if welcome_info == 'y':

raw_input('总共%d题,四个答案(A,B,C,D),选择其中一个答案,\n基础分数8分,\

答对一题加2分,错误减4分\n按回车继续' % len(items1))

test1()

break

else:

print '成功退出!!!!!'

break

答题小游戏解法2

#coding=gbk

import sys

import linecache

list = raw_input('嘿嘿,欢迎来到****的python的小游戏世界.(y:进入,q:退出。)')

if list.lower() != 'y':

print '您已经成功退出!!!'

sys.exit(0)

listdata = linecache.getlines('a.txt')

raw_input("规则:你现在有8个积分,以下5道问题,请输入A,B,C,D确定答案,答对得2分,答错扣4分,请按回车开始答题! ")

print "开始进入游戏咯"

mark = 8

for x in range(5):

x *= 7

answers = raw_input(''.join(listdata[x:x+5]))

if answers == 'q':

break

if answers.upper() == listdata[x+5][0]:

mark += 2

else:

mark -= 4

if mark <= 0:

print '您的分数已经小于0!!,请在来一次!!'

break

print '您现在的分数是 %d' %mark

a.txt 格式如下:

1.请问list与tuple有什么区别?

A: 可变与不可变类型

B: 动态与非动态类型

C: list和tuple可以相互转换

D: 以上三者皆是

A

2.如何终止while循环?

A: continue

B: break

C: ctrl+d

D: 以上三者都不是

B

3.已知一个字符串 s = "12345",现需要将 s 更改为 "a2345",请选择正确方法。

A: s[1] = "a"

B: s[0] = "a"

C: s.replace('0','a')

D: 以上三者皆不是

D

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值