这是Python上的一个bug还是我需要学习更多关于逻辑的东西?

2024-05-14 00:28:17 发布

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

在那段代码中,这个操作不起作用,我知道如果我把str转换成int,它就会起作用 但问题是:为什么第一个代码运行良好,而第二个代码运行不好

第一个代码是python 3:

disciplina = input('digite suas disciplina ')
nota_final = input ('digite sua nota final (entre 0 e 100)')

 if disciplina =='Historia' and nota_final >= '70' :
    print('Você foi aprovado !')
else:
    print('Você precisa estudar mais ')

第二代码python 3:

aluno = input('Você é um bom aluno ?')
nota = input ('Quanto você costuma tirar na prova ?')

 if aluno =='sim' and nota >= '10' :
   
   print( 'Parabéns você é demais !')
else:
   print('Você precisa estudar mais')

obs:在第一个代码中,如果您键入的数字小于70,则代码工作正常;在第二个代码中,如果您键入的数字小于10,则代码工作不正常,原因是什么?在您说“您需要将第二个代码nota转换为int(输入(“texto”),然后我问您为什么第一个代码不需要它(在nota_final=input(“text”)中都是字符串)


Tags: and代码inputifvocelsefinalint
1条回答
网友
1楼 · 发布于 2024-05-14 00:28:17

字符串之间的比较是从左到右逐个字符进行的,因此字符串“9”大于“10”,因为比较以“9”大于“1”开始

为了让Python将数字作为实际数字进行处理,您需要将它们转换为数字数据类型(例如int(nota_final) > 70),或者右对齐字符串(例如nota_final.rjust(3) > ' 70'请注意,转换为数字类型将有较少的边缘案例需要管理

相关问题 更多 >