【问题标题】:Join string inputs without creating newline加入字符串输入而不创建换行符
【发布时间】:2018-03-19 12:24:37
【问题描述】:

小盒子的宽高深:1x1x1

大盒子的宽高深:3x3x3

将适合3x3x3 框的1x1x1 数量为:27

我有一个类似的练习,使用 python3 来获得结果。

我做到了:

sb = input("Width, Height and Depth of small box: ")

s= 'x'

然后使用print(s.join(sb)),然后我在键入 111 后创建 1x1x1 的新行并输入我不想要的。我只是希望它在小盒子的 W、H 和 D 的同一条线上(当然是连接)。

但是我的学生学习的评分系统不仅拒绝了 1x1x1 换行符的答案,他们还指出错误为“1xxx1xxx1”。但它在换行符上正好是 1x1x1。

【问题讨论】:

    标签: python python-3.x join


    【解决方案1】:

    下面是一个示例,说明如何从一个字符串格式化多个输入:

    sb = input("Width, Height and Depth of small box separated by |: ")
    # User enters 3|3|3
    
    s = 'x'.join(sb.split('|'))
    
    print(s)
    # 3x3x3
    

    我们使用| 作为任意分隔符,因为它不太可能用于任何其他目的。

    【讨论】:

    • 谢谢。但是,如果我打印 x,它将在换行符上,与问题相比是不正确的:(我该如何解决这个问题?
    • 我不明白这个问题。打印时,输出3x3x3 将在一行上。
    • 我的意思是与小盒子的宽度、高度和深度在同一行:(。而且当我打印最后一行时,我不能划分 3x3x3 和 1x1x1,因为它们都有整数和字符串,即x. 我还应该在这里做什么?真的很感激!
    • 对不起,我不明白你的意思。尝试使用 concrete 示例编辑您的问题。在完整程序中指定执行您不期望/不希望它执行的操作的行。
    【解决方案2】:

    你可以试试:

    eval('1x1x1'.replace('x', '*'))
    #1
    eval('3x3x3'.replace('x', '*'))
    #27
    

    然后将这2个结果划分为:

    eval('3x3x3'.replace('x', '*')) / eval('1x1x1'.replace('x', '*'))
    

    但是,这不是一个好习惯。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-18
      • 1970-01-01
      • 2013-07-08
      • 2015-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多