Maryam Tavakol Machine Learning Group

Total Page:16

File Type:pdf, Size:1020Kb

Maryam Tavakol Machine Learning Group Hello Python! Maryam Tavakol Machine Learning Group Winter semester 2016/17 1 Programs & Programming • A program is a set of instructions • Every program is written in terms of a few basic operations that its reader already understands • Defining new operations and combining them to do useful things is the heart and soul of programming 2 Programming Languages 3 Compiler vs. Interpreter *http://www.c4learn.com/c-programming/compiler-vs-interpreter/ 4 Run a Python Program • The Python program is saved in a file • The program is executed by Python interpreter • Interacting with it is possible in a program called a shell Expressions: Arithmetic >>> 4+13 17 • Unary & binary operators 6 Expressions: Arithmetic • Operator precedence • A collection of rules which defined the order of operations >>> 212 - 32 * 5 / 9 194.2223 >>> (212 - 32) * 5 / 9 100.0 7 Expressions: Arithmetic 8 Expressions: Comparison >>> 2 == 2 #Equality True >>> 2 != 2 #Inequality Comments! False >>> 0 < 2 < 5 #Chained inequality True >>> 2 > 2 False 9 Expressions: Boolean Operators • The operator not yields True if its argument is false, False otherwise >>> not 1 == 1 False • The expression x and y first evaluates x; if x is false, its value is returned; otherwise, y is evaluated and the resulting value is returned >>> 2 == 2 and 1 != 1 True • The expression x or y first evaluates x; if x is true, its value is returned; otherwise, y is evaluated and the resulting value is returned >>> 2 == 2 or 1 != 1 False 10 Variables • A variable holds information (1.343, ‘hi’, [1,3,6,7]) • In Python this is simple: 11 Variables • Their values can vary as the program executes • (no more knowledge of old values) 12 Variables >>> degree_celsius = 26.0 >>> 9 /5 * degree_celsius + 32 78.8 >>> difference = 100 - degree_celsius >>> diference 74 13 Types • Type consists of: • set of possible values • set of operations that can be applied to those values • Unlike C/C++ and Java, variables can change types. (Python internally keeps track of the type.) 14 Computer Memory >>> degree_celsius = 26.6 • Value 26.0 has the memory address: id1 • The object at the memory address id1 has type float and the value 26.0 • Variable “degrees_celsius” contains the memory address id1 • Variable “degrees_celsius” refers to the value 26.0 15 Assignment Statement «variable» = «expression» • Executes as follows: 1. Evaluate the expression to produce a value. (with a memory address) 2. Store the memory address of the value in the variable. (Create a new variable otherwise, or reuse the existing variable) 16 Reassigning to Variables Consider this code: >>> difference = 20 >>> double = 2 * difference >>> double 40 >>> difference = 5 >>> double 40 Augmented Assignment • To create shorthand notation: >>> score = 50 >>> score = 50 >>> score >>> score 50 50 >>> score += 20 >>> score = score + 20 >>> score >>> score 70 70 18 Augmented Assignment 19 Bugs • Something went wrong… >>> 3 + moogah Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'moogah' is not defined >>> 3 + ^ SyntaxError: invalid syntax 20 Statement Split • Two possible ways: 1. Make sure your line break occurs inside parentheses 2. Use the line-continuation character, backslash, \ 21 Summary • Programs and Python interpreter • Expressions; arithmetic, comparison, boolean • Variables and types • Computer memory 22.
Recommended publications
  • Chapter 2 Core Basics
    Chapter 2 Core Basics In this chapter we introduce some of the basic concepts that are important for understanding what is to follow. We also introduce a few of the fundamental operations that are involved in the vast majority of useful programs. 2.1 Literals and Types Section 1.3 introduced the string literal. A string literal is a collection of characters enclosed in quotes. In general, a literal is code that exactly represents a value. In addition to a string literal, there are numeric literals. There are actually a few different types of numeric values in Python. There are integer values which correspond to whole numbers (i.e., the countable numbers that lack a fractional part). In Python, an integer is known as an int. A number that can have a fractional part is called a float (a float corresponds to a real number). For example, 42 is an int while 3.14 is a float. The presence of the decimal point makes a number a float—it doesn’t matter if the fractional part is zero. For example, the literal 3.0, or even just 3., are also floats1 despite the fact that these numbers have fractional parts of zero.2 There are some important differences between how computers work with ints and floats. For example, ints are stored exactly in the computer while, in general, floats are only stored approximately. This is a consequence of the fact that we are entering numbers as decimal numbers, i.e., numbers in the base 10 counting system, but the computer stores these numbers internally as a finite number of binary (base 2) digits.
    [Show full text]
  • Lecture 3: Its Time to See the C
    Computer Science 61C Spring 2017 Friedland and Weaver Lecture 3: Its time to see the C... 1 Agenda Computer Science 61C Spring 2017 Friedland and Weaver • Computer Organization • Compile vs. Interpret • C vs Java 2 ENIAC (U.Penn., 1946) First Electronic General-Purpose Computer Computer Science 61C Spring 2017 Friedland and Weaver • Blazingly fast (multiply in 2.8ms!) • 10 decimal digits x 10 decimal digits • But needed 2-3 days to setup new program, as programmed with patch cords and switches • At that time & before, "computer" mostly referred to people who did calculations 3 EDSAC (Cambridge, 1949) First General Stored-Program Computer Computer Science 61C Spring 2017 Friedland and Weaver • Programs held as numbers in memory • This is the revolution: It isn't just programmable, but the program is just the same type of data that the computer computes on • 35-bit binary 2’s complement words 4 Components of a Computer Computer Science 61C Spring 2017 Friedland and Weaver Memory Processor Input Enable? Read/Write Control Program Datapath Address PC Bytes Write Registers Data Arithmetic & Logic Unit Read Data Output (ALU) Data Processor-Memory Interface I/O-Memory Interfaces 5 Great Idea: Levels of Representation/Interpretation Computer Science 61C Spring 2017 Friedland and Weaver temp = v[k]; High Level Language v[k] = v[k+1]; We are here! Program (e.g., C) v[k+1] = temp; lw $t0, 0($2) Compiler Anything can be represented lw $t1, 4($2) Assembly Language as a number, sw $t1, 0($2) Program (e.g., MIPS) i.e., data or instructions sw $t0, 4($2)
    [Show full text]
  • Unary Operator
    Introduction to Python Operations and Variables 1 Topics 1) Arithmetic Operations 2) Floor Division vs True Division 3) Modulo Operator 4) Operator Precedence 5) String Concatenation 6) Augmented Assignment 2 Arithmetic Operations 3 Mixing Types Any expression that two floats produce a float. x = 17.0 – 10.0 print(x) # 7.0 When an expression’s operands are an int and a float, Python automatically converts the int to a float. x = 17.0 – 10 print(x) # 7.0 y = 17 – 10.0 print(y) # 7.0 4 True Division vs Floor Division The operator / is true division and the operator // returns floor division(round down after true divide). True divide / always gives the answer as a float. print(23 // 7) # 3 print(3 // 9) # 0 print(-4 // 3) # -2 print(6 / 5) # 1.2 print(6 / 3) # 2.0 NOT 2! 5 Remainder with % The % operator computes the remainder after floor division. • 14 % 4 is 2 • 218 % 5 is 3 3 43 4 ) 14 5 ) 218 12 20 2 18 15 3 Applications of % operator: • Obtain last digit of a number: 230857 % 10 is 7 • Obtain last 4 digits: 658236489 % 10000 is 6489 • See whether a number is odd: 7 % 2 is 1, 42 % 2 is 0 6 Modulo Operator The operator % returns the modulus which is the remainder after floor division. print(18 % 5) # 3 print(2 % 9) # 2, if first number is smaller, it's the answer print(125 % 10) # 5 print(0 % 10) # 0 print(10 % 0) # ZeroDivisionError 7 Why floor/modulo division is useful Floor division allows us to extract the integer part of the division while the modulo operator extracts the remainder part of the division.
    [Show full text]
  • Icon Analyst 8
    In-Depth Coverage of the Icon Programming Language October 1991 Number 8 subject := OuterEnvir.subject object := OuterEnvir.object s_pos := OuterEnvir.s_pos In this issue … o_pos := OuterEnvir.o_pos fail String Synthesis … 1 An Imaginary Icon Computer … 2 end Augmented Assignment Operations … 7 procedure Eform(OuterEnvir, e2) The Icon Compiler … 8 local InnerEnvir Programming Tips … 12 InnerEnvir := What’s Coming Up … 12 XformEnvir(subject, s_pos, object, o_pos) subject := OuterEnvir.subject String Synthesis object := OuterEnvir.object s_pos := OuterEnvir.s_pos In the last issue of the Analyst, we posed the problem o_pos := OuterEnvir.o_pos of implementing a string-synthesis facility for Icon, using the ideas given earlier about modeling the string-scanning control suspend InnerEnvir.object structure. OuterEnvir.subject := subject Our solution is given below. First we need procedures OuterEnvir.object := object analogous to the procedure used for modeling string scanning. OuterEnvir.s_pos := s_pos In addition to a subject, there’s now an “object”, which is the OuterEnvir.o_pos := o_pos result of string synthesis. There now also are two positions, subject := InnerEnvir.subject one in the subject and one in the object. The global identifiers object := InnerEnvir.object subject, object, s_pos, and o_pos are used for these four s_pos := InnerEnvir.s_pos “state variables” in the procedures that follow. (In a real o_pos := InnerEnvir.o_pos implementation, these would be keywords.) fail The string synthesis control structure is modeled as end expr1 ? expr2 → Eform(Bform(expr1),expr2) Most of the procedures specified in the last issue of the are straightforward. Care must be taken, however, The procedures Bform() and Eform() are very similar Analyst to assure that values assigned to the positions are in range — to Bscan() and Escan() used in the last issue of the Analyst this is done automatically for the keyword &pos, but it must for modeling string scanning.
    [Show full text]
  • View the Index
    INDEX Numbers and Symbols __(double underscore), using in 256 objects and 257 objects, 154–155 dunder methods, 322. See also ./, using with Ubuntu, 42 underscore (_) /? command line argument, 25–26 / (forward slash) = assignment operator, 113 purpose of, 18 == comparison operator, 113, 336 using with command line chaining, 103, 105 arguments, 25 using to compare objects, 154 # (hash mark) using with None, 94–95 using with comments, 183 != comparison operator, 336 using with docstrings, 188 * and ** syntax [] (index operator), using, 117 using to create variadic functions, ; (semicolons), using with timeit 167–171 module, 226–227 using to create wrapper functions, ' (single quote), using, 46 171–172 ~ (tilde), using in macOS, 23 using with arguments and - (unary operator), 155–157 functions, 166–167 + (unary operator), 156–157 * character, using as wildcard, 28–29 _ (underscore) ? character, using as wildcard, 28–29 PEP 8’s naming conventions, [:] syntax, using, 104 60–61 < comparison operator, 337 as prefix for methods and <= comparison operator, 337 attributes, 291–292 > comparison operator, 337 private prefix, 81 >= comparison operator, 337 using with _spaces attribute, 290 -> (arrow), using with type hints, 191 using with dunder methods, 120 \ (backslash) using with private attributes and purpose of, 18 methods, 283 using with strings, 95 using with WizCoin class, 279 : (colon), using with lists, 97–98, 104 , (comma), including in single-item A tuples, 150 abcTraceback.py program, saving, 4 - (dash), using with command line __abs__() numeric dunder arguments, 25 method, 328 $ (dollar sign), using in macOS, 23 absolute versus relative paths, 20–21 . (dot), using with commands, 31 __add__() numeric dunder method, 327 -- (double dash), using with command addToTotal() function, creating, line arguments, 25 172–173 algebra for big O, 236 base class, relationship to algorithm analysis.
    [Show full text]
  • If We Dont Declare Keyword Static
    If We Dont Declare Keyword Static If expositive or harborless Thornie usually miching his inby brabbling super or predestinated stingingly and theatrically, how unruffled is Daren? Rube puke thoughhis Akkadian Peyton comps induing unshakably, his incomprehensiveness but demulcent Harcourt preappoint. never specialise so outlandishly. Inmost and rebel Aloysius quintuplicating almost suspiciously, Factory methods that scope for data besides the instantiation until recently and useful to be called from the stack overflow the static serve any developer should declare static if we dont need dark matter Java and scope, if we dont declare keyword static. If we dont need it into a nonthrowing method if my own risk of indexing, if we dont declare keyword static fields or auto variable? Then we dont want to declaration at the keyword in the namespace. Like declaring a declaration in my name, declare them the struct static methods are not supported in their intended use is. Suppose you dont need it becomes available in many issues with a keyword? Dm hold data field does hold distinct value you if we dont declare keyword static, but can be striving to. So if you declare more memory is declared locally in this keyword was good style guide to. If we declare two different keywords used to declaring multiple interfaces. The declaration to declare methods if you dont want to use the different keywords used with? Svalbard and remember that keyword, log stuff exported by making a functional, if we dont declare static keyword in scope of. The result in java is if they use a c compiler you if we dont declare static keyword in java, we dont want.
    [Show full text]
  • 2.13 Augmented Assignment Operators
    Chapter 2 Elementary Programming 2.1 Introduction • You will learn elementary programming using Java primitive data types and related subjects, such as variables, constants, operators, expressions, and input and output. 2.2 Writing Simple Programs • Writing a program involves designing algorithms and data structures, as well as translating algorithms into programming code. • An Algorithm describes how a problem is solved in terms of the actions to be executed, and it specifies the order in which the actions should be executed. • Computing an area of a circle. The algorithm for this program can be described as follows: 1. Read in the Radius 2. Compute the area using the following formula: Area = radius * radius * ∏ 3. Display the area. • Java provides data types for representing integers, floating-point numbers, characters, and Boolean types. These types are known as primitive data types. • When you code, you translate an algorithm into a programming language understood by the computer. • The outline of the program is: public class ComputeArea { public static void main(String[] args) { double radius; // Declare radius double area; // Declare area // Assign a radius radius = 20; // New value is radius // Compute area area = radius * radius * 3.14159; // Display results System.out.println("The area for the circle of radius " + radius + " is " + area); } } CMPS161 Class Notes (Chap 02) Page 1 / 21 Dr. Kuo-pao Yang • The program needs to declare a symbol called a variable that will represent the radius. Variables are used to store data and computational results in the program. • Use descriptive names rather than x and y. Use radius for radius, and area for area.
    [Show full text]
  • Explicit and Controllable Assignment Semantics
    Explicit and Controllable Assignment Semantics Dimitri Racordon Didier Buchs University of Geneva University of Geneva Centre Universitaire d’Informatique Centre Universitaire d’Informatique Switzerland Switzerland [email protected] [email protected] Abstract continuing growth in computing power, contemporary pro- Despite the plethora of powerful software to spot bugs, iden- gramming languages can sit at very high levels of abstrac- tify performance bottlenecks or simply improve the over- tions, letting developers convey their intent with great ex- all quality of code, programming languages remain the first pressiveness. Unfortunately, this evolution also brings the and most important tool of a developer. Therefore, appro- potential for more inadvertent behaviors, as the small imper- priate abstractions, unambiguous syntaxes and intuitive se- fections in these many layers of abstractions usually have mantics are paramount to convey intent concisely and effi- deep consequences on a language’s semantics. This is partic- ciently. The continuing growth in computing power has al- ularly true for the imperative paradigm, in which the inter- lowed modern compilers and runtime system to handle once play between variables and memory can prove to be a pro- thought unrealistic features, such as type inference and re- lific source of puzzling bugs. For instance, most mainstream flection, making code simpler to write and clearer to read. object-oriented programming languages have a limited sup- Unfortunately, relics of the underlying memory model still port to express aliasing explicitly, blurring the distinction transpire in most programming languages, leading to con- between object mutation and reference reassignment, and fusing assignment semantics. often leading to erroneous assumptions about sharing and This paper introduces Anzen, a programming language immutability.
    [Show full text]
  • Idiomatic Python 1 Idiomati
    Cambridge University Press 978-1-108-48884-6 — Numerical Methods in Physics with Python Alex Gezerlis Excerpt More Information Idiomatic Python 1 Idiomati That which you inherit from your forefathers, you must make your own in order to truly possess it. Johann Wolfgang von Goethe This chapter is not intended as an introduction to programming in general or to program- ming with Python. A tutorial on the Python programming language can be found in the online supplement to this book; if you’re still learning what variables, loops, and functions are, we recommend you go to our tutorial (see Appendix A) before proceeding with the rest of this chapter. You might also want to have a look at the (official) Python Tutorial at www.python.org. Another introduction to Python, with nice material on visualization, is Ref. [41]. Programming, like most other activities, is something you learn by doing. Thus, you should always try out programming-related material as you read it: there is no royal road to programming. Even if you have solid programming skills but no familiarity with Python, we recommend you work your way through one of the above resources, to famil- iarize yourself with the basic syntax. In what follows, we will take it for granted that you have worked through our tutorial and have modified the different examples to carry out further tasks. This includes solving many of the programming problems we pose there. What this chapter does provide is a quick summary of Python features, with an emphasis on those which the reader is more likely not to have encountered in the past.
    [Show full text]
  • Lecture 3.2: Overview Keywords in C
    EECS10: Comp. Methods in ECE Lecture 3 Lecture 3.2: Overview • Keywords in C • Counters – Augmented Assignment Operators – Increment and Decrement Operators • Repetition Statements – while loop • Counter-controlled repetition –Example Average.c • Sentinel-controlled repetition –Example Average2.c EECS10: Computational Methods in ECE, Lecture 3 (c) 2013 R. Doemer 1 Keywords in C • List of keywords in ANSI-C – auto – double – int – struct – break – else – long – switch – case – enum – register – typedef – char – extern – return – union – const – float – short – unsigned – continue – for – signed – void – default – goto – sizeof – volatile – do – if – static – while – These keywords are reserved! – Keywords cannot be used as identifiers. – More keywords are reserved for C++ EECS10: Computational Methods in ECE, Lecture 3 (c) 2013 R. Doemer 2 (c) 2013 R. Doemer 1 EECS10: Comp. Methods in ECE Lecture 3 Augmented Assignment Operators • Assignment operator: = – evaluates right-hand side – assigns result to left-hand side • Augmented assignment operators: +=, *=, ... – evaluates right-hand side as temporary result – applies operation to left-hand side and temporary result – assigns result of operation to left-hand side • Example: Counter – int c = 0; /* counter starting from 0 */ – c = c + 1; /* counting by regular assignment */ – c += 1; /* counting by augmented assignment */ • Augmented assignment operators: – +=, -=, *=, /=, %=, <<=, >>=, ||=, &&= EECS10: Computational Methods in ECE, Lecture 3 (c) 2013 R. Doemer 3 Increment and Decrement Operators
    [Show full text]
  • Python Is Fun! (I've Used It at Lots of Places!)
    "Perl is worse than Python because people wanted it worse." -- Larry Wall (14 Oct 1998 15:46:10 -0700, Perl Users mailing list) "Life is better without braces." -- Bruce Eckel, author of Thinking in C++ , Thinking in Java "Python is an excellent language[, and makes] sensible compromises." -- Peter Norvig (Google), author of Artificial Intelligence What is Python? An Introduction +Wesley Chun, Principal CyberWeb Consulting [email protected] :: @wescpy cyberwebconsulting.com goo.gl/P7yzDi (c) 1998-2013 CyberWeb Consulting. All rights reserved. Python is Fun! (I've used it at lots of places!) (c) 1998-2013 CyberWeb Consulting. All rights reserved. (c) 1998-2013 CyberWeb Consulting. All rights reserved. I'm here to give you an idea of what it is! (I've written a lot about it!) (c) 1998-2013 CyberWeb Consulting. All rights reserved. (c) 1998-2013 CyberWeb Consulting. All rights reserved. I've taught it at lots of places! (companies, schools, etc.) (c) 1998-2013 CyberWeb Consulting. All rights reserved. (c) 1998-2013 CyberWeb Consulting. All rights reserved. About You SW/HW Engineer/Lead Hopefully familiar Sys Admin/IS/IT/Ops with one other high- Web/Flash Developer level language: QA/Testing/Automation Java Scientist/Mathematician C, C++, C# Toolsmith, Hobbyist PHP, JavaScript Release Engineer/SCM (Visual) Basic Artist/Designer/UE/UI/UX Perl, Tcl, Lisp Student/Teacher Ruby, etc. Django, TurboGears/Pylons, Pyramid, Plone, Trac, Mailman, App Engine (c) 1998-2013 CyberWeb Consulting. All rights reserved. Why are you here? You… Have heard good word-of-mouth Came via Django, App Engine, Plone, etc. Discovered Google, Yahoo!, et al.
    [Show full text]
  • Java Compound Assignment Operators
    Java Compound Assignment Operators Energising and loutish Harland overbuy, but Sid grimly masturbate her bever. Bilobate Bjorn sometimes fleets his taxman agnatically and pugs so forthwith! Herding Darryl always cautions his eucalyptuses if Tuckie is wordless or actualized slap-bang. Peter cao is? 1525 Assignment Operators. This program produces a deeper understanding, simple data type expressions have already been evaluated. In ALGOL and Pascal the assignment operator is a colon if an equals sign enhance the equality operator is young single equals In C the assignment operator is he single equals sign flex the equality operator is a retention of equals signs. Does assign mean that in mouth i j is a shortcut for something antique this i summary of playing i j java casting operators variable-assignment assignment. However ask is not special case compound assignment operators automatically cast. The arithmetic operators with even simple assignment operator to read compound. Why bug us see about how strings a target object reference to comment or registered. There are operators java does not supported by. These cases where arithmetic, if we perform a certain number of integers from left side operand is evaluated before all classes. Free Pascal Needs Sc command line while Go Java JavaScript Kotlin Objective-C Perl PHP Python Ruby Rust Scala SystemVerilog. Operator is class type integer variable would you have used. Compound assignment operators IBM Knowledge Center. The 2 is it example of big compound assignment operator which. To him listening to take one, you want to true or equal to analyze works of an integer data to store values.
    [Show full text]