Sinds een paar weken ben ik begonnen met de programmeertaal Python. Hierbij gebruik ik het boek Python for Rookies waarin een vaardigheidsoefening staat om een kalender te maken. De input van de functie bij het eerste deel is een nummer van een maan en de dag in de week dat hij start(waarbij 1 maandag is en 7 zondag).
Qua output doet het programma alles wat ik wil, echter kom ik er niet uit hoe ik de lege ruimtes het gemakkelijkste weg kan werken (regel 63 tot 69) als een getal uit 2 cijfers bestaat maar het bij een andere maand/start dag wel mogelijk is om op dezelfde plaats een 1 cijferige getal kan komen.
Voorbeeld:
Ik zat zelf te denken om het in een functie met een for loop te gieten waarbij ik een counter laat meelopen en per dag dan bekijkt of het getal < 9 is waarna ik deze dan wel of niet met een spatie toevoeg aan een variable die ik vervolgens return en print. Ik krijg het op dit moment echter nog niet werkend en vroeg me dus af of ik in de juiste richting aan het denken ben?
Heel erg bedankt
Qua output doet het programma alles wat ik wil, echter kom ik er niet uit hoe ik de lege ruimtes het gemakkelijkste weg kan werken (regel 63 tot 69) als een getal uit 2 cijfers bestaat maar het bij een andere maand/start dag wel mogelijk is om op dezelfde plaats een 1 cijferige getal kan komen.
Voorbeeld:
Python:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| >>> cal(2, 2) February 2009 Mo Tu We Th Fr Sa Su 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 >>> cal(2, 7) February 2009 Mo Tu We Th Fr Sa Su 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 |
Ik zat zelf te denken om het in een functie met een for loop te gieten waarbij ik een counter laat meelopen en per dag dan bekijkt of het getal < 9 is waarna ik deze dan wel of niet met een spatie toevoeg aan een variable die ik vervolgens return en print. Ik krijg het op dit moment echter nog niet werkend en vroeg me dus af of ik in de juiste richting aan het denken ben?
Heel erg bedankt
Python:
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
| month_name = ['January' , 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'] month_days = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] ##month_days = ['0', '31', '28', '31', '30', '31', '30', '31', '31', '30', '31', '30', '31'] day_name_long = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'] day_name_short = ['Mo ', 'Tu ' , 'We ', 'Th ', 'Fr ', 'Sa ', 'Su '] ##def cal(year, monthnumber): def cal(monthnumber, starting_day): ## temp_input_data ##starting_day = 1 year = 2009 ##monthnumber = 10 ## starting day reset if starting_day >= 8: skip = starting_day / 7 starting_day = starting_day - (skip * 7) #other data space = ' ' space2 = '' ## Leap Year: leap = 0 if year % 4 == 0 and (year % 100 != 0 or year % 400 == 0): leap = +1 a = int(month_days[monthnumber] + leap) b = range(1, a + 1) print month_name[monthnumber-1], year print day_name_short[0] + day_name_short[1] + day_name_short[2] + day_name_short[3] + day_name_short[4] + day_name_short[5] + day_name_short[6] ## First row empty_space = space * (starting_day-1) days_remaining = 7 - (starting_day) if days_remaining == 0: print empty_space, b[0] c = 1 elif days_remaining == 1: print empty_space, b[0], space2, b[1] c = 2 elif days_remaining == 2: print empty_space, b[0], space2, b[1], space2, b[2] c = 3 elif days_remaining == 3: print empty_space, b[0], space2, b[1], space2, b[2], space2, b[3] c = 4 elif days_remaining == 4: print empty_space, b[0], space2, b[1], space2, b[2], space2, b[3], space2, b[4] c = 5 elif days_remaining == 5: print empty_space, b[0], space2, b[1], space2, b[2], space2, b[3], space2, b[4], space2, b[5] c = 6 elif days_remaining == 6: print empty_space, b[0], space2, b[1], space2, b[2], space2, b[3], space2, b[4], space2, b[5], space2, b[6] c = 7 ## Second, third and fourth row print space2, b[c], space2, b[c+1], space2, b[c+2], space2, b[c+3], space2, b[c+4], space2, b[c+5], space2, b[c+6] c += 7 print space2, b[c], b[c+1], b[c+2], b[c+3], b[c+4], b[c+5], b[c+6] c +=7 print b[c], b[c+1], b[c+2], b[c+3], b[c+4], b[c+5], b[c+6] c +=7 ## last row d = a - c if d == 1: print b[c+1] elif d == 2: print b[c], b[c+1] elif d == 3: print b[c], b[c+1], b[c+2] elif d == 4: print b[c], b[c+1], b[c+2], b[c+3] elif d == 5: print b[c], b[c+1], b[c+2], b[c+3], b[c+4] elif d == 6: print b[c], b[c+1], b[c+2], b[c+3], b[c+4], b[c+5] elif d == 7: print b[c], b[c+1], b[c+2], b[c+3], b[c+4], b[c+5], b[c+6] else: print b[c], b[c+1], b[c+2], b[c+3], b[c+4], b[c+5], b[c+6] c +=7 d = a - c if d == 1: print b[c+1] elif d == 2: print b[c], b[c+1] |
[ Voor 3% gewijzigd door jdh009 op 08-10-2013 12:45 ]
"Each event is preceded by Prophecy. But without the hero, there is no Event." - Zurin Arctus, the Underking | "Ad Nocendum Potentes sumus." - Me, 30 November 1999