简体   繁体   中英

How to use python to print strings as processing like this

I want to write a function to print out string like this:

Found xxxx...

for x is result calculating by another function. It only print one line, sequential, but not one time. Example: I want to print my_name but it'll be m.... and my.... and my_...., at only line. Can i do this with python? Sorry I can't explain clearly by english.

UPDATE

Example code;

import requests

url = 'http://example.com/?get='
list = ['black', 'white', 'pink']

def get_num(id):
    num = requests.get(url+id).text
    return num
def print_out():
    for i in list:
        num = get_num(i)
if __name__ == '__main__':
    #Now at main I want to print out 2...  (for example, first get_num value is 2) and after calculating 2nd loop print_out, such as 5, it will update 25...
    #But not like this:
    #2...
    #25...
    #25x...
    #I want to it update on one line :)

If you are looking to print your output all in the same line, and you are using Python 2.7, you can do a couple of things.

First Method Py2.7 Simply doing this:

# Note the comma at the end
print('stuff'),

Will keep the print on the same line but there will be a space in between

Second Method Py2.7

import sys
sys.stdout.write("stuff")

This will print everything on the same line without a space. Be careful, however, as it only takes type str . If you pass an int you will get an exception.

So, in a code example, to illustrate the usage of both you can do something like this:

import sys
def foo():
    data = ["stuff"]
    print("Found: "),
    for i in data:
        sys.stdout.write(i)
    #if you want a new line...just print
    print("")

foo()

Output: Found: stuff

Python 3 Info

Just to add extra info about using this in Python 3, you can simply do this instead:

print("stuff", end="")

Output example taken from docs here

>>> for i in range(4):
...     print(i, end=" ")
... 
0 1 2 3 >>> 
>>> for i in range(4):
...     print(i, end=" :-) ")
... 
0 :-) 1 :-) 2 :-) 3 :-) >>> 
s = "my_name"
for letter in range(len(s)):
    print("Found",s[0:letter+1])

Instead of 's' you can just call function with your desired return value.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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