Python Forum
Thread Rating:
  • 1 Vote(s) - 4 Average
  • 1
  • 2
  • 3
  • 4
  • 5
question on PRINT
#3
(Oct-13-2018, 06:16 PM)buran Wrote: print (left-hand side) returns None. Right-hand side repr returns string literal. This expression will never be True. Explain what you actually want to achieve.

Thanks so much! I know where I am wrong. Here is what I am trying to do. Many mistakes and a lot to learn.


#!/usr/bin/python -tt
# Copyright 2010 Google Inc.
# Licensed under the Apache License, Version 2.0
# http://www.apache.org/licenses/LICENSE-2.0

# Google's Python Class
# http://code.google.com/edu/languages/goo...hon-class/

# Basic string exercises
# Fill in the code for the functions below. main() is already set up
# to call the functions with a few different inputs,
# printing 'OK' when each function is correct.
# The starter code for each function includes a 'return'
# which is just a placeholder for your code.
# It's ok if you do not complete all the functions, and there
# are some additional functions to try in string2.py.


# A. donuts
# Given an int count of a number of donuts, return a string
# of the form 'Number of donuts: <count>', where <count> is the number
# passed in. However, if the count is 10 or more, then use the word 'many'
# instead of the actual count.
# So donuts(5) returns 'Number of donuts: 5'
# and donuts(23) returns 'Number of donuts: many'
def donuts(count):
# +++your code here+++
if count<10:
print('Number of donuts: %d' %count)
else:
print('Number of donuts: many')

# B. both_ends
# Given a string s, return a string made of the first 2
# and the last 2 chars of the original string,
# so 'spring' yields 'spng'. However, if the string length
# is less than 2, return instead the empty string.
def both_ends(s):
# +++your code here+++
if len(s)>3:
end_string = s[0:1] + s[-2:-1]
elif len(s)<4 and len(s)>1:
end_string = s
else:
end_string = []
return end_string


# C. fix_start
# Given a string s, return a string
# where all occurences of its first char have
# been changed to '*', except do not change
# the first char itself.
# e.g. 'babble' yields 'ba**le'
# Assume that the string is length 1 or more.
# Hint: s.replace(stra, strb) returns a version of string s
# where all instances of stra have been replaced by strb.
def fix_start(s):
# +++your code here+++
fix_rest = s[1:]
fix_rest_re = fix_rest.replace(fix_first,'*')
fix_string = s[0] + fix_rest_re
return fix_string


# D. MixUp
# Given strings a and b, return a single string with a and b separated
# by a space '<a> <b>', except swap the first 2 chars of each string.
# e.g.
# 'mix', pod' -> 'pox mid'
# 'dog', 'dinner' -> 'dig donner'
# Assume a and b are length 2 or more.
def mix_up(a, b):
# +++your code here+++
mix_string_1 = b[0:1] + a[2:]
mix_string_2 = a[0:1] + b[2:]
mix_string = mix_string_1 + ' ' + mix_string_2
return


# Provided simple test() function used in main() to print
# what each function returns vs. what it's supposed to return.
def test(got, expected):
if got == expected:
prefix = ' OK '
else:
prefix = ' X '
print ('%s got: %s expected: %s' %(prefix, repr(got), repr(expected)))


# Provided main() calls the above functions with interesting inputs,
# using test() to check if each result is correct or not.
def main():
print ('donuts')
# Each line calls donuts, compares its result to the expected for that call.
test(donuts(4), 'Number of donuts: 4')
test(donuts(9), 'Number of donuts: 9')
test(donuts(10), 'Number of donuts: many')
test(donuts(99), 'Number of donuts: many')

print
print ('both_ends')
test(both_ends('spring'), 'spng')
test(both_ends('Hello'), 'Helo')
test(both_ends('a'), '')
test(both_ends('xyz'), 'xyyz')


print
print ('fix_start')
test(fix_start('babble'), 'ba**le')
test(fix_start('aardvark'), 'a*rdv*rk')
test(fix_start('google'), 'goo*le')
test(fix_start('donut'), 'donut')

print
print ('mix_up')
test(mix_up('mix', 'pod'), 'pox mid')
test(mix_up('dog', 'dinner'), 'dig donner')
test(mix_up('gnash', 'sport'), 'spash gnort')
test(mix_up('pezzy', 'firm'), 'fizzy perm')


# Standard boilerplate to call the main() function.
if __name__ == '__main__':
main()
Reply


Messages In This Thread
question on PRINT - by PEIXI - Oct-13-2018, 06:11 PM
RE: question on PRINT - by buran - Oct-13-2018, 06:16 PM
RE: question on PRINT - by PEIXI - Oct-13-2018, 06:21 PM
RE: question on PRINT - by buran - Oct-13-2018, 06:37 PM
RE: question on PRINT - by PEIXI - Oct-13-2018, 06:46 PM

Possibly Related Threads…
Thread Author Replies Views Last Post
  Question: print issue python202209 3 1,037 Sep-18-2022, 11:51 AM
Last Post: jefsummers
Exclamation question about input, while loop, then print jamie_01 5 2,799 Sep-30-2021, 12:46 PM
Last Post: Underscore
  question about python3 print function jamie_01 5 2,755 May-25-2020, 09:58 AM
Last Post: pyzyx3qwerty
  Question on `print f.read()` behavior pythonjohn 2 4,519 Nov-07-2016, 10:18 PM
Last Post: pythonjohn

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020