python 除数为0_Python中防止程序运行的零除法

该博客讲述了作者在开发一个多项选择测验项目时遇到的问题,当用户未回答任何问题时,由于正确率计算涉及到除以0,导致程序无法运行。作者分享了项目的代码,并寻求解决方案。代码包括生成随机问题、用户交互和统计答题情况的部分,其中`percentage`变量的计算可能会导致零除错误。
摘要由CSDN通过智能技术生成

我还在为我的多项选择测验项目而辛苦工作。我快到了。只有几个虫子还没解决。这个程序会记录你得到的正确的,错误的,以及当前的百分比。但是,我的程序不会运行,因为最初,用户没有回答任何问题。因此,它们的正确率为NULL%。我的代码如下:import random

import sys

import os

import math

right_answer_total = float(0)

wrong_answer_total = float(0)

answer_total = float(right_answer_total + wrong_answer_total)

percentage = 100 * (float(right_answer_total) / float(answer_total))

word_drills = {'class': 'Tell Python to make a new kind of thing.',

'object': 'Two meanings: the most basic kind of thing, and any instance of some thing.',

'instance': 'What you get when you tell Python to create a class.',

'def': 'How you define a function inside a class.',

'self': 'Inside the functions in a class, self is a variable for the instance/object being accessed.',

'inheritance': 'The concept that one class can inherit traits from another class, much like you and your parents.',

'composition': 'The concept that a class can be composed of other classes as parts, much like how a car has wheels.',

'attribute': 'A property classes have that are from composition and are usually variables.',

'is-a': 'A phrase to say that something inherits from another, as in a Salmon *** Fish',

'has-a': 'A phrase to say that something is composed of other things or has a trait, as in a Salmon *** mouth.'}

def start():

# For loop that creates a list named keys. It grabs 3 random keys from the dictionary word_drills

keys = [x for x in random.sample(word_drills, 3)]

# User is presented with a question. A value from the previous randomly selected keys is selected as the 'question'

correctanswer = word_drills[random.choice(keys)]

print "Question: ", correctanswer

# Set the variables key1, key2, & key3 to the 3 keys in the list 'keys'

key1, key2, key3 = keys[0], keys[1], keys[2]

# User is presented with 3 choices.

print "\n\n(a)%s (b)%s (c)%s" % (key1, key2, key3)

a, b, c = word_drills[key1], word_drills[key2], word_drills[key3]

selection = raw_input("> ")

print selection

if selection == "a":

if a == correctanswer:

print "That's correct!"

answered_correctly()

else:

print "I'm sorry, that is incorrect..."

not_answered_correctly()

elif selection == "b":

if b == correctanswer:

print "That's correct!"

answered_correctly()

else:

print "I'm sorry, that is incorrect..."

not_answered_correctly()

elif selection == "c":

if c == correctanswer:

print "That's correct!"

answered_correctly()

else:

print "I'm sorry, that is incorrect..."

not_answered_correctly()

else:

print "That is not a valid selection."

exit(0)

def answered_correctly():

global right_answer_total

right_answer_total += 1

stat_tracking()

def not_answered_correctly():

global wrong_answer_total

wrong_answer_total += 1

stat_tracking()

def stat_tracking():

os.system('cls' if os.name=='nt' else 'clear')

print "-" * 37

print "| Stat Tracking |"

print "-" * 37

print "| Correct | Incorrect | Percentage |"

print "-" * 37

print "| %d | %d | %d %% |" % (right_answer_total, wrong_answer_total, percentage)

print "-" * 37

print "\n\n\n"

start()

stat_tracking()

我不确定是否有一个解决办法,或者我可能做的一切都错了。任何和所有的援助将不胜感激。谢谢。在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值