简体   繁体   English

并排打印两个功能

[英]Print two functions side by side

This is my first time using python and I'm having trouble getting it to print the way I want. 这是我第一次使用python,但我无法以我想要的方式打印它。 I would like the output to be side by side. 我希望输出并排。 It might be because I'm tired, but I cant seem to figure this out. 可能是因为我累了,但我似乎无法弄清楚。

My Code: 我的代码:

def cToF():
    c = 0
    while c <= 100:
        print(c * 9 / 5 + 32)
        c += 1
def fToC():
    f = 32
    while f <= 212:
        print((f - 32) / 1.8)
        f += 1






print (cToF(),fToC())

OUTPUT: OUTPUT:

all of the numbers from cToF()
all of the numbers from fToC()

How I would like the OUTPUT: 我希望如何输出:

all of the numbers from cToF()    all of the numbers from fToC()

Currently, the cToF function runs and prints all it's values, then the fToC function runs and prints all it's values. 当前,cToF函数运行并打印所有值,然后fToC函数运行并打印所有值。 You need to change how you're generating the values so that you can print them side by side. 您需要更改生成值的方式,以便可以并行打印它们。

# generate f values
def cToF(low=0, high=100):
    for c in range(low, high + 1):
        yield c * 9 / 5 + 32

# generate c values
def fToC(low=32, high=212):
    for f in range(low, high + 1):
        yield (f - 32) * 5 / 9

# iterate over pairs of f and c values
# will stop once cToF is exhausted since it generates fewer values than fToC
for f, c in zip(cToF(), fToC()):
    print('{}\t\t{}'.format(f, c))
# or keep iterating until the longer fToC generator is exhausted
from itertools import zip_longest

for f, c in zip_longest(cToF(), fToC()):
    print('{}\t\t{}'.format(f, c))  # will print None, c once cToF is exhausted

If you're using Python 2, substitute xrange for range and izip_longest for zip_longest . 如果您使用的是Python 2, izip_longest xrange替换为range,将izip_longestzip_longest

If you want to print like; 如果要打印像;

cToF first Element fToC first element
cToF second Element fToC second element
...

You can join 2 list to print it. 您可以加入2个列表进行打印。

Example code that you can use; 您可以使用的示例代码;

import pprint
def cToF():
    c = 0
    ret_list = []
    while c <= 100:
        ret_list.append(c * 9 / 5 + 32)
        c += 1
    return ret_list

def fToC():
    f = 32
    ret_list = []
    while f <= 212:
        ret_list.append((f - 32) / 1.8)
        f += 1
    return ret_list

def join_list(first_list, second_list):
    length_of_first_list = len(first_list)
    for i, val in enumerate(second_list):
        second_list[i] = (" - "if (length_of_first_list-1) < i else first_list[i], val)
    return second_list

pp = pprint.PrettyPrinter(indent=4)
pp.pprint(join_list(cToF(), fToC()))

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM