KaiquanMah commited on
Commit
05f08c7
·
verified ·
1 Parent(s): b2521b9

[FIX] Add linebreak

Browse files
Week 7 Libraries and More Python/{18. Own programming language, Part 1 → [FIXED]18. Own programming language, Part 1} RENAMED
@@ -1,10 +1,10 @@
1
- '''
2
- Write a function
3
 
4
- execute(code: str) -> str
5
 
6
- which takes a program written in your programming language as a parameter and returns the output of the program.
7
 
 
 
 
8
 
9
 
10
 
@@ -85,10 +85,20 @@ def execute(code: str) -> str:
85
  raise ValueError(f"Undefined variable: {var}")
86
  elif line: # Ignore empty lines
87
  raise ValueError(f"Invalid command: {line}")
88
-
 
89
  # return '\n'.join(output)
90
- for num in output:
91
- print(num)
 
 
 
 
 
 
 
 
 
92
 
93
 
94
 
@@ -97,11 +107,26 @@ PRINT a
97
  '''
98
  execute(eg1)
99
 
 
 
 
 
 
 
100
  eg2='''LET a=100
101
  LET b=200
102
  PRINT a
103
  PRINT b
104
  '''
 
 
 
 
 
 
 
 
 
105
 
106
  eg3='''LET c=10000
107
  LET d=-10000
@@ -111,4 +136,316 @@ LET c=10
111
  LET d=-10
112
  PRINT c
113
  PRINT d
114
- '''
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ '''Setting and printing
 
2
 
 
3
 
 
4
 
5
+ Write a function
6
+ execute(code: str) -> str
7
+ which takes a program written in your programming language as a parameter and returns the output of the program.
8
 
9
 
10
 
 
85
  raise ValueError(f"Undefined variable: {var}")
86
  elif line: # Ignore empty lines
87
  raise ValueError(f"Invalid command: {line}")
88
+
89
+ # approach 1A - 2/20 pts, less points, correct output BUT expected output (35 lines) vs actual output (33 lines)
90
  # return '\n'.join(output)
91
+
92
+ # approach 1B - 13/20 pts
93
+ # for num in output:
94
+ # print(num)
95
+
96
+ # approach 1C - 20/20 pts -> OK NOW. added linebreak after each return statement. Expected vs actual output (35 lines)
97
+ joined_output = '\n'.join(output)
98
+ joined_output+='\n'
99
+ return joined_output
100
+
101
+
102
 
103
 
104
 
 
107
  '''
108
  execute(eg1)
109
 
110
+ '''output
111
+ 10
112
+ '''
113
+
114
+
115
+
116
  eg2='''LET a=100
117
  LET b=200
118
  PRINT a
119
  PRINT b
120
  '''
121
+ execute(eg2)
122
+
123
+ '''output
124
+ 10
125
+ 100
126
+ 200
127
+ '''
128
+
129
+
130
 
131
  eg3='''LET c=10000
132
  LET d=-10000
 
136
  LET d=-10
137
  PRINT c
138
  PRINT d
139
+ '''
140
+ execute(eg3)
141
+
142
+
143
+ '''output
144
+ 10
145
+ 100
146
+ 200
147
+ 10000
148
+ -10000
149
+ 10
150
+ -10
151
+ '''
152
+
153
+
154
+
155
+
156
+
157
+
158
+ ################################################
159
+
160
+
161
+ # approach 1A
162
+ '''autograder expected output
163
+ Testing code:
164
+ LET a=73
165
+ PRINT a
166
+ Program outputs:
167
+ 73
168
+
169
+
170
+
171
+
172
+ Testing code:
173
+ LET a=1
174
+ LET b=96
175
+ PRINT a
176
+ PRINT b
177
+ Program outputs:
178
+ 1
179
+ 96
180
+
181
+
182
+
183
+
184
+ Testing code:
185
+ LET c=1669
186
+ LET d=-557
187
+ PRINT c
188
+ PRINT d
189
+ LET c=1169
190
+ LET d=-1114
191
+ PRINT c
192
+ PRINT d
193
+
194
+ Program outputs:
195
+ 1669
196
+ -557
197
+ 1169
198
+ -1114
199
+ '''
200
+
201
+
202
+
203
+
204
+
205
+
206
+ '''autograder actual output
207
+ Testing code:
208
+ LET a=73
209
+ PRINT a
210
+ Program outputs:
211
+ 73
212
+ # ok
213
+
214
+
215
+ Testing code:
216
+ LET a=1
217
+ LET b=96
218
+ PRINT a
219
+ PRINT b
220
+ Program outputs:
221
+ 1
222
+ 96
223
+ # ok
224
+
225
+
226
+ Testing code:
227
+ LET c=1669
228
+ LET d=-557
229
+ PRINT c
230
+ PRINT d
231
+ LET c=1169
232
+ LET d=-1114
233
+ PRINT c
234
+ PRINT d
235
+ Program outputs:
236
+ 1669
237
+ -557
238
+ 1169
239
+ -1114
240
+ # ok
241
+ '''
242
+
243
+
244
+
245
+
246
+
247
+ ################################################
248
+
249
+
250
+ # approach 1B
251
+
252
+ '''autograder expected output
253
+ Testing code:
254
+
255
+ LET a=21
256
+ PRINT a
257
+
258
+ Program outputs:
259
+ 21
260
+
261
+
262
+
263
+
264
+
265
+ Testing code:
266
+
267
+ LET a=32
268
+ LET b=72
269
+ PRINT a
270
+ PRINT b
271
+
272
+ Program outputs:
273
+ 32
274
+ 72
275
+
276
+
277
+
278
+
279
+
280
+ Testing code:
281
+
282
+ LET c=2276
283
+ LET d=-557
284
+ PRINT c
285
+ PRINT d
286
+ LET c=1776
287
+ LET d=-1114
288
+ PRINT c
289
+ PRINT d
290
+
291
+ Program outputs:
292
+ 2276
293
+ -557
294
+ 1776
295
+ -1114
296
+
297
+
298
+
299
+
300
+ '''
301
+
302
+
303
+
304
+
305
+
306
+ '''autograder actual output
307
+ Testing code:
308
+
309
+ LET a=21
310
+ PRINT a
311
+
312
+ Program outputs:
313
+ 21
314
+ None
315
+ Testing code:
316
+
317
+ LET a=32
318
+ LET b=72
319
+ PRINT a
320
+ PRINT b
321
+
322
+ Program outputs:
323
+ 32
324
+ 72
325
+ None
326
+ Testing code:
327
+
328
+ LET c=2276
329
+ LET d=-557
330
+ PRINT c
331
+ PRINT d
332
+ LET c=1776
333
+ LET d=-1114
334
+ PRINT c
335
+ PRINT d
336
+
337
+ Program outputs:
338
+ 2276
339
+ -557
340
+ 1776
341
+ -1114
342
+ None
343
+
344
+
345
+ '''
346
+
347
+
348
+
349
+
350
+
351
+
352
+ ################################################
353
+
354
+ # approach 1C
355
+
356
+
357
+ '''autograder expected output
358
+ Testing code:
359
+
360
+ LET a=21
361
+ PRINT a
362
+
363
+ Program outputs:
364
+ 21
365
+
366
+
367
+
368
+
369
+
370
+ Testing code:
371
+
372
+ LET a=32
373
+ LET b=72
374
+ PRINT a
375
+ PRINT b
376
+
377
+ Program outputs:
378
+ 32
379
+ 72
380
+
381
+
382
+
383
+
384
+
385
+ Testing code:
386
+
387
+ LET c=2276
388
+ LET d=-557
389
+ PRINT c
390
+ PRINT d
391
+ LET c=1776
392
+ LET d=-1114
393
+ PRINT c
394
+ PRINT d
395
+
396
+ Program outputs:
397
+ 2276
398
+ -557
399
+ 1776
400
+ -1114
401
+
402
+
403
+
404
+
405
+ '''
406
+
407
+
408
+
409
+
410
+
411
+ '''autograder actual output
412
+ Testing code:
413
+ LET a=24
414
+ PRINT a
415
+ Program outputs:
416
+ 24
417
+
418
+
419
+
420
+ Testing code:
421
+ LET a=30
422
+ LET b=40
423
+ PRINT a
424
+ PRINT b
425
+ Program outputs:
426
+ 30
427
+ 40
428
+
429
+
430
+
431
+
432
+ Testing code:
433
+ LET c=2126
434
+ LET d=-477
435
+ PRINT c
436
+ PRINT d
437
+ LET c=1626
438
+ LET d=-954
439
+ PRINT c
440
+ PRINT d
441
+ Program outputs:
442
+ 2126
443
+ -477
444
+ 1626
445
+ -954
446
+
447
+
448
+
449
+
450
+ '''
451
+