input and output cmsc 120: visualizing information lecture 4/10

22
Input and Output CMSC 120: Visualizing Information Lecture 4/10

Upload: steven-waters

Post on 06-Jan-2018

222 views

Category:

Documents


1 download

DESCRIPTION

Text string data type Sequence of characters 'my string'

TRANSCRIPT

Page 1: Input and Output CMSC 120: Visualizing Information Lecture 4/10

Input and Output

CMSC 120: Visualizing InformationLecture 4/10

Page 2: Input and Output CMSC 120: Visualizing Information Lecture 4/10

ComputingInput DataStoreManipulate DataOutput Data

Input Memory Output

CPU

Types of DataNumbers

LogicObjects

SequencesStrings

Input - OutputDynamic (User)

Stored (Text File)

Page 3: Input and Output CMSC 120: Visualizing Information Lecture 4/10

Textstring data type

Sequence of characters

'my string'

Page 4: Input and Output CMSC 120: Visualizing Information Lecture 4/10

Basic String Operations>>> 'spam' + 'eggs''spameggs'

>>> 3 * 'spam''spamspamspam '

>>> (3 * 'spam') + (5 * 'eggs') 'spamspamspameggseggseggseggseggs'

>>> len('spam')4

>>> for ch in 'Spam!' print ch

S p a m !

Page 5: Input and Output CMSC 120: Visualizing Information Lecture 4/10

Basic String Operations

>>> breakfast = 'SpamAndEggs'

>>> breakfast[0]>>> breakfast[4:7]>>> breakfast[-2]

>>> breakfast[:]>>> breakfast[:4]>>> breakfast[4:]

Page 6: Input and Output CMSC 120: Visualizing Information Lecture 4/10

Basic String Operations

Operator Meaning+ Concatenation* Repetition

<string>[] Indexing<string>[:] Slicelen(<string>) Length

for <var> in <string> Iteration through characters

Page 7: Input and Output CMSC 120: Visualizing Information Lecture 4/10

String RepresentationNumbers:

Stored in binary notationComputer CPU circuitry designed to manipulate 0s and 1s

Text:Encoded as numbers

ASCII (American Standard): • A-Z = 65-90• a-z = 97-122

Unicode

Page 8: Input and Output CMSC 120: Visualizing Information Lecture 4/10

String RepresentationSwitching from character to encoded ordinal

>>> ord('a')97

>>> ord('A')65

>>> chr(97)97

Page 9: Input and Output CMSC 120: Visualizing Information Lecture 4/10

Interactive Input and Output

>>> fname = input('Enter name: ')Enter name: 'Emily'

>>> print 'Hello', fnameHello Emily

Page 10: Input and Output CMSC 120: Visualizing Information Lecture 4/10

Raw Input

>>> fname = input('Enter name: ')Enter name: Emily

Traceback (most recent call last): File "<pyshell#0>", line 1, in <module>

input('Enter name: ') File "<string>", line 1, in <module>NameError: name 'Emily' is not defined

Page 11: Input and Output CMSC 120: Visualizing Information Lecture 4/10

raw_input>>> fname = raw_input('Enter name: ')Enter name: Emily

raw_inputExactly like input, except...it does not evaluate the expressioninput is treated like a string of text

>>> print 'Hello', fnameHello Emily

Page 12: Input and Output CMSC 120: Visualizing Information Lecture 4/10

raw_input>>> fname = raw_input('Enter name: ')Enter name: 5

>>> fname'5'

>>> fname = raw_input('Enter name: ')Enter name: Emily Allen

fname'Emily Allen'

String Processing: translating raw input strings into appropriate types of data

Page 13: Input and Output CMSC 120: Visualizing Information Lecture 4/10

Simple String Processing# generate a user namedef main():

first = raw_input('Enter first name: ')last = raw_input('Enter last name: ')

# concatenate first initial with # 7 characters of the last nameuname = first[0] + last[:7]

print uname

main()

emily greenfestegreenfe

Page 14: Input and Output CMSC 120: Visualizing Information Lecture 4/10

Simple String Processing# generate a user namedef main():

first = raw_input('Enter first name: ')last = raw_input('Enter last name: ')

# concatenate first initial with # 7 characters of the last nameuname = first[0] + last[:7]

print User name is: uname

main()

Enter first name: emily Enter last name: greenfestUser name is: egreenfe

Page 15: Input and Output CMSC 120: Visualizing Information Lecture 4/10

Simple String ProcessingStrings are objects!

>>> myName = raw_input('Enter whole name: ')Enter whole name: Emily Greenfest-Allen

>>> myName'Emily Greenfest-Allen'

>>> myName.split()['Emily', 'Greenfest-Allen']

>>> myName.split('-' )['Emily Greenfest', 'Allen']

Page 16: Input and Output CMSC 120: Visualizing Information Lecture 4/10

Simple String Processing>>> s = 'Spam and Eggs'

>>> s.capitalize()'Spam and eggs'

>>> s.capwords()'Spam And Eggs'

>>> s.upper()'SPAM AND EGGS'

>>> s.lower ()'spam and eggs'

Page 17: Input and Output CMSC 120: Visualizing Information Lecture 4/10

Simple String Processing>>> s = 'Spam and Eggs'

>>> s.replace('and','or')'Spam or Eggs'

>>> s.count('a')2

>>> s.find('E')9

Page 18: Input and Output CMSC 120: Visualizing Information Lecture 4/10

Input/Output

String Maninpulation

Page 19: Input and Output CMSC 120: Visualizing Information Lecture 4/10

Date ConversionUser enters a date in mm/dd/yyyy format (dateStr)

Split dateStr into month, day, and year strings

Convert the month string into a month number

Use the month to look up the month name

Create a new date string in form Month Day, Year

Output new date string

Page 20: Input and Output CMSC 120: Visualizing Information Lecture 4/10

Date Conversion# User enters a date in mm/dd/yyyy format (dateStr)dateStr = raw_input('Enter date (mm/dd/ yyyy): ')

# Split dateStr into month, day, and year stringsmonthStr, dayStr, yearStr = dateStr.split('/')

Enter date (mm/dd/ yyyy): 05/07/1977>>> print monthStr, dayStr, yearStr05 07 1977

monthStr'05'

Page 21: Input and Output CMSC 120: Visualizing Information Lecture 4/10

String Conversion

>>> int('5')5

>>> float('5')5.0

>>> string(2.8)'2.8'

>>> eval('5 + 2')7

Page 22: Input and Output CMSC 120: Visualizing Information Lecture 4/10

Date Conversion# convert month string to month namemonths = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']

monthName = months[int(monthStr) – 1]

# output in form Month Day, Yearprint monthName, dayStr + ',', yearStr

Enter date (mm/dd/ yyyy): 05/07/1977May 7, 1977