如何使这一点,如果政治家

2024-10-05 10:08:55 发布

您现在位置:Python中文网/ 问答频道 /正文

fgrades=["90","70","63","81","49"]   
a=0
b=0    
c=0    
d=0    
f=0    
grades=raw_input("enter your final grade: ")    
fgrade+=(grades,)

for i in range(len(fgrades)):
   if fgrades[i]>="90":
      a+=1        
   elif fgrades[i]>="80":
      b+=1        
   elif fgrades[i]>="70":
       c+=1        
   elif fgrades[i]>="60":
       d+=1        
   else:
       f+=1

print a,"\n",b,"\n",c,"\n",d,"\n",f

当我把所有数字中的所有东西都放入F之后,即使输入96,也会发生这种情况。你知道吗


Tags: inforinputyourrawlenifrange
3条回答

首先,您尝试对字符串执行大于或等于数字的操作。如果要比较数字,则必须将它们转换为数字数据类型(int、float、decimal)。你知道吗

其次,安迪的评论也是正确的。fgrade还没有作为变量/对象存在。你知道吗

fgrades=[]   
a=0
b=0    
c=0    
d=0    
f=0    
grades=int(raw_input("enter your final grade: "))
fgrades += (grades,)

for i in range(len(fgrades)):
   if fgrades[i]>=90:
      a+=1        
   elif fgrades[i]>=80:
      b+=1        
   elif fgrades[i]>=70:
       c+=1        
   elif fgrades[i]>=60:
       d+=1        
   else:
       f+=1

print a,"\n",b,"\n",c,"\n",d,"\n",f

下面是一些建议,您可以考虑对代码进行修改。你知道吗

首先,您可以将for循环语句从

for i in range(len(fgrades)):
    ...

for i in fgrades:
    ....

因此接下来,您只需要对值i而不是fgrades[i]进行比较

所以你的代码是

fgrades=[]
a=0
b=0
c=0
d=0
f=0

grades=raw_input("enter your final grade: ")

# Clean up grades, and convert to an integer
grades = int(grades.strip().replace(" ","")

fgrade.append(grades)

for i in fgrade:

   if i>=90:
      a+=1        
   elif i >=80:
      b+=1        
   elif i >=70:
       c+=1        
   elif i >=60:
       d+=1        
   else:
       f+=1

print a,"\n",b,"\n",c,"\n",d,"\n",f

我在这里看到的一个问题是,您试图对字符串而不是数字执行不等式。尝试将输入值转换为整数。你知道吗

如果将fgrades中的值存储为整数,例如[90、70、60、88、96],那么这应该可以:

fgrades=[90, 70, 60, 88, 96]

a=0

b=0

c=0

d=0

f=0

grades=raw_input("enter your final grade: ")

# Clean up grades, and convert to an integer
grades = int(grades.strip().replace(" ","")

fgrades.append(grades)

for i in range(len(fgrades)):

   if fgrades[i]>=90:
      a+=1        
   elif fgrades[i]>=80:
      b+=1        
   elif fgrades[i]>=70:
       c+=1        
   elif fgrades[i]>=60:
       d+=1        
   else:
       f+=1

print a,"\n",b,"\n",c,"\n",d,"\n",f

否则,如果出于某种原因要求将成绩存储为字符串,例如[“90”、“70”、“63”、“81”、“49”],则以下内容适用于您:

fgrades= ["90","70","63","81","49"] 

a=0

b=0

c=0

d=0

f=0

grades=raw_input("enter your final grade: ")

# Clean up grades
grades = grades.strip().replace(" ","")

fgrades.append(grades)

for i in range(len(fgrades)):

   if int(fgrades[i])>=90:
      a+=1        
   elif int(fgrades[i])>=80:
      b+=1        
   elif int(fgrades[i])>=70:
       c+=1        
   elif int(fgrades[i])>=60:
       d+=1        
   else:
       f+=1

print a,"\n",b,"\n",c,"\n",d,"\n",f

相关问题 更多 >

    热门问题