Python/Basic Code

From r00tedvw.com wiki
(Difference between revisions)
Jump to: navigation, search
(For loops)
(Loops)
Line 357: Line 357:
 
   print index, item</nowiki>
 
   print index, item</nowiki>
  
 +
===Multiple lists with zip===
 +
This allows you to iterate over multiple lists at the same time.
 +
<nowiki>list_a = [3, 9, 17, 15, 19]
 +
list_b = [2, 4, 8, 10, 30, 40, 50, 60, 70, 80, 90]
 +
 +
for a, b in zip(list_a, list_b):
 +
  print a + " " + b</nowiki>
 
==While Loop==
 
==While Loop==
 
Loops until the condition is met.
 
Loops until the condition is met.

Revision as of 00:48, 6 May 2021

Contents

reserved words

These are some words that you should not use in python as they are reserved.

list
reserved word that should not be used as a variable name.

variables

variables can be integers, floats, or boolean. Integers are whole numbers, floats are numbers with remainders, boolean is either True of False.
variable=integer

float vars

If you want the fraction included in the var, you need to define it as a float, otherwise python will automatically round the result to a whole number.

 floating_var = float(7)/2

This will give you the fraction from dividing 7/2.

convert int to string

age = 13
print str(age)

convert string to int

n1 = "100"
n2 = "10"
int_addition = int(n1) + int(n2)

convert to float

n1 = "7.5"
print float(n1)

verify is alpha (letters) only

variable_name.isalpha()
ie.
if variable.isalpha():

arithmetic operators

add/subtract/multiply/divide/exponentiation/modulo

exponentiation (exponential, similar to square roots)

2 ** 3=8   (2*2*2)

modulo (remainder)

5 % 2=1  (5/2 = 2 with a remainder of 1)

shorthand

+= add vars and update first var
ie. sandwich_price += sales_tax

-= subtract vars and update first var
ie. money_in_wallet -= sandwich_price

comments

# for single like quote or """ quote """ for multi line quote
#quote
"""quote
quote"""

print

display output

print "Hello World"

display specific letter, left to right, 0 forward

print "TEST"[0] = "T"

strings

multi-line string

for strings that span multiple lines, use triple quotes
address_string = """136 Whowho Rd
Apt 7
Whosville, WZ 44494"""

string continuation

it appears you can continue a string by using \ though i've only seen this behavior using string concatenation
ie. 
print "Ah, so your name is %s, your quest is %s, " \
"and your favorite color is %s." % (name, quest, color)

string methods

len() ; lower() ; upper() ; str()

len() = get length of string - applies to anything within the parentheses

len(length)   =   6

lower() = convert to lowercase - applies to only the value after the "." . Dot notation only works on strings

LOWERCASE.lower()   =   lowercase

upper() = convert to uppercase - applies to only the value after the "." . Dot notation only works on strings

uppercase.upper()   =   UPPERCASE

str() = convert to string - applies to anything within the parentheses

str(3.14)   =   "3.14"

String Formatting

concatenating strings through short hand
string_1 = "Camelot"
string_2 = "place"
print "Let's not go to %s. 'Tis a silly %s." % (string_1, string_2)

define var length

when doing concatenating, you can specify the var length to be displayed. this is especially helpful with numbers when trying to apply formatting.

print '%02d:%02d:%02d' % (now.hour, now.minute, now.second)
21:02:18

notice how the minute is 02. If this was not defined to be (2) digits, it would have only been a 2 without the preceeding 0.

user input

by default, raw_input creates a variable defined as a string.

variable = raw_input("display message")
name=raw_input("display message")

If you want to define another type of variable, such as an int or float, you can wrap the raw_input function like so:

number = int(raw_input("Enter Number:"))

slice

parse certain characters from a variable
x=variable
 print x[1:3]
 ari
 
 x=variable
 print [3:len(x)]
 iable

slicing a string can be tricky too. think about this example [:3], this says to slice characters 0 through 3 from the string, however it does not include 3. the key to the logic is the word upto, we are slicing from 0 upto 3. In otherwords, if you think about it as a fraction, we slice from 0 to 2.9999..., so it would NOT be inclusive of the 3rd character.
this is also why if we do [3:] that would be from, we are slicing from 3 to the end of the string, ie. 3+, so it would be inclusive of the 3rd character.

Lists

Another data type, lists can be used to store a list of items.

ie. numbers = [5, 6, 7, 8]

