220 likes | 441 Views
Input and Output. CMSC 120: Visualizing Information Lecture 4/10. Computing. Input Data Store Manipulate Data Output Data. Types of Data Numbers Logic Objects Sequences Strings. Input - Output Dynamic (User) Stored (Text File). Input. Memory. Output. CPU. Text.
E N D
Input and Output CMSC 120: Visualizing Information Lecture 4/10
Computing • Input Data • Store • Manipulate Data • Output Data Types of Data Numbers Logic Objects Sequences Strings Input - Output Dynamic (User) Stored (Text File) Input Memory Output CPU
Text • string data type • Sequence of characters • 'my string'
Basic String Operations >>> 'spam' + 'eggs' 'spameggs' >>> 3 * 'spam' 'spamspamspam ' >>> (3 * 'spam') + (5 * 'eggs') 'spamspamspameggseggseggseggseggs' >>> len('spam') 4 >>> forchin'Spam!' print ch S p a m !
Basic String Operations >>> breakfast = 'SpamAndEggs' >>> breakfast[0] >>> breakfast[4:7] >>> breakfast[-2] >>> breakfast[:] >>> breakfast[:4] >>> breakfast[4:]
String Representation • Numbers: • Stored in binary notation • Computer CPU circuitry designed to manipulate 0s and 1s • Text: • Encoded as numbers • ASCII (American Standard): • A-Z = 65-90 • a-z = 97-122 • Unicode
String Representation • Switching from character to encoded ordinal >>> ord('a') 97 >>> ord('A') 65 >>> chr(97) 97
Interactive Input and Output >>> fname = input('Enter name: ') Enter name: 'Emily' >>> print'Hello',fname Hello Emily
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
raw_input >>> fname = raw_input('Enter name: ') Enter name: Emily • raw_input • Exactly like input, except... • it does not evaluate the expression • input is treated like a string of text >>> print'Hello',fname Hello Emily
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
Simple String Processing # generate a user name def main(): first = raw_input('Enter first name: ') last = raw_input('Enter last name: ') # concatenate first initial with # 7 characters of the last name uname = first[0] + last[:7] printuname main() emilygreenfest egreenfe
Simple String Processing # generate a user name def main(): first = raw_input('Enter first name: ') last = raw_input('Enter last name: ') # concatenate first initial with # 7 characters of the last name uname = first[0] + last[:7] print User name is: uname main() Enter first name: emily Enter last name: greenfest User name is: egreenfe
Simple String Processing • Strings 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']
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'
Simple String Processing >>> s = 'Spam and Eggs' >>> s.replace('and','or') 'Spam or Eggs' >>> s.count('a') 2 >>> s.find('E') 9
Input/Output String Maninpulation
Date Conversion • User 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
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 strings monthStr, dayStr, yearStr = dateStr.split('/') Enter date (mm/dd/ yyyy): 05/07/1977 >>> print monthStr, dayStr, yearStr 05 07 1977 monthStr '05'
String Conversion >>> int('5') 5 >>> float('5') 5.0 >>> string(2.8) '2.8' >>> eval('5 + 2') 7
Date Conversion # convert month string to month name months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'] monthName = months[int(monthStr) – 1] # output in form Month Day, Year print monthName, dayStr + ',', yearStr Enter date (mm/dd/ yyyy): 05/07/1977 May 7, 1977