我想在Python的一行代码上打印多个函数。我目前正在使用在print语句之后放置逗号的方法
print("Hello, my name is " + introName + " and I have a " +outroName+.",)
但它打印得像这样
('Hello, my name is Arthur\n and I have a secret.',)
如何摆脱\n
()
和'
?
答案 0 :(得分:2)
最后,private class Model {
}
private class Event {
private Long id;
private Model model;
public Event(Long id) {
this.id = id;
}
public Event(Long id, Model model) {
this.id = id;
this.model = model;
}
}
private class Async {
public Observable<Event> get(Event event) {
return Observable.just(new Event(1L, new Model())).observeOn(Schedulers.io()); // doing this to simulate an
// operation on another
// thread
}
}
private class Bucket {
public Async async() {
return new Async();
}
}
private List<Event> events() {
return Arrays.asList(new Event(1L), new Event(2L), new Event(3L));
}
private Bucket bucket = new Bucket();
@Test
public void observableTest() throws Exception {
//@formatter:off
List<Observable<Pair<Event, Map<Long, Model>>>> observables = new ArrayList<>();
for (Event e : events()) {
observables.add(
bucket
.async()
.get(e)
.map(event -> {
System.out.println("Thread: [" + Thread.currentThread().getName() + "] - received event response, converting to map");
Map<Long, Model> map = new HashMap<>();
map.put(event.id, event.model);
return map;
})
.map(map -> {
System.out.println("Thread: [" + Thread.currentThread().getName() + "] - pairing response with event");
return Pair.of(e, map);
}));
}
CountDownLatch latch = new CountDownLatch(1);
Map<Event, Map<Long, Model>> events = new HashMap<>();
Observable
.merge(observables)
.observeOn(Schedulers.newThread())
.filter(pair -> {
System.out.println("Thread: [" + Thread.currentThread().getName() + "] - filtering responses");
return pair.getValue() != null;
})
.subscribeOn(Schedulers.newThread())
.subscribe(pair -> {
System.out.println("Thread: [" + Thread.currentThread().getName() + "] - inserting response into map");
events.put(pair.getKey(), pair.getValue());
},
e -> {
fail();
},
() -> {
latch.countDown();
});
//@formatter:on
latch.await();
System.out.println("Thread: [" + Thread.currentThread().getName() + "] - map count");
assertEquals(3, events.size());
}
值包含introName
,您可以使用\n
删除它。
strip()
你的行应该是:
introName.strip('\n')
更好的是使用format()
这样:
print("Hello, my name is " + introName.strip('\n') + " and I have a " + outroName.strip('\n'))
<强>输出:强>
s = "Hello, my name is {} and I have a {}".format(introName.strip('\n'), outroName.strip('\n'))
print(s)