objectives
play

Objectives Escape Sequences String Formatting Broader Issue: - PDF document

Objectives Escape Sequences String Formatting Broader Issue: Location Data Mar 1, 2019 Sprenkle - CSCI111 1 Review How does the computer represent data (e.g., numbers and text)? What are the various things we can do with


  1. Objectives • Escape Sequences • String Formatting • Broader Issue: Location Data Mar 1, 2019 Sprenkle - CSCI111 1 Review • How does the computer represent data (e.g., numbers and text)? • What are the various things we can do with strings? Mar 1, 2019 Sprenkle - CSCI111 2 1

  2. Usability • Want users to like to use your software Ø More revenue Ø Develop even better software • How Apple makes money: best user interfaces à user buys products Mar 1, 2019 Sprenkle - CSCI111 3 Escape Sequences • Escape character: \ • Escape sequences Ø newline character (carriage return) à \n Ø tab à \t Ø quote à \" or \' Interactive demonstration Ø backslash à \\ • Example: Ø print("To print a \\, you must use \"\\\\\"") • What does this display? demo_str.py Mar 1, 2019 Sprenkle - CSCI111 4 2

  3. Practice • Display To print a tab, you must use '\t'. • Display I said, "How are you?" escape_sequence.py Mar 1, 2019 Sprenkle - CSCI111 5 FORMATTING STRINGS Mar 1, 2019 Sprenkle - CSCI111 6 3

  4. Solution: format Method • How to use: Ø "templatestring".format(<whattoformat>) • templatestring allow us to control how output is displayed to user Ø Right, left justification Ø Number of decimals to display Mar 1, 2019 Sprenkle - CSCI111 7 Solution: format Method • How to use: Ø "templatestring".format(<whattoformat>) • Semantics: creates a formatted string Ø Means “format the templatestring , using the format(s) specified by format specifiers on the corresponding replacement values” Ø Returned as the str data type • Typically used with print statements Mar 1, 2019 Sprenkle - CSCI111 8 4

  5. Formatting Strings • templatestring templatestring is a template for the resulting string with format specifiers instead of the values Ø For each format specifier in templatestring, should have a replacement value replacement value Ø Throws IndexError IndexError if not enough replacements for specifiers in templatestring "{:.2f}".format(3.14159) Evaluates to "3.14" One format specifier Corresponding replacement value in template string Mar 1, 2019 Sprenkle - CSCI111 9 Format Specifiers [ ] mean optional • General format: {[field_name]:conversion} index number of the argument, i.e., which field in the template string • conversion Ø conversion code of the data type Code Type string s Default if code isn’t given d integer f float floating point with exponent e (There are more…) Mar 1, 2019 Sprenkle - CSCI111 10 5

  6. Format Specifiers [ ] mean optional Conversion options :[flags][width][.precision][code] • flags : • width : Ø 0: zero fills Ø Minimum number of Ø +: adds a + sign before character spaces reserved positive values to display the entire value Ø <: left-justification Ø Includes decimal point, (default for strings) digits before and after the decimal point and the sign Ø >: right-justify (default for • precision : numbers) Ø ^: centered Ø Number of digits after the decimal point for floating point values Mar 1, 2019 Sprenkle - CSCI111 11 Example using Format Operator Format specifier print("Your item that cost ${:.2f}".format(value) print("costs ${:.2f} with tax".format(tax)) Alternative: print( "Your item that cost ${:.2f} costs ${:.2f} with tax".format(value, tax)) sales_tax2.py Mar 1, 2019 Sprenkle - CSCI111 12 6

  7. Example Format Specifiers "{:5d}".format(12) "{:9.2f}".format(23.1999) à " 12" à " 23.20" 1 2 2 3 . 2 0 Precision is 2 Field width is 5 Right-justified Field width is 9 • What if precision is bigger than the decimal places? • What if field width is smaller than the length of the value? Any guesses? Try out in interpreter. Mar 1, 2019 Sprenkle - CSCI111 13 Example Format Specifiers "{:5d}".format(12) "{:9.2f}".format(23.1999) à " 12" à " 23.20" 1 2 2 3 . 2 0 Precision is 2 Field width is 5 Right-justified Field width is 9 • What if precision is bigger than the decimal places? Ø Fills decimal with 0s • What if field width is smaller than the length of the value? Ø String contains entire value Mar 1, 2019 Sprenkle - CSCI111 14 7

  8. Formatting Practice • x = 10 • y = 3.5 • z = "apple" • "{:6d}".format(x) • "{:6.2f}".format(x) • "{:6.2f}".format(y) • "{:06.2f}".format(y) • "{:^10s}".format(z) • "{:5d} {:<7.3f}".format(x,y) Mar 1, 2019 Sprenkle - CSCI111 15 Example: Printing Out Tables • A table of temperature conversions Temp F Temp C Temp K ------ ------ ------ -459.7 -273.1 0.0 0.0 -17.8 255.2 32.0 0.0 273.1 • If we want to print data in rows, what is the template for what a row looks like? Ø How do we make the column labels line up? temp_table.py Mar 1, 2019 Sprenkle - CSCI111 16 8

  9. String Formatting Note • There are a lot more things you can do with string formatting • Presenting just a subset of the most commonly used functionality Mar 1, 2019 Sprenkle - CSCI111 17 Broader Issue Mar 1, 2019 Sprenkle - CSCI111 18 9

  10. Apps and Your Location Data • What are the concerns about the apps having your location data? • React to these statements in the article: Ø “You would have to be pretty oblivious if you are not aware that this is going on.” Ø “In the most recent version of Android, apps that are not in use can collect locations ‘a few times an hour,’ instead of continuously.” Ø Apple shelved this plan: “Last year, [Apple] said an upcoming version of iOS would show a blue bar onscreen whenever an app not in use was gaining access to location data.” • Did you know about apps tracking your location? • Does it matter that apps sell your location data? Ø What are the tradeoffs? Mar 1, 2019 Sprenkle - CSCI111 19 Looking Ahead • Chelsea Barabas Talk Ø Today, 5 p.m. Northen • Lab 7 prep Ø Think about how to implement the Caesar Cipher • Lab 7 Mar 1, 2019 Sprenkle - CSCI111 20 10

Recommend


More recommend