Lists can also be empty.

numbers = []

Access by Index

You can access individual items, starting from 0.

ie. numbers = [5, 6, 7, 8]
print numbers[3]
>8

slicing

slicing lists is a bit weird compared to accessing by index. Rather than starting at 0, you actually start at 1 when calling multiple items.

ie. letters = ['a', 'b', 'c', 'd']
first_pair = letters [0:2]
second_pair = letters [3:4]

if you try to start at 0, it prints out an empty list.

print letters [0:0]
> []

I'm not sure why it behaves like this.

removing

There are a few different ways to remove items from lists.

.pop()

returns the item being removed and then removes it from the list.

n = [1, 3, 5]
n.pop(1)
# Returns 3 (the item at index 1)
print n
# prints [1, 5]

.remove()

removes the actual item if found

n.remove(1)
# Removes 1 from the list,
# NOT the item at index 1
print n
# prints [3, 5]

del()

deletes the item at the given index

del(n[1])
# Doesn't return anything
print n
# prints [1, 5]

remove character special value

like with regular expression, you can remove a characters normal value by adding \ in front, however this does not work with all characters in python
'Help! Help! I\'m being repressed!'

Comparators

basic comparisons

==, !=, <, <=, >, or >=

Tuple

You can use a tuple as a way to compare against multiple values. I've only used it when doing an equal == comparison.

if type(num) in (int, float):
  return abs(num)

In other words, if the type of the num parameter is equal to either int or float, then return the absolute value against 0.

Boolean Operators

and, or, or not

true, false

True and True is True
True and False is False 
False and True is False
False and False is False
 
True or True is True
True or False is True
False or True is True
False or False is False
 
Not True is False
Not False is True

this() and not that()

Conditional Statements

if, else, and elif.
def clinic():
   print "You've just entered the clinic!"
   print "Do you take the door on the left or the right?"
   answer = raw_input("Type left or right and hit 'Enter'.").lower()
   if answer == "left" or answer == "l":
       print "This is the Verbal Abuse Room, you heap of parrot droppings!"
   elif answer == "right" or answer == "r":
       print "Of course this is the Argument Room, I've told you that already!"
   else:
       print "You didn't pick left or right! Try again."
       clinic()

clinic()

not in, or, and, is

some comparisons that can be used are:

not in

if var not in range(x):

or

if var == x or var == y:

and

if var == x and var == y:

is

if var is x:

datetime

builtin function within python with date time variable.

print

print datetime.now()

manipulate

print datetime.now().year
print datetime.now().month
print datetime.now().day

functions

functions are defined using def

ie. def my_function()

parameters

parameters can be passed into a function inline when it is called.

ie def my_function(var_a, var_b, var_c)

return

return returns the chosen value from the function, you can chose any value you want. Without return, the function will return None.

ie. def test_func(num):
  number = num * 1
  return number

print test_func(1)
>1

def test_func2(num):
  number = num * 1

print test_func2(1)
>None

Python baked in functions

max()

returns the largest number from X arguments

ie.
def biggest_number(*args):
  return max(args)

min()

opposite of max, gives the smallest number from X arguments

ie.
def smallest_number(*args):
  return min(args)

abs()

absolute value from 0.

ie.
print abs(5)
>5

type()

returns the type of data in the argument. (ie, is it an int or float or string, etc)

number_ = int(1)
float_ = float(4.5)
string_ = str("hello")

print type(number_)
print type(float_)
print type(string_)

append()

append a single (1) item to a list. You cannot use append() to add more than a single item at a time without outside help.

list.append(1)

extend()

extend the length of a list, you can also add multiple items natively.

suitcase.extend(["bathing suit", "towel", "sunscreen"])

index()

search for an item in a list

animals = ["ant", "bat", "cat"]
print animals.index("bat")

insert()

insert an item into a specific list position, shifting any existing items.

animals = ["ant", "bat", "cat"]
animals.insert(1, "dog")
print animals
> ["ant", "dog", "bat", "cat"]

sort()

sort a list smallest to largest, can be either numbers or letters.

function.sort()

remove()

remove item from a list.

listname.remove('value')
ie. backpack.remove('dagger')

range()

generates a list

range(stop)

stops at the specified interval

range(6) # => [0, 1, 2, 3, 4, 5]

range(start,stop)

starts and stops at the specified intervals

range(1, 6) # => [1, 2, 3, 4, 5]

range(start,stop,step)

