String 字串
字串是字元序列且是不可變的。以單引號或雙引號括起來的多個字元的集合,可以包含字母、數字和特殊字元。
Concatenate
secret_password = 'jhk7GSH8ds'
print('Password hint: the third letter of your password is ' + secret_password[2])
# Escaping characters
introduction = 'Hello, I\'m John!'
print(introduction)
# Joining strings
user_age = 28
user_name = 'John'
greeting = user_name + ', you are ' + str(user_age) + '!'
print(greeting)
s = 'String'
s += ' Concatenation'
print(s)
# Using % NOTE: 舊版本適用
s1, s2, s3 = 'Python', 'String', 'Concatenation'
s = '%s %s %s' % (s1, s2, s3)
print(s)
# Using format()
s1, s2, s3 = 'Python', 'String', 'Concatenation'
s = '{} {} {}'.format(s1, s2, s3)
print(s)
# Using f-string
s1, s2, s3 = 'Python', 'String', 'Concatenation'
s = f'{s1} {s2} {s3}'
print(s)
Parsing
split()
.split()
: convert a string into a list.split(delimiter)
: convert a string into a list by specified delimeter, default is space.
"This is another example".split()
# Return ['This', 'is', 'another', 'example']
test = "How-much-wood-would-a-woodchuck-chuck"
print(test.split("-")) # prints ['How', 'much', 'wood', 'would', 'a', 'woodchuck', 'chuck']
removed_users = "wjaffrey jsoto abernard jhill awilliam"
print("before .split():", removed_users)
removed_users = removed_users.split()
print("after .split():", removed_users)
with open("update_log.txt", "r") as file:
updates = file.read()
updates = updates.split()
join()
.join()
: convert a list into a string
approved_users = ["elarson", "bmoreno", "tshah", "sgilmore", "eraab"]
print("before .join():", approved_users)
approved_users = ",".join(approved_users)
print("after .join():", approved_users)
with open("update_log.txt", "r") as file:
updates = file.read()
updates = updates.split()
updates = " ".join(updates)
with open("update_log.txt", "w") as file:
file.write(updates)
# 以空白串接 List 的所有內容,輸出為字串
strings = ' '.join(my_list)
# 以空白行串接 List 的所有內容,輸出為字串
strings = '\n\n'.join(my_list)
def list_elements(list_name, elements):
return "The " + list_name + " list includes: " + ", ".join(elements)
print(list_elements("Printers", ["Color Printer", "Black and White Printer", "3-D Printer"]))
# Should print "The Printers list includes: Color Printer, Black and White Printer, 3-D Printer"
index()
.index()
: get the index of specified character
string = "Hello, World"
print(string.index('w'))
def replace_domain(email, old_domain, new_domain):
if "@" + old_domain in email:
index = email.index("@" + old_domain)
new_email = email[:index] + "@" + new_domain
return new_email
return email
replace()
.replace(old,new)
: Returns a new string where all occurrences of old have been replaced by new
test = "How much wood would a woodchuck chuck"
print(test.replace("wood", "plastic")) # prints "How much plastic would a plasticchuck chuck"
Slicing
- Format: string [includ-index : exclude-index]
- Character Index: beginning with zero
- string[-2]: the last two characters
string1 = "Greetings, Earthlings"
print(string1[0]) # Prints “G”
print(string1[4:8]) # Prints “ting”
print(string1[11:]) # Prints “Earthlings”
print(string1[:5]) # Prints “Greet”
print(string1[-10:]) # Prints “Earthlings” again
phonenum = "2025551212"
# The first 3 digits are the area code:
area_code = "(" + phonenum[:3] + ")"
# area_code is (202)
# the numbers 4–6 from the list:
exchange = phonenum[3:6]
# exchange is 555
# the last four numbers:
line = phonenum[-4:]
# line is 1212
Formating
name = "Manny"
number = len(name) * 3
print("Hello {}, your lucky number is {}".format(name, number))
name = "Manny"
print("Your lucky number is {number}, {name}.".format(name=name, number=len(name)*3))
price = 7.5
with_tax = price * 1.09
print(price, with_tax)
print("Base price: ${:.2f}. With Tax: ${:.2f}".format(price, with_tax))
{:>3}
向右對齊,3 個字元{:>6.2f}
向右對齊,6 個字元,小數點 2 位{:10,.2f}
10 字元,千位符號,小數點 2 位{:.2s}
2 個字元字串
def to_celsius(x):
return (x-32)*5/9
for x in range(0,101,10):
print("{:>3} F | {:>6.2f} C".format(x, to_celsius(x)))
0 F | -17.78 C
10 F | -12.22 C
20 F | -6.67 C
30 F | -1.11 C
40 F | 4.44 C
50 F | 10.00 C
60 F | 15.56 C
70 F | 21.11 C
80 F | 26.67 C
90 F | 32.22 C
100 F | 37.78 C
f-strings
name = "Micah"
print(f'Hello {name}')
item = "Purple Cup"
amount = 5
price = amount * 3.25
print(f'Item: {item} - Amount: {amount} - Price: {price:.2f}')
More methods
- 可以一次使用多個不同的 methods
.capitalize()
: 字首大寫
strip()
.strip()
, .lstrip()
, .rstrip()
" yes ".strip() # Return 'yes'
" yes ".lstrip() # Return 'yes '
" yes ".rstrip() # Return ' yes'
# Multiple methods
' yes '.upper().strip() # Reyurn 'YES'
count()
.count()
"The number of times e occurs in this string is 4".count("e")
# Return 4
endswith()
.endswith()
"Forest".endswith("rest")
# Return True
isnumeric(), isalpha()
.isnumeric()
, .isalpha()
"Forest".isnumeric() # Return False
"12345".isnumeric() # Return True
"xyzzy".isalpha() # Return True
No Comments