Not logged in
Talk
Contributions
Create account
Log in
Navigation
Main page
About
People
Publications
Teaching
Resources
Research Blog
Wiki Functions
Recent changes
Help
Licensing
Page
Discussion
Edit
View history
Editing
Intro to Programming and Data Science (Fall 2024)/Day 1 Tutorial
(section)
From CommunityData
Jump to:
navigation
,
search
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Strings== [[File:Letter.png|100px]] So far we've seen two data types: '''integers''' and '''floats'''. Another useful data type is a '''string''', which is just what Python calls a bunch of characters (like numbers, letters, whitespace, and punctuation) put together. Strings are indicated by being surrounded by quotes: <syntaxhighlight lang="python"> "Hello" </syntaxhighlight> <syntaxhighlight lang="python"> "Python, I'm your #1 fan!" </syntaxhighlight> Like with the math data types above, we can use the <code>type</code> function to check the type of strings: <syntaxhighlight lang="python"> type("Hello") </syntaxhighlight> <syntaxhighlight lang="python"> type(1) </syntaxhighlight> <syntaxhighlight lang="python"> type("1") </syntaxhighlight> ===String Concatenation=== You can smoosh strings together (called "concatenation") using the '+' sign: <syntaxhighlight lang="python"> "Hello" + "World" </syntaxhighlight> <syntaxhighlight lang="python"> name = "Jessica" "Hello " + name </syntaxhighlight> How about concatenating different data types? <syntaxhighlight lang="python"> "Hello" + 1 </syntaxhighlight> Hey now! The output from the previous example was really different and interesting; let's break down exactly what happened: (you'll see a ''slightly'' different "Traceback" statement, that difference doesn't matter.) <pre> In[ ]: "Hello" + 1 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: cannot concatenate 'str' and 'int' objects </pre> Python is giving us a '''traceback'''. A traceback is details on what was happening when Python encountered an Exception or Error -- something it doesn't know how to handle. There are many kinds of Python errors, with descriptive names to help us humans understand what went wrong. In this case we are getting a <code>TypeError</code>: we tried to do some operation on a data type that isn't supported for that data type. Python gives us a helpful error message as part of the TypeError: <code>"cannot concatenate 'str' and 'int' objects"</code> We saw above that we can concatenate strings: "Hello" + "World" works just fine. However, "Hello" + 1 produces a <code>TypeError</code>. We are telling Python to concatenate a string and an integer, and that's not something Python understands how to do. We can convert an integer into a string ourselves, using the <code>str</code> function: "Hello" + str(1) Like the <code>type</code> function from before, the <code>str</code> function takes 1 argument. In the above example it took the integer 1. <code>str</code> takes a Python object as input and produces a string version of that input as output. ===String length=== There's another useful function that works on strings called <code>len</code>. <code>len</code> returns the length of a string as an integer: <syntaxhighlight lang="python"> len("Hello") </syntaxhighlight> <syntaxhighlight lang="python"> len("")</syntaxhighlight> <syntaxhighlight lang="python"> fish = "humuhumunukunukuapua'a" </syntaxhighlight> <syntaxhighlight lang="python"> name_length = len(fish) </syntaxhighlight> <syntaxhighlight lang="python"> fish + " is a Hawaiian fish whose name is " + str(name_length) + " characters long." </syntaxhighlight> ===Quotes=== We've been using double quotes around our strings, but you can use either double or single quotes: <syntaxhighlight lang="python"> 'Hello' "Hello" </syntaxhighlight> Like with spacing above, use whichever quotes make the most sense for you, but be consistent. You do have to be careful about using quotes inside of strings: 'I'm a happy camper' This gives us another '''traceback''', for a new kind of error, a <code>SyntaxError</code>. When Python looks at that expression, it sees the string 'I' and then <code>m a happy camper'</code> which it doesn't understand -- it's not 'valid' Python. Those letters aren't variables (we haven't assigned them to anything), and that trailing quote isn't balanced. So it raises a <code>SyntaxError</code>. We can use double quotes to avoid this problem: "I'm a happy camper" One fun thing about strings in Python is that you can multiply them: <syntaxhighlight lang="python"> "A" * 40</syntaxhighlight> <syntaxhighlight lang="python"> "ABC" * 12</syntaxhighlight> <syntaxhighlight lang="python"> h = "Happy" b = "Birthday" (h + b) * 10 </syntaxhighlight>
Summary:
Please note that all contributions to CommunityData are considered to be released under the Attribution-Share Alike 3.0 Unported (see
CommunityData:Copyrights
for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource.
Do not submit copyrighted work without permission!
To protect the wiki against automated edit spam, we kindly ask you to solve the following CAPTCHA:
Cancel
Editing help
(opens in new window)
Tools
What links here
Related changes
Special pages
Page information