[Tutor] new line to list of strings send by email

2016-01-08 Thread Emil Natan
Hello list,

I have a function which receives a string and sends it as a body of an
email.

It is a part of a program which does certain checks on network
infrastructure. When a check fails I append error message to a
error_collector list:


if self.check_axfr_refused(ip):
 error_collector.append('%s:%s AXFR test for %s FAILED' %
   (ns, ip, self.domainname))

At the  end I send the alert like this:

if len(error_collector) != 0:
email_body = str(error_collector)
email_alert(email_body)

The problem is the resulted email (expectedly) has the alert message as one
long string.

['pdns6.ultradns.co.uk.:204.74.115.1 AXFR test for amazon.com FAILED',
'pdns6.ultradns.co.uk.:2610:a1:1017::1 AXFR test for amazon.com FAILED',
'ns4.p31.dynect.net.:204.13.251.31 AXFR test for amazon.com FAILED',...]

I tried adding '\n' to end of each string error_collector collects, but
then these were simply added to the resulted email.

What I want to achieve is that each collected error is shown on a separate
line in the email. Any advice will be well appreciated.

Here is the email sending function if in interest:

def email_alert(message, recipient=DEFAULT_RECIPIENT, subject_prefix=''):
''' Send email alert. '''
# check if we are running in quiet mode
if QUIET.lower() == 'yes':
return
msg = MIMEText(message)
msg['From'] = SENDER
msg['To'] = recipient
msg['Subject'] = subject_prefix + SUBJECT

s = smtplib.SMTP(SMTP_SERVER)
s.send_message(msg)
s.quit()

Emil
___
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor


Re: [Tutor] Hi Dear!

2016-02-04 Thread Emil Natan
On Thu, Feb 4, 2016 at 2:49 PM, Alexa kun  wrote:

> Hi Dear!
> I newbie and read 2.1.2. Interactive Mode
> https://docs.python.org/3/tutorial/interpreter.html
>
> but when I type
>
> >>> the_world_is_flat = True
> >>> if the_world_is_flat:
> ... print("Be careful not to fall off!")
>
> I got answer
>
> IndentationError: expected an indented block
>
> [root@localhost /]# python3
> Python 3.4.3 (default, Jun 29 2015, 12:15:26)
> [GCC 5.1.1 20150618 (Red Hat 5.1.1-4)] on linux
> Type "help", "copyright", "credits" or "license" for more information.
>
> >>> the_world_is_flat = True
> >>> if the_world_is_flat:
> ... print(Be careful not to fall off!)
>   File "", line 2
> print(Be careful not to fall off!)
> ^
> IndentationError: expected an indented block
> >>>
>
>

You should have the print function indented, usually by 4 spaces. This is
how Python knows which commands to be executed as part of the if block. So
this is what you'll make your code work:

 >>> the_world_is_flat = True
>>> if the_world_is_flat:
... print("Be careful not to fall off!")
...
Be careful not to fall off!

The interpreter also tries to help you, it puts ... at the begging of the
line (instead of >>>) which means it expect some indentation.

Emil

I have installed Python3 in Linux Fedora 23
> Please tell my why Python3 doesn't work?
>
> Sincerely!
> Alexander
> ___
> Tutor maillist  -  Tutor@python.org
> To unsubscribe or change subscription options:
> https://mail.python.org/mailman/listinfo/tutor
>
___
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor


Re: [Tutor] beginning encryption

2018-04-19 Thread Emil Natan
if char != alphabet:

should be

if char not in alphabet:

Otherwise you are comparing char with alphabet. What you want to do if to
check if char is in alphabet.

Emil

On Thu, Apr 19, 2018 at 2:39 AM, Roger Lea Scherer  wrote:

> I am absolutely stumped. I've tried a number of different scenarios and
> copied the answer more than I like, but I still can't figure this out. I
> don't want to copy the answer verbatim because then I won't learn.
>
> I'm doing the beginning cipher, mix up the letters routine. I get the
> entire Gettysburg address with no alterations in this form of the code (and
> a few others I've tried). I do not receive any error, but I expect the
> character in the Gettysburg address to change to the index position in the
> encryption variable.
>
> What am I not getting?
>
> Thank you as always.
>
>
>
> address = """Four score and seven years ago our fathers brought forth on
> this continent, a new nation,
> conceived in Liberty, and dedicated to the proposition that all men are
> created equal.
> Now we are engaged in a great civil war, testing whether that nation, or
> any nation so conceived
> and so dedicated, can long endure. We are met on a great battle-field of
> that war. We have come
> to dedicate a portion of that field, as a final resting place for those who
> here gave their lives that
> that nation might live. It is altogether fitting and proper that we should
> do this.
> But, in a larger sense, we can not dedicate -- we can not consecrate -- we
> can not hallow -- this ground.
> The brave men, living and dead, who struggled here, have consecrated it,
> far above our poor power
> to add or detract. The world will little note, nor long remember what we
> say here, but it can never
> forget what they did here. It is for us the living, rather, to be dedicated
> here to the unfinished work
> which they who fought here have thus far so nobly advanced. It is rather
> for us to be here dedicated
> to the great task remaining before us -- that from these honored dead we
> take increased devotion
> to that cause for which they gave the last full measure of devotion -- that
> we here highly resolve
> that these dead shall not have died in vain -- that this nation, under God,
> shall have a new birth
> of freedom -- and that government of the people, by the people, for the
> people, shall not perish
> from the earth."""
>
> alphabet = "abcdefghijklmnopqrstuvwxyz"
> encryption = "nopqrstuvwxyzabcdefghijklm"
>
>
> def encryptor(address):
> encrypted = ""
> for char in address:
> if char != alphabet:
> encrypted += char
> else:
> pos = alphabet.index(char)
> encrypted += encryption[pos]
> print(encrypted)
>
> encryptor(address)
>
>
> --
> Roger Lea Scherer
> 623.255.7719
> ___
> Tutor maillist  -  Tutor@python.org
> To unsubscribe or change subscription options:
> https://mail.python.org/mailman/listinfo/tutor
>
___
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor