String Conversion and Type Casting
but that is much uglier and error-prone. Second, the conversion to string would be done automatically by the format method instead of the explicit conversion to strings needed in this case. Third, when using the format method, we can change the message without having to deal with the variables used and vice-versa.
Why Values Need Text
A program often needs to place values into a message. The values and the message do not necessarily have the same data type: variables can hold different types of values, including numbers and strings. String conversion is the process of representing a value as text so it can take part in a textual message.
The important distinction is where conversion happens. You can explicitly convert values before building a message, or you can let the format method convert them automatically while inserting them into the message.
What do you think happens?
Suppose a message contains a number supplied by a variable. Which approach usually keeps the message easier to change: manually converting every value first, or using the format method to insert the values?
Reveal answer
Answer: Use the format method to insert the values
The source explains that the format method performs the conversion automatically and lets the message be changed independently of the variables.
Two Conversion Paths
With explicit conversion, each value is changed into a string before it is used in the message. The source describes this approach as uglier and more error-prone in the situation being discussed. With the format method, conversion to strings happens automatically as the values are inserted. This keeps the conversion step with the formatting operation instead of requiring separate conversions.
Message and Variables
The format method keeps two concerns apart. The message contains the wording and positions where values belong. The variables supply the values. Because these roles are separate, the message can be changed without having to change the variables, and the variables can be changed without rewriting the message wording.
Changing the wording without changing the values
A message needs to include a person's name and a score. Compare a formatting approach with an approach that first converts each value into text.
Identify the values: The name and score are stored as variables. They may have different data types because variables can hold values of different types.
Use formatting positions: The message is written with positions for the values. The format method receives the variables and converts them to strings as it inserts them.
Revise the message: The wording can be changed while the name and score variables remain the same. The variables do not need to be manually converted again just because the message wording changed.
Compare the alternative: If each value were explicitly converted before formatting, the conversion work would be handled separately. The source characterizes that style as uglier and more error-prone in this context.
Using the format method keeps the message and the variables independent while performing string conversion automatically during formatting.
Unicode and UTF-8
String conversion also matters when text crosses a program boundary. The source distinguishes Unicode strings from the format used to send and receive data. Unicode is used to handle non-English languages. When a program reads or writes a file, or communicates with another computer on the Internet, Unicode strings need to be converted into UTF-8 so they can be sent and received in that format.
Common Conversion Mistakes
Manually converting every value before constructing the message.
The source describes this approach as uglier and error-prone in the relevant formatting situation.
Fix:
Use the format method so conversion to strings occurs automatically while the values are inserted.Changing the variables whenever the message wording changes.
The format method allows the message to be changed without having to deal with the variables, and vice versa.
Fix:
Keep message wording and inserted variables as separate parts of the formatting operation.Assuming that all text-handling conversion has the same purpose.
The source identifies automatic conversion during formatting, but identifies UTF-8 as the format used when Unicode strings are sent to or received from files or other computers.
Fix:
Identify the context first: formatting a message uses the format method, while file and Internet communication uses UTF-8 for the Unicode text.
Practice Check
A message contains two variables: one number and one string. Describe, in your own words, how the format method handles the number when it inserts it into the message. Then explain why changing the message wording does not require changing the variables.
Hints
- Start by identifying which operation performs the string conversion.
- Then separate the wording of the message from the values supplied by the variables.
- Mention why this is preferable to manually converting each value first.
A program is preparing Unicode text to be written to a file. Which format does the source identify for sending and receiving that text, and why is conversion needed?
Hints
- The answer is a named text format.
- Connect the conversion to reading or writing files and communicating with other computers.
Key Takeaways
- Variables can hold values of different data types, including numbers and strings.
- Explicit conversion changes values into strings before they are used in a message, but this approach can be uglier and more error-prone.
- The format method converts values to strings automatically while inserting them into a message.
- The format method separates message wording from the variables, so either can be changed independently.
- Unicode strings are converted to UTF-8 when they must be sent or received through files or communication with other computers.
Key Takeaways
- String conversion represents a value as text for use in a message or communication context.
- The format method performs string conversion automatically during insertion.
- Separating message text from variables makes formatting easier to change and maintain.
- UTF-8 is the format used to send and receive Unicode strings when working with files or other computers.