Change colour of text depending on 'if' statement - colors

this is my firdt post and i need some hepl. I have started learning pyhon and have got to the point where i am ready to make my own program.
I am writing a program that is a 'stat' checker for the MMO 'Realm of the Mad God' and want to be able to change the colour of the text depending on whether the stat is < or > 0.
I have looked on this forum and the answers are either too complicated for my non-programers mind or not relevant to what i need.
essentially, i would like the extract of code below to print in diffreent colours depending on what 'if' statement the computer runs.
if hpc < 0:
print (' HP is above average by ' + hpc)
else:
if hpc == 0:
print (' HP is average')
If anybody can help me with this and attempt to explain it in 'simple' language, i would be much obliged,
Thanks in advance!

You need to add a module to python to accomplish this task in Windows. The colorama module can do this. https://pypi.python.org/pypi/colorama Alternatively, you can try using the win32api for python (it will work on 64 bit Windows I think) http://sourceforge.net/projects/pywin32/

Related

How to get rid of the error 'EOFError: EOF when using input() after having used sys.stdin.readlines() in a different function?

I am trying to replicate an Excel VBA macro to Python for the sake of learning a new programming language and I am stuck at a point which Google alone is not helping (I guess I do not even know what to look for). Could you please give it a try?
What I expect the program to do:
When running the user should be prompted with a few options and if the input is 0 then it should ask for a multi line input containing a full HTML source code from this website Steam Tools
After the input the user is expected to hit CTRL+D / CTLR+Z to confirm there is nothing else to add (I think the problem is here, maybe it is not able to "clear" the EOF error while using input() again?)
Then as an ouput the program should return the first 10 rows delimited by comma and create another input() to avoid the window to autoclose.
What the issue is:
When I run it from the desktop (double cliking the .py file) it autocloses withouth creating the last input().
When I run it from PyCharm it runs OK and the last input remains waiting for user action. However, it does dump an error like this:
File "D:/Stuff/_root/py/Steam/steam_cards_manager.py", line 51, in z_parse_tbody
input('\nCopy the program output and type Back:') EOFError: EOF when reading a line
Any feedback is appreciated as I don't know if I am doing things in an easy / effcient way.
I've upload my .py file and also a sample HTML to make it easier to replicate the issue, hope it helps.
https://github.com/brmenezewe/db
It turned out that I had to replace the CTRL+D shortcut by a "trigger" word that when sent via a single input() it breaks the While loop and joins the inputs previously received:
def z_input_lines():
lines = []
while True:
line = input()
if not line or line.lower() != "go":
lines.append(line)
else:
break
return "".join(lines)

I'm trying to use the turtle methods, etc. listed on the official python page but I keep getting errors

I'm using turtle to create a video game.
I'm making this program for a virtual class, and I don't know the exact limitations of the (online) IDLE provided. I'm not currently able to test my code in any other environment. I don't want to use pygame or anything because I don't know if I can and also I don't want to rewrite a bunch of my code.
The problems I'm having are mostly with the TurtleScreen/Screen. I can't call .Screen() or .TurtleScreen(), .bgcolor(), .turtlesize(), and probably a lot more I haven't checked yet. Here's an example:
bg = turtle.Screen()
turt = turtle.Turtle()
bg.bgcolor("black")
I just receive a
ParseError: bad input
when I run it. Any input is much appreciated!
A parse error usually comes from python being unable to parse your code rather than an issue with Turtle.
The code snippet you posted above works fine so the problem is likely with some other lines of code that precede it. Double check your syntax on lines before the error occurs and make sure there aren't any missing parenthesis, brackets, quotes, etc that would impact later lines.

Create a program that asks the user for a string and then prints the string in upper case

EDIT: I tried the code lines in the link to other questions that were similar, however the programs did not execute correctly
I am a full-on noob trying to complete some free online resources for self improvement and learning. I am using University of Waterloo's 'Python from scratch' and CS circles course I have tried to answer this question and cannot seem to:
Write a program that asks the user for a string and then prints the string in upper case.
I have tried:
print (str(input()).upper)
AS WELL AS
text = input()
print (text.upper)
AND
print(input().upper())
all programs run, but dont have correct output so I dont know what I am missing here. It's likely obvious and I may feel foolish
I would love to learn and move on, thanks for any assistance!
this is 'Python from scratch' 2.11 problem 'g' (7th problem in set)
You were very close, the following works:
input.upper()
so, print(input.upper())
should work for you.
text=input()
print(text.upper())
print(input().upper())
This should have worked for you in Python 3.x

Python colorama not working with input?

Finally got colorama working today, and it works excellent when printing strings, but I got the common error everyone seems to get when I attempted to use colorama with input.
Here's my code:
launch = input(Fore.GREEN + "Launch attack?(Y/N): ")
Screenshot of output:
I had this same issue (Python 3.5.4) and, just in case it is not too obvious for somebody else looking at this, you can always rely on the workaround of combining print / input calls where you previously had just an input call:
print(Fore.GREEN + "Launch attack?(Y/N): ", end='')
launch = input()
This should produce the exact same output as in your question, with no extra blank lines and with the code coloring working without the need of importing anything else.
The (small?) disadvantage is that you you will end up with two lines of code where you previously had just one.
On my system, input() works with colors if you add
import sphinx.quickstart
to your module.
So here is the full code.
from colorama import Fore
import colorama
import sphinx.quickstart
colorama.init()
launch = input(Fore.GREEN + "Launch attack? (Y/N): ")
(This leads to two questions:
Why does it not work in the first place?
What is the actual reason? – Someone might like to dive into the sphinx source code.)
N.B. if you run python via winpty from Git Bash, set convert.
colorama.init(convert=True)
Otherwise, you do not get color with the current versions.
To get rid of this problem in the starting of the code add
import os
os.system('cls')
This will clear the screen and hence clear all the external factors blocking the colorama in input.
This works 100% you just need to do it once in the starting of the program [or just before the first use of colorama with input] and after that use colorama in any creative way you want to.
I hope this will help all the creative minds trying to make their codes more colourful
just make sure about the 'autoreset' in init()
init(autoreset=True)

Novice with Python

I have just downloaded Python 3.3.2 to use on windows7 and run the msi file to install. After installation I have tried using the prog only to find that every time I run my initial print 'hello world' it keeps reporting a syntax error.
I have tried both single and double quotes but each time reports a syntax. It will add say 8 + 9 and return the answer but no joy with using a print statement.
I have tried both the shell and a new window but without success.
Any advice please much appreciated.
If you are using Python 3.x, you have to do print('hello world').
In Python 2.x, print was a statement, like if, for, etc. Now it is a function, thus the ().
You're probably using instructions for a python-2 program, where print was a statement, rather than a function. In python >= 3, you have to do print(something), rather than just print something.

Resources