Python Forum
output correction using print() function
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
output correction using print() function
#1
HI everyone , can you help me to solve this task please specially the first question for others

print(" *")
print(" * *")
print(" * *")
print(" * *")
print("*** ***")
print(" * *")
print(" * *")
print(" *****")

Try to:

minimize the number of print() function invocations by inserting the \n sequence into the strings
make the arrow twice as large (but keep the proportions)

duplicate the arrow, placing both arrows side by side; note: a string may be multiplied by using the following trick: "string" * 2 will produce "stringstring" (we'll tell you more about it soon)

remove any of the quotes, and look carefully at Python's response; pay attention to where Python sees an error - is this the place where the error really exists?

do the same with some of the parentheses;

change any of the print words into something else, differing only in case (e.g., Print) - what happens now?
replace some of the quotes with apostrophes; watch what happens carefully.
Reply
#2
As far as understand this, you would only need 1 print statement.
Either concatenate everything into 1 string mixed with the '\n' ,
or make a list of the words, and print in a for loop.
?
Paul
It is more important to do the right thing, than to do the thing right.(P.Drucker)
Better is the enemy of good. (Montesquieu) = French version for 'kiss'.
Reply
#3
(Aug-10-2020, 09:39 AM)afefDXCTN Wrote: HI everyone , can you help me to solve this task please specially the first question for others

print(" *")
print(" * *")
print(" * *")
print(" * *")
print("*** ***")
print(" * *")
print(" * *")
print(" *****")

Try to:

minimize the number of print() function invocations by inserting the \n sequence into the strings
make the arrow twice as large (but keep the proportions)

duplicate the arrow, placing both arrows side by side; note: a string may be multiplied by using the following trick: "string" * 2 will produce "stringstring" (we'll tell you more about it soon)

remove any of the quotes, and look carefully at Python's response; pay attention to where Python sees an error - is this the place where the error really exists?

do the same with some of the parentheses;

change any of the print words into something else, differing only in case (e.g., Print) - what happens now?
replace some of the quotes with apostrophes; watch what happens carefully.

Here are some of my answers, I am sure there are better ones, but they do the trick.
#Original
print("    *")
print("   * *")
print("  *   *")
print(" *     *")
print("***   ***")
print("  *   *")
print("  *   *")
print("  *****")

#Minimizing the number of print invocations
print("    *\n   * *\n  *   *\n *     *\n***   ***\n  *   *\n  *   *\n  *****")


#Making the arrow twice as large (Keeping the proportions)
print("     *       ")            #<-- Had to add spaces before to correct distortion
print("    * *      ")            #<-- Had to add this line to correct distortion
print("   *"," *    ",sep=2*" ")   #<-- Add as many spaces as necessary inside sep argument
print("  * ","  *   ",sep=2*" ")
print(" *  ","   *  ",sep=2*" ")
print("*** ","  *** ",sep=2*" ")
print("  * ","  *   ",sep=2*" ")
print("  * ","  *   ",sep=2*" ")
print("  **","***   ",sep=2*"*")   #<-- Add as many "*" as necessary inside sep argument


#Duplicating the arrow placing both side by side
print(2*"    *     ") #<-- Add spaces after, otherwise the duplication will distort the arrow
print(2*"   * *    ")
print(2*"  *   *   ")
print(2*" *     *  ")
print(2*"***   *** ")
print(2*"  *   *   ")
print(2*"  *   *   ")
print(2*"  *****   ")
The final questions are for you to get familiar to Python's error and warning messages. Big Grin Big Grin
Reply
#4
To Make the arrow twice as large, you just need to convert every character of your string into a string, including the empty ones (spaces)

print(" "," "," "," ","*")
print(" "," "," ","*"," ","*")
print(" "," ","*"," "," "," ","*")
print(" ","*"," "," "," "," "," ","*")
print("*","*","*"," "," "," ","*","*","*")
print(" "," ","*"," "," "," ","*")
print(" "," ","*"," "," "," ","*")
print(" "," ","*","*","*","*","*")

This will add a space between each character and make it twice as large, and you won't have distortion problem
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  print doesnt work in a function ony 2 233 Mar-11-2024, 12:42 PM
Last Post: Pedroski55
  problem in output of a function akbarza 9 1,094 Sep-29-2023, 11:13 AM
Last Post: snippsat
  Python VS Code: using print command twice but not getting output from terminal kdx264 4 1,033 Jan-16-2023, 07:38 PM
Last Post: Skaperen
  How to print variables in function? samuelbachorik 3 851 Dec-31-2022, 11:12 PM
Last Post: stevendaprano
  How to output one value per request of the CSV and print it in another func? Student44 3 1,277 Nov-11-2022, 10:45 PM
Last Post: snippsat
  How to print the output of a defined function bshoushtarian 4 1,234 Sep-08-2022, 01:44 PM
Last Post: deanhystad
Sad Want to Save Print output in csv file Rasedul 5 10,681 Jan-11-2022, 07:04 PM
Last Post: snippsat
  Why does absence of print command outputs quotes in function? Mark17 2 1,340 Jan-04-2022, 07:08 PM
Last Post: ndc85430
  return vs. print in nested function example Mark17 4 1,672 Jan-04-2022, 06:02 PM
Last Post: jefsummers
Photo print output none 3lnyn0 4 1,756 Nov-01-2021, 08:46 PM
Last Post: 3lnyn0

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020