【问题标题】:how can i calculate the average length of the strings entered如何计算输入字符串的平均长度
【发布时间】:2018-06-08 04:20:41
【问题描述】:

对于我的python作业,程序要求用户输入三个字符串并打印输入字符串的平均长度

我的代码:

name1 = input ("enter first string: ")
name2 = input ("enter second string: ")
name3 = input ("enter third string: ")

total_strings = (name1.split()) + (name2.split()) + (name3.split()) 

average =( len(name1) + len(name2) + len(name3) )/len(total_strings)

print("the average length is: " + str(average))

所以当我尝试它时,数学变得有点奇怪。

输入:

一个 ajhs jah sjajsh jahs jah jah jsh as

ajs jahjah sjhajsh jahs jah sjah jsh ajs

ajs ajhs jah sjahs jah sjah sjah jsh ajhs jah s

===== 此处测试失败=====

输入第一个字符串:输入第二个字符串:输入第三个字符串: 平均长度为:4.428571428571429


预期输出:


输入第一个字符串:输入第二个字符串:输入第三个字符串: 平均长度为:41.33

【问题讨论】:

  • 我认为您使用split() 使问题复杂化了。 lens = [len(name1), len(name2), len(name3)]; average = sum(lens)/len(lens) 之类的东西应该可以正常工作。
  • 哇,看起来我的回答过于复杂了。面膜好似乎工作得很好!

标签: python python-3.x


【解决方案1】:

在 python 2.7 中完美运行。

name1 = raw_input("enter first string: ")
name2 = raw_input("enter second string: ")
name3 = raw_input("enter third string: ")

average = (len(name1) + len(name2) + len(name3)) / 3

print("the average length is: " + str(average))

希望对你有帮助。

【讨论】:

    【解决方案2】:

    split() 正在创建一个字符串中的单词列表;这不是你想要的。

    要取平均值,你必须将字符串的长度相加,然后除以字符串的数量:

    name1 = input("enter first string: ")
    name2 = input("enter second string: ")
    name3 = input("enter third string: ")
    
    average = (len(name1) + len(name2) + len(name3)) / 3
    
    print("the average length is: " + str(average))
    

    【讨论】:

    • 最后一个问题如何将平均值转换为预期输出中的 2 位十进制浮点数。
    • round(1.12345, 2) ,会将给定的数字四舍五入到指定的小数位数。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-18
    • 1970-01-01
    • 2022-01-15
    • 1970-01-01
    • 1970-01-01
    • 2017-12-05
    相关资源
    最近更新 更多