unicode code point available--this will vary depending on whether python was compiled to use the ucs- or the ucs- character encoding inside the while loop we get the unicode character that corresponds to the code point using the chr(function the unicodedata name(function returns the unicode character name for the given unicode characterits optional second argument is the name to use if no character name is defined if the user didn' specify word (word is none)or if they did and it is in lowercased copy of the unicode character namethen we print the corresponding row although we pass the code variable to the str format(method only onceit is used three times in the format stringfirst to print the code as an integer in field characters wide (the fill character defaults to spaceso we did not need to specify it)second to print the code as an uppercase hexadecimal number in field characters wideand third to print the unicode character that corresponds to the code--using the "cformat specifierand centered in field with minimum width of three characters notice that we did not have to specify the type "din the first format specificationthis is because it is the default for integer arguments the second argument is the character' unicode character nameprinted using "titlecasethat iswith the first letter of each word uppercasedand all other letters lowercased now that we are familiar with the versatile str format(methodwe will make great use of it throughout the rest of the book character encodings |ultimatelycomputers can store only bytesthat is -bit values whichif unsignedrange from to xff every character must somehow be represented in terms of bytes in the early days of computing the pioneers devised encoding schemes that assigned particular character to particular byte for exampleusing the ascii encodinga is represented by by and so on in the and western europe the latin- encoding was often usedits characters in the range - are the same as the corresponding characters in -bit asciiwith those in the range xa - xff used for accented characters and other symbols needed by those using non-english latin alphabets many other encodings have been devised over the yearsand now there are lots of them in use--howeverdevelopment has ceased for many of themin favor of unicode having all these different encodings has proved very inconvenientespecially when writing internationalized software one solution that has been almost universally adopted is the unicode encoding unicode assigns every character to an integer--called code point in unicode-speak--just like the earlier encodings but unicode is not limited to using one byte per characterand is therefore able to represent every character in every language in single encod