Q2 : eval、input函数组合问题
代码如下:
num1 , num2 = eval(input(“请输入被除数和除数 , 用逗号来分隔”))
这段代码的原理是什么???
解释:
input函数接收到用户输入的两个数字字符串,eval函数则将字符串的引号去掉,转换成了数字类型,从而将这个表达式转换成了多重赋值表达式,如:x , y = 1 , 2
Q3 : print()函数输出多个格式化参数,提示TypeError错误
错误代码如下:
disroot = math.sqrt(deta)
root1 = (-b + disroot)/(2*a)
root2 = (-b - disroot)/(2*a)
print(“两个不同的解为%.2f %.2f” % root1 %root2)
运行时提示TypeError错误。
解释:
print()输出格式不对,正确的格式应该为print(“两个不同的解为%.2f %.2f” %(root1 , root2))
说明:
%与(root1 , root2)之间可以有空格,也可以没有
Q5 : 字符串利用while循环遍历时提示“Index_Error : string index out of range”
代码如下:
def drawDate(str):
i = 0
while str[i] != “”:
drawDigit(int(str[i]) , i)
i += 1
系统提示:
while str[i] != “”:
Index_Error : string index out of range
原因:
如果输入字符串“201405”,那么字符串的下标到5,当i=6时,退出循环,不过由于str[6]已经超出了该字符串的字符串长度,所以系统会报错
改进:
可使用“for i in str”的形式来遍历字符串,如果需要标识i是字符串中的第几个字符,可单独设置一整型变量a = 0,代码如下:
a=0
for i in str:
drawDigit(int(i) , a)
a += 1