-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathstring1.py
More file actions
58 lines (47 loc) · 2.32 KB
/
string1.py
File metadata and controls
58 lines (47 loc) · 2.32 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# String-1
##############################
# Given a string name, e.g. "Bob", return a greeting of the form "Hello Bob!".
def hello_name(name):
return 'Hello ' + name +'!'
# Given two strings, a and b, return the result of putting them together in the order abba,
# e.g. "Hi" and "Bye" returns "HiByeByeHi".
def make_abba(a, b):
return a + b + b + a
# The web is built with HTML strings like "<i>Yay</i>" which draws Yay as italic text. In this
# example, the "i" tag makes <i> and </i> which surround the word "Yay". Given tag and
# word strings, create the HTML string with tags around the word, e.g. "<i>Yay</i>".
def make_tags(tag, word):
return '<' + tag + '>' + word + '</' + tag + '>'
# Given an "out" string length 4, such as "<<>>", and a word, return a new string where
# the word is in the middle of the out string, e.g. "<<word>>".
def make_out_word(out, word):
return out[:2] + word + out[2:]
# Given a string, return a new string made of 3 copies of the last 2 chars of the original
# string. The string length will be at least 2.
def extra_end(str):
return str[-2:] * 3
# Given a string, return the string made of its first two chars, so the String "Hello" yields
# "He". If the string is shorter than length 2, return whatever there is, so "X" yields "X", and
# the empty string "" yields the empty string "".
def first_two(str):
return str[:2]
#Given a string of even length, return the first half. So the string "WooHoo" yields "Woo".
def first_half(str):
return str[:len(str)/2]
# Given a string, return a version without the first and last char, so "Hello" yields "ell". The
# string length will be at least 2.
def without_end(str):
return str[1:-1]
# Given 2 strings, a and b, return a string of the form short+long+short, with the shorter
# string on the outside and the longer string on the inside. The strings will not be the same
# length, but they may be empty (length 0).
def combo_string(a, b):
return a + b + a if len(a) < len(b) else b + a + b
# Given 2 strings, return their concatenation, except omit the first char of each. The strings
# will be at least length 1.
def non_start(a, b):
return a[1:] + b[1:]
# Given a string, return a "rotated left 2" version where the first 2 chars are moved to the
# end. The string length will be at least 2.
def left2(str):
return str[2:] + str[:2]