Week 4 gur zntvp jbeqf ner fdhrnzvfu bffvsentr

Slides:



Advertisements
Similar presentations
Java Strings in 10 minutes
Advertisements

Unit 6 File processing Special thanks to Roy McElmurry, John Kurkowski, Scott Shawcroft, Ryan Tucker, Paul Beck for their work. Except where otherwise.
Week 5 while loops; logic; random numbers; tuples Special thanks to Scott Shawcroft, Ryan Tucker, and Paul Beck for their work on these slides. Except.
Introduction to Programming with Python Marty Stepp University of Washington Special thanks to Scott Shawcroft, Ryan Tucker,
Week 4 Strings, if/else, return, user input Special thanks to Scott Shawcroft, Ryan Tucker, and Paul Beck for their work on these slides. Except where.
Week 4 gur zntvp jbeqf ner fdhrnzvfu bffvsentr Strings, if/else, return, user input Special thanks to Scott Shawcroft, Ryan Tucker, and Paul Beck for their.
Strings, if/else, return, user input
Week 2 expressions, variables, for loops Special thanks to Scott Shawcroft, Ryan Tucker, Paul Beck, Hélène Martin, Kim Todd, John Kurkowski, and Marty.
Week 6 review; file processing Special thanks to Scott Shawcroft, Ryan Tucker, and Paul Beck for their work on these slides. Except where otherwise noted,
Week 6 review; file processing Special thanks to Scott Shawcroft, Ryan Tucker, and Paul Beck for their work on these slides. Except where otherwise noted,
INTRODUCTION TO PYTHON PART 3 - LOOPS AND CONDITIONAL LOGIC CSC482 Introduction to Text Analytics Thomas Tiahrt, MA, PhD.
1 Introduction to Programming with Python. 2 Some influential ones: FORTRAN science / engineering COBOL business data LISP logic and AI BASIC a simple.
Week #2 Java Programming. Enable Line Numbering in Eclipse Open Eclipse, then go to: Window -> Preferences -> General -> Editors -> Text Editors -> Check.
Unit 5 while loops; logic; random numbers; tuples Special thanks to Roy McElmurry, John Kurkowski, Scott Shawcroft, Ryan Tucker, Paul Beck for their work.
Python for Informatics: Exploring Information
CS50 Week 2. RESOURCES Office hours ( Lecture videos, slides, source code, and notes (
Unit 2 Expressions and variables; for loops Special thanks to Roy McElmurry, John Kurkowski, Scott Shawcroft, Ryan Tucker, Paul Beck for their work. Except.
Unit 6 File processing Special thanks to Roy McElmurry, John Kurkowski, Scott Shawcroft, Ryan Tucker, Paul Beck for their work. Except where otherwise.
Week 2 expressions, variables, for loops Special thanks to Scott Shawcroft, Ryan Tucker, and Paul Beck for their work on these slides. Except where otherwise.
Week 2 expressions, variables, for loops Special thanks to Scott Shawcroft, Ryan Tucker, Paul Beck, Hélène Martin, Kim Todd, John Kurkowski, and Marty.
Exploration Seminar 4 Basics Special thanks to Scott Shawcroft, Ryan Tucker, Paul Beck and Roy McElmurry for their work on these slides. Except where otherwise.
CSC 1010 Programming for All Lecture 3 Useful Python Elements for Designing Programs Some material based on material from Marty Stepp, Instructor, University.
Last Week Modules Save functions to a file, e.g., filename.py The file filename.py is a module We can use the functions in filename.py by importing it.
1 Introduction to Programming with Python: overview.
1 CS 177 Week 6 Recitation Slides Review for Midterm Exam.
If/else, return, user input, strings
Strings, if/else, user input
Strings CSE 1310 – Introduction to Computers and Programming Alexandra Stefan University of Texas at Arlington 1.
Strings CSE 1310 – Introduction to Computers and Programming Alexandra Stefan University of Texas at Arlington 1.
Python Arithmetic Operators OperatorOperationDescription +AdditionAdd values on either side of the operator -SubtractionSubtract right hand operand from.
Copyright 2010 by Pearson Education Building Java Programs Chapter 4 Lecture 4-3: Strings, char reading: 3.3, 4.3.
CSC 108H: Introduction to Computer Programming Summer 2011 Marek Janicki.
The Methods and What You Need to Know for the AP Exam
CSc 110, Autumn 2016 Lecture 9: input ; if/else Adapted from slides by Marty Stepp and Stuart Reges.
strings, if/else, user input
Adapted from slides by Marty Stepp and Stuart Reges
Lecture 8: Python Writing Scripts in GIS
Higher Order Functions
CIS3931 – Intro to JAVA Lecture Note Set 2 17-May-05.
Basic operators - strings
Building Java Programs
Building Java Programs
CSc 110, Spring 2017 Lecture 8: input; if/else
review; file processing
CSc 110, Spring 2017 Lecture 11: while Loops, Fencepost Loops, and Sentinel Loops Adapted from slides by Marty Stepp and Stuart Reges.
Week 1 Review Special thanks to Scott Shawcroft, Ryan Tucker, and Paul Beck for their work on these slides. Except where otherwise noted, this work is.
CS 106A, Lecture 9 Problem-Solving with Strings
Decision Structures, String Comparison, Nested Structures
Intro to Computer Science CS1510
while loops; file I/O; introduction to lists
MSIS 655 Advanced Business Applications Programming
basic Python programs, defining functions
Chapter 8 More on Strings and Special Methods
Python - Strings.
CSc 110, Autumn 2016 Lecture 9: input; if/else
Building Java Programs
Week 7 Lists Special thanks to Roy McElmurry, John Kurkowski, Scott Shawcroft, Ryan Tucker, Paul Beck for their work. Except where otherwise noted, this.
Encryption and Decryption
Adapted from slides by Marty Stepp and Stuart Reges
CSc 110, Spring 2018 Lecture 14: Booleans and Strings
expressions, variables, for loops
expressions, variables, for loops
while loops; logic; random numbers; tuples
CSC 221: Introduction to Programming Fall 2018
Building Java Programs
Building Java Programs
Building Java Programs
Building Java Programs
Building Java Programs
Introduction to Programming with Python
Presentation transcript:

Week 4 gur zntvp jbeqf ner fdhrnzvfu bffvsentr Strings, if/else, return, user input Special thanks to Scott Shawcroft, Ryan Tucker, and Paul Beck for their work on these slides. Except where otherwise noted, this work is licensed under: http://creativecommons.org/licenses/by-nc-sa/3.0

Strings Accessing character(s): variable [ index ] variable [ index1:index2 ] index2 is exclusive index1 or index2 can be omitted (end of string) index 1 2 3 4 5 6 7 or -8 -7 -6 -5 -4 -3 -2 -1 character P . D i d y >>> name = "P. Diddy" >>> name[0] 'P' >>> name[7] 'y' >>> name[-1] >>> name[3:6] 'Did' >>> name[3:] 'Diddy' >>> name[:-2] 'P. Did'

String Methods Java Python length len(str) startsWith, endsWith toLowerCase, toUpperCase upper, lower, isupper, islower, capitalize, swapcase indexOf find trim strip >>> name = “Jordan Hiroshi Nakamura" >>> name.upper() 'JORDAN HIROSHI NAKAMURA' >>> name.lower().startswith(“jordan") True >>> len(name) 23

for Loops and Strings A for loop can examine each character in a string in order. for name in string: statements >>> for c in "booyah": ... print(c) ... b o y a h

input input : Reads a string from the user's keyboard. reads and returns an entire line of input >>> name = input("Howdy. What's yer name? ") Howdy. What's yer name? Paris Hilton >>> name 'Paris Hilton'

input for numbers to read a number, cast the result of input to an int Only numbers can be cast as ints! Example: age = int(input("How old are you? ")) print("Your age is", age) print("You have", 65 - age, "years until retirement“) Output: How old are you? 53 Your age is 53 You have 12 years until retirement

if if condition: statements Example: gpa = input("What is your GPA? ") if gpa > 2.0: print("Your application is accepted.“)

if/else if condition: statements elif condition: else: Example: gpa = input("What is your GPA? ") if gpa > 3.5: print("You have qualified for the honor roll.“) elif gpa > 2.0: print("Welcome to Mars University!“) print("Your application is denied.“)

if ... in if value in sequence: statements The sequence can be a range, string, tuple, or list Examples: x = 3 if x in range(0, 10): print("x is between 0 and 9“) name = input("What is your name? ") name = name.lower() if name[0] in "aeiou": print("Your name starts with a vowel!“) 9

greater than or equal to Logical Operators Operator Meaning Example Result == equals 1 + 1 == 2 True != does not equal 3.2 != 2.5 < less than 10 < 5 False > greater than 10 > 5 <= less than or equal to 126 <= 100 >= greater than or equal to 5.0 >= 5.0 Operator Example Result and (2 == 3) and (-1 < 5) False or (2 == 3) or (-1 < 5) True not not (2 == 3)

Cryptography EASY Caesar Cypher ROT-13 HARD Diffie-Hellman RSA encryption Rivest-Shamir-Adelman

Caesar Cypher “the cake is a lie” BECOMES “wkh fdnh lv d olh!”

Exercise >>> alphabet = 'abcdefghijklmnopqrstuvwxyz' >>> alphabet2 = 'defghijklmnopqrstuvwxyzabc' >>> substitute(alphabet, alphabet2, "the cake is a lie") 'wkh fdnh lv d olh‘ Write a method substitute, that takes two alphabets and a message, and returns an encoded message

Solution def substitute(text, alphabet1, alphabet2): result = "" for ch in text: if ch in alphabet1: result += alphabet2[alphabet1.find(ch)] else: result += ch return result

hahuflvh (exercise) The Caesar Cypher is easy to crack… >>> make_phrase(“zebras”) ‘zebrascdfghijklmnopqtuvwxy’ Write a method called make_phrase, that takes a phrase and creates a new alphabet

ROT-13 It might be nice to have something that doesn’t require two separate alphabets as parameters. If we were to actually use one of the two cyphers, we’d need the original alphabet, and the changed alphabet. Is there a way to encode a message without needing both alphabets? Maybe just using the normal one? (abcdefghijklmnopqrstuvwxyz) abcdefghijklmnopqrstuvwxyz  nopqrstuvwxyzabcdefghijklm Everything is shifted 13 letters. Why is this cool?

Week 4 gur zntvp jbeqf ner fdhrnzvfu bffvsentr Strings, if/else, return, user input Special thanks to Scott Shawcroft, Ryan Tucker, and Paul Beck for their work on these slides. Except where otherwise noted, this work is licensed under: http://creativecommons.org/licenses/by-nc-sa/3.0

Huh? gur zntvp jbeqf ner fdhrnzvfu bffvsentr Using the ROT-13 cypher… we get the magic words are squeamish ossifrage

Wrap up Notice how in all the different ways of encoding phrases that we did, both people had to know a “secret”. ROT13: you had to know that the alphabet was shifted by 13 letters. Caesar Cypher: You had to know that the alphabet was shifted by 3 letters. Our own “zebras” cypher: You had to know the word “zebras” More advanced encryptions like Diffie-Hellman and RSA encryption use the concept of a “secret” number in order to decode the messages.

Formatting Text "format string" % (parameter, parameter, ...) Placeholders insert formatted values into a string: %d an integer %f a real number %s a string %8d an integer, 8 characters wide, right-aligned %08d an integer, 8 characters wide, padding with 0s %-8d an integer, 8 characters wide, left-aligned %12f a real number, 12 characters wide %.4f a real number, 4 characters after decimal %6.2f a real number, 6 total characters wide, 2 after decimal >>> x = 3; y = 3.14159; z = "hello" >>> print("%-8s, %04d is close to %.3f" % (z, x, y)) hello , 0003 is close to 3.142