On 2019-02-06 00:25, John Sanders wrote:
On Saturday, February 2, 2019 at 6:47:49 PM UTC-6, Sayth Renshaw wrote:
Hi
I am trying to convert a switch statement from C into Python. (why? practising).
This is the C code.
printf("Dated this %d", day);
switch (day) {
case 1: case 21: case 31:
printf("st"); break;
case 2: case 22:
printf("nd"); break;
case 3: case 23:
printf("rd"); break;
default: printf("th"); break;
}
printf(" day of ");
#Premise if the use enter an int as the date 21 for example it would print
21st. It appends the correct suffix onto a date.
Reading and trying to implement a function that uses a dictionary. Not sure how
to supply list into it to keep it brief and with default case of 'th'.
This is my current code.
def f(x):
return {
[1, 21, 31]: "st",
[2, 22]: "nd",
[3, 23]: "rd",
}.get(x, "th")
print(f(21))
I have an unhashable type list. Whats the best way to go?
Cheers
Sayth
My best, readable attempt good for 1 - 99:
def sufx( day ):
if (day % 10) in [0,4,5,6,7,8,9] or (day / 10) == 1:
return 'th'
return {1: 'st', 2: 'nd', 3: 'rd'}[day % 10]
In Python 3, 11/10 == 1.1, not 1.
--
https://mail.python.org/mailman/listinfo/python-list