starts and stops at the specified intervals within a specific iteration.

range(1, 6, 3) # => [1, 4]

Modules

import

you can import functions from modules to make reusing code easier. There are also built-in functions already in python to help save you time.

 import math
 math.sqrt(25)
> 5.0 

you can also import single functions to save you a bit of typing, albeit not much.

from module import function
ie. from math import sqrt

now you can call the function directly without having to put the module in front.

 sqrt()

or import all the functions

from module import *

List all functions from a module

import math
print dir(math)

Loops

For loops

very similar to other scripting languages. Looping through a list will begin with the 0th element and go to the last.

 for future_var in list
ie.
numbers [1, 2, 3]
for x in numbers
  print x

dictionary loop

dictionaries are unordered, so every time you loop through, it will go in a different order.

d = {"foo" : "bar"}
for key in d:
  print d[key]

counted loop

sometimes you need to loop through a list and run a series of actions against each element individually

n = [3, 5, 7]
for i in range(0, len(n)):
  n[i] = n[i] * 2

implicit loops

Another way to do this is with an implicit count. notice how num is never defined nor is there a defined method to increase the num value.

hobbies = []

for num in range(3):
  hobby =  raw_input("Tell me one of your favorite hobbies: ")
  hobbies.append(hobby)

print hobbies


You can also do a similar method for printing individual characters in a string.

word = "eggs!"

# Your code here!
for c in word:
  print c

Enumerate

This function supplies a corresponding index to each element in a list.

choices = ['pizza', 'pasta', 'salad', 'nachos']

print 'Your choices are:'
for index, item in enumerate(choices):
  print index, item

Multiple lists with zip

This allows you to iterate over multiple lists at the same time.

list_a = [3, 9, 17, 15, 19]
list_b = [2, 4, 8, 10, 30, 40, 50, 60, 70, 80, 90]

for a, b in zip(list_a, list_b):
  print a + " " + b

While Loop

Loops until the condition is met.

while True:
  print count
  count += 1
  if count >= 10:
    break

Dictionaries

Dictionaries use key-value pairs which allow a common (or uncommon) association of values. key-value pairs can be any string or number.
You can also add lists into dictionaries.

d = {'key1' : 'value1', 'key2' : 'value2', 'key3' : 'value3'}
ie.
residents = {'Puffin' : 104, 'Sloth' : 105, 'Burmese Python' : 106}
for animal in residents:
  if animal in ('Sloth','Burmese Python'):
    print residents[animal]
> 105
> 106

adding to dictionary

to add to an existing dictionary

dict_name[new_key] = new_value
menu['Spam'] = 2.50

deleting from dictionary

single

to delete a single entry its easy.

del dict_name[key_name]
ie. del num_list[num_1]

multiple

Alternatively, if you need to delete multiple entries from a dictionary, it becomes a bit trickier as you can't loop using the dictionary you are modifying. If you do, you'll encounter an error because the dictionary size changes during iteration.
A solution to this is creating a list of the items to be deleted.

ie.
zoo_animals = { 'Unicorn' : 'Cotton Candy House',
'Sloth' : 'Rainforest Exhibit',
'Bengal Tiger' : 'Jungle House',
'Atlantic Puffin' : 'Arctic Exhibit',
'Rockhopper Penguin' : 'Arctic Exhibit'}

dead_animals = ('Sloth', 'Bengal Tiger')
for animal in dead_animals:
  if zoo_animals.has_key(animal):
    del zoo_animals[animal]

The above will loop through the list called dead_animals, then look in the zoo_animals dictionary for any matching keys, and if found, delete the key from zoo_animals.

Personal tools
Namespaces

Variants
Actions
Navigation
Mediawiki
Confluence
DevOps Tools
Open Source Products
Ubuntu
Ubuntu 22
Mac OSX
Oracle Linux
AWS
Windows
OpenVPN
Grafana
InfluxDB2
TrueNas
MagicMirror
OwnCloud
Pivotal
osTicket
OTRS
phpBB
WordPress
VmWare ESXI 5.1
Crypto currencies
HTML
CSS
Python
Java Script
PHP
Raspberry Pi
Canvas LMS
Kaltura Media Server
Plex Media Server
MetaSploit
Zoneminder
ShinobiCE
Photoshop CS2
Fortinet
Uploaded
Certifications
General Info
Games
Meal Plans
NC Statutes
2020 Election
Volkswagen
Covid
NCDMV
Toolbox