We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

Python Bee

00:00

Formal Metadata

Title
Python Bee
Title of Series
Number of Parts
160
Author
License
CC Attribution - NonCommercial - ShareAlike 3.0 Unported:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal and non-commercial purpose as long as the work is attributed to the author in the manner specified by the author or licensor and the work or content is shared also in adapted form only under the conditions of this
Identifiers
Publisher
Release Date
Language

Content Metadata

Subject Area
Genre
Abstract
Python Bee EuroPython 2017 - Interactive session - 2017-07-14 - PythonAnywhere Room Rimini, Italy Thought up in 2009 by a group of MIT students who entered the Python bee into a competition for “bad ideas”, a Python bee is like a spelling bee for programmers. Instead of spelling words, participants are given functions to write and must spell them out loud - one character at a time, without looking at the code that they're writing! Players must spell valid Python and every character counts, including symbols and whitespace. And the twist for the second round (credit for this one goes to dropboxblogs): You're now allowed to look at the code, but... you must now team up with other programmers, entering alternate characters without being allowed to communicate via any other means. In order for everyone to be able to have a go, we'll split up into small groups to play - for those that want to be competitive, we'll use a scoring system so that we can still declare an overall champion. You're very welcome to come along just to have fun though!
95
Thumbnail
1:04:08
102
119
Thumbnail
1:00:51
Coma BerenicesSoftwareIntelStudent's t-testRoboticsSoftware developerGenerating set of a groupSurgeryLink (knot theory)Key (cryptography)QuicksortGroup theoryEvent horizonDirected graphFree groupMultiplication signCommitment schemeWater vaporPoint (geometry)MereologyWordComputer programmingCapability Maturity ModelComputer animation
CodeRule of inferenceLattice (order)Normed vector spaceStudent's t-testEvent horizonCyberspaceDistanceFlow separationLevel (video gaming)CodeGraphics softwareType theoryMultiplication signCASE <Informatik>Functional (mathematics)Spherical capSoftware testingRight angleService (economics)Computer fileMereologyRoute of administrationSet (mathematics)Kernel (computing)CommutatorToken ringMusical ensembleLine (geometry)Single-precision floating-point formatState of matteroutputModule (mathematics)Closed setStructural loadOpen setText editorComputer animation
Arithmetic meanComputer chessTrailSoftware testingTotal S.A.LaptopGroup theoryCloningGraphics softwareRevision controlStandard deviationLibrary (computing)Set (mathematics)Hacker (term)Group theoryNP-hardQuicksortNumberCodeLink (knot theory)Text editorCASE <Informatik>POKESquare numberContext awarenessTrailDifferent (Kate Ryan album)Set (mathematics)Revision controlLaptopStandard deviationComputer fileLibrary (computing)Stack (abstract data type)CircleCyberspaceObservational studyProduct (business)Multiplication signCausalityForceNetwork topologySource codeState of matterComputer simulationDecision theoryMachine visionTerm (mathematics)Right angleStructural loadEvent horizonOrder (biology)Distance
Twin primeGroup theoryCloningLibrary (computing)Standard deviationGraphics softwareCyberspaceGroup theoryPixelACIDSystem callRight angleArrow of timeFunctional (mathematics)Line (geometry)CASE <Informatik>TableauInsertion lossPhysical lawCovering spaceSpecial unitary groupGame theorySoftware testingMultiplication signClosed setOpen setLinear code2 (number)Factory (trading post)Natural numberSemiconductor memoryNumberMatrix (mathematics)Lecture/Conference
Revision controlToken ringCyberspaceSoftware bugError messageRandom matrixValidity (statistics)NumberSoftware testingExponentiation1 (number)Functional (mathematics)Function (mathematics)DigitizingCASE <Informatik>ParsingClosed setOpen setVideo gameModel theoryNumeral (linguistics)Series (mathematics)Potenz <Mathematik>Matrix (mathematics)Hydraulic jumpLine (geometry)Network topologyArithmetic meanNatural numberReal-time operating systemLecture/Conference
Group theoryGraphics softwareLibrary (computing)Standard deviationLaptopRevision control12 (number)Set (mathematics)CyberspaceSingle-precision floating-point formatWordLine (geometry)Point (geometry)Keyboard shortcutWeb pageState of matterSystem callForm (programming)Web browserEqualiser (mathematics)Film editingLecture/Conference
Revision controlLaptopMereologyCyberspaceWordLine (geometry)10 (number)Software testingSingle-precision floating-point formatVideoconferencingVideo gameGroup theoryNumberParameter (computer programming)Process (computing)Open setClosed setGoodness of fitMultiplication signProof theoryMatrix (mathematics)PlanningLecture/Conference
Software testing1 (number)Traffic reportingPhysical systemFerry CorstenType theoryLecture/Conference
Normed vector spaceExecution unitGamma functionGoodness of fitFormal languageType theoryLine (geometry)CyberspaceDemosceneTask (computing)Multiplication signKeyboard shortcutChemical equationView (database)Different (Kate Ryan album)HypermediaRight angleVideoconferencingTerm (mathematics)1 (number)SpacetimeClosed setSingle-precision floating-point formatOrder (biology)Open setProof theoryXML
Group theoryLibrary (computing)Graphics softwareCodeAsynchronous Transfer ModePoint (geometry)Limit (category theory)Asynchronous Transfer ModeGroup theoryUniform boundedness principleMusical ensembleStack (abstract data type)SequenceCodeMultiplication signLaptopBuffer overflowComplex (psychology)Projective planeRoundness (object)Computer-assisted translationPoint (geometry)Quicksort
NumberGroup theoryLine (geometry)Electronic mailing listHydraulic jumpCyberspaceAsynchronous Transfer ModeRight angleType theoryResultantFunctional (mathematics)Power (physics)Level (video gaming)Order (biology)Row (database)State of matterMultiplication signClosed setOpen set4 (number)WordXML
Open setCyberspaceSquare numberLine (geometry)Goodness of fitMultiplication signWordModel theoryState of matterTheoryVariety (linguistics)Sound effectControl flowClosed setArithmetic meanDean numberExecution unitLecture/ConferenceMeeting/Interview
Execution unitSoftware testingSeries (mathematics)CASE <Informatik>CyberspaceSummierbarkeitMultiplication signRow (database)QuicksortCanadian Mathematical SocietyRule of inferenceForm (programming)ResultantMedianType theoryNumber2 (number)Closed setArithmetic meanHacker (term)Function (mathematics)Equaliser (mathematics)Line (geometry)Message passingXML
Coma BerenicesDigital electronicsPhysicalismFluidCommitment schemeRoboticsMoment (mathematics)DataflowWritingVulnerability (computing)Information securityDuality (mathematics)Message passingRoundness (object)WebsiteLecture/Conference
Transcript: English(auto-generated)
Cool, thanks for coming. I hope this should be quite a fun, interactive session. So I hope you've picked wisely. So just briefly, I am Emma. I am a Python developer at Cambridge Medical Robotics. We're a startup working on sort of next generation
robotics for key health surgery. It's pretty cool and we are hiring, so if you're interested, I'll put a link up at the end and you can come talk to me. So onto the session then. What on Earth is PythonB? So this was created in 2008. A group of MIT students entered it into a competition for bad ideas, which it won and has suitably
been run ever since. It is utterly ridiculous, it's great fun. So if you've heard of a spelling bee, where you have to spell words out loud, so this is like that for programs. So you have to spell a single character at a time, your solution out loud, yep, even the white space, even the punctuation, absolutely everything.
You're not allowed to look at the code whilst you're doing this, so someone else will be typing it in for you. So the white space one, you're probably immediately wondering, tabs or spaces. We may get to several levels of indentation. I don't want anyone to have to sit there and remember if they said 12 or 11 spaces.
So flame wars aside, tabs, just make our life easier. So we'll set our editors to a tab for spaces and just avoid that conundrum. So how does this ridiculous thing work? We are going to give you an example. So I've set up a load of files.
Each of these has the module doc string, contains what the problem is that you're supposed to do. Then there are some tests and the idea is you write some code and the tests pass. So in this case, somebody would read out the question to you, so they would say, write a function f which takes arbitrary input yet always returns hello world. So obviously they'd need to say out loud the capitalization of that because you can't see it.
And then you would go about writing a solution. So we have this thing here. So whoever's typing in for you will delete this and then you'll say your solution. So I'm not allowed to look at that. Okay, so def, oops, no, def space f open parenthesis,
star a comma space star star k close parenthesis colon new line tab R-E-T-U-R-N space single quote H, oops, no, backspace, capital H-E-L-L-O space capital W-O-R-L-D quote
run test, okay. And then someone will have typed that in for you. So you'll notice that most editors are gonna put extra stuff in for you here, so you need to be really careful. If you can use a plain text editor or just like notepad or something, that'd be great.
If not, make sure if you're typing stuff in you're deleting any extra characters. So again, you'll probably have auto indentation, so either set your editors so that isn't happening or just delete it for them. And as I said, either set it so that tabs are four spaces or just type space four times if you really can't bring yourself to use tabs.
So right, so we now run these tests. So it'll return silently if everything works. If say, you'd, I don't know, got enthusiastic and put an exclamation mark in there, you'll have some test failures. All right, so that's gonna be the idea.
How are we gonna set this up? Oh, so actually some hints. So as I said, you can set backspace if you make a mistake. If you're getting to lots of sort of nesting and you wanna track where that's going, I advise, like, your fingers are a useful stack. You can pop back out as you wanna track indentation.
Parenthesis, square brackets, be really clear about what you mean, so it's open and closed parenthesis, open and closed square or curly brackets. Be very clear. Similarly, if you want an uppercase character, you need to say capital, whatever, otherwise they'll assume another case. I wouldn't get carried away and worry about elegant solutions and performance here.
Just make the code work, yeah. So, scoring. So we're gonna have a set of these test files. If it returns silently, it was successful, you get some points. You don't get another go if it fails. Questions are divided up into easy, medium, hard, where hard is, bearing in mind, you're not allowed to look at the code and this is entirely ridiculous rather than hard in any other context.
So you get a different number of points, one, two, and three respectively. Just keep a mental note of your score. We'll try and declare an overall winner at the end. And no peeking at the questions slash doing one that you've just seen someone else do. That takes the fun out of it. I'll just be honest, I'll do that. Set up. So we're gonna try and group so about three.
You only need one laptop between you. So if you have any setup issues, just put your laptop away and use someone else's that works. The idea is any one time, one person will be having a go and two people will be typing. It'd be really annoying if someone just put a typo in and that caused you to not get the right answer. So that's why two people watching over. And then about 10 minutes each and then we'll swap over. The questions are up on GitHub at that link there.
As I said, try and use a plain text editor or set things up so that tabs are four spaces, auto indentations off, that sort of thing. Agree on your version of Python. I've tested these questions with both 2.7 and 3.6. I believe they should be fine. Obviously, you need to know which one it's set to use. And standard Python library only.
And yeah, have a go. Get into groups. If anyone's got any questions, put your hand up and I'll come around. Yeah, let's get started.
One final comment. You might find the easy questions potentially quite boring.
They're there in case there are any people who are really quite new to Python. So probably medium or above if you've been using it a while. What's that, sorry? It's got a title and everything.
No, I would like you to not record it, thank you.
We should, we should. Nate had the practice one. You could just pick anything. It's fine. I can help you do it yourself. Yeah, this guy's a pebble, I think he gets hard ones.
You're a what? Yeah. He's written some pebs. I think you have to use your solution. If one of the questions is publish a package to Python, yes, you can use one of his pebs.
I can't use any of my pebs because we're not with integers. The number is perfect, some of it's divisors.
The number itself. Whatever you read, read it with a little microphone so they can record it.
Get all the details there.
Yeah, I mean this is gonna be a pretty hard question even if you are typing, I think. And this is a helper function. And this is a helper function in that.
Factorial? Yeah. Actorial, factorial, calculation, lots of integer, turns into factorial.
I'm not the worst person to do this. F of zero is one, you see the dot test is a game. And it has to be linear time and linear memory. Yeah. So the dot test is complete within like 30 seconds. I think it's the easy one. It's an easy one.
Wow, good fun. Can I have a look at the dot test then? Since now I know I'm gonna do it. Yeah, so you can check that.
Okay. That last case didn't, I considered a look up table but that last case is fairly big.
Oh, I have a great idea that I'm gonna save for a really hard one now. Time to swap over if you haven't done so yet. Okay, okay, here we go. Okay, DEF, space, F, open paren, I, close paren, colon,
new line, tab, I, F, space, I, equals, equals, zero, colon, R, E, T, U, R, N, E, space, one,
colon, new line, tab, R, E, T, U, R, N, space, F, open paren, N, minus, one, close paren, asterisk, I need to go back and change the N's to I's.
Left arrow, left arrow, left arrow,
actually, control, A, delete. Just for the function, just for the, never getting around is not gonna work. One, I'm gonna say exactly the same thing but with I instead of N. So if you just wanna fix those up and go back to the asterisk, then that's fine by me.
Okay, back to the start. This is recorded now. Okay, D, E, F, space, F, open paren, I, close paren, colon, new line, tab, R, E, T, U, R, N, space, one,
I, F, space, I, equals, equals, zero, E, L, S, E,
space, I, asterisk, F, open paren, I, minus, one, close paren, happy, all good.
It's a Python 3.5, right? Yes, ha ha. So as of Python 2.7, and you are actually
getting syntax error for that? You shouldn't be, there's no syntax error in there. That's fine, they're unambiguous. You don't need spaces between unambiguous tokens.
Ha ha ha ha. I actually voted to not fix that bug but in Python 3.4.2, I think, or 3.4.3, someone complained that zero else should have, like, was being passed incorrectly
because it was being passed as zero, E, oh, L is not a valid exponent syntax error. And they were saying that zero else are two unambiguous tokens and you shouldn't have to put a space between them. So we fixed the parser to go back. If we found digit E non-digit, we'd go back and say it's a number followed by E rest of whatever that token is.
So yeah, this is what happens when I get easy questions. Ha ha ha. Now I get a medium one, do I? Just jump straight into the advanced ones.
I have my trick, I have another trick. I just want to show off my trick. Nah, I'll give an advanced one, go. My trick was going to be import sys, sys.exit zero, but doc test might be smarter than that.
Write a function F which, given a positive integer,
returns the value as a Roman numeral, where in Roman numerals, I equals one, V equals five, X equals 10, L equals 50, C equals 100, D equals 500. Those are all lower case. The value you return should use as few characters as possible, EG4 should be IV rather than IIII.
You can assume that the number you have to convert is less than 1000, and actually the tests allow you to output the number in either lower case or upper case, but it has to be consistent.
Nope. And three of something is three, so three would be I.
Are you ready, are you ready to code? Are you hanging on, yeah, should we see each other? Yes, I should. We'll make it start. Let's see how this goes.
It was a function F, right? Okay, def space C, open paren, I, close paren, colon, new line,
tab, W-H-I-L-E, space, I greater than, equal to 500, colon, enter, tab, tab,
I minus equals 500, enter, tab, tab, Y-I-E-L-D, space, yield, Y, hang on, Y-E-I-L-D, that's what I said.
Might not be what I said. Shift, home, delete, I hope that works on your keyboard. Cut line, tab, tab, Y-E-I-L-D, space,
single quote, D, close single quote, new line, tab, I-F, space, I greater than, equal to 300, colon, new line,
tab, tab, I-F, space, I greater than, equal to 400, colon, new line,
tab, tab, tab, Y-E-I-L-D, space,
single quote, C, single quote, enter, tab, tab, tab, I, plus, equals, 100,
new line, tab, tab, enter, new line, tab, tab, Y-E-I-L-D, space, single quote, C, D, single quote,
new line, tab, tab, I, minus, equals, 400, new line, tab, W-H-I-L-E, space,
I greater than, 100, backspace, backspace, backspace, equals, 100, colon, new line, tab, tab,
I minus, equals, five, zero, new line, tab, tab, Y-E-I-L-D, space, single quote, C, single quote, I think I've screwed up here,
but whatever, new line, tab, I-F, space, I greater than, equal to, eight, zero, colon,
new line, tab, tab, I-F, space, I greater than, equal to, nine, zero, colon, new line, tab, tab, tab, Y-E-I-L-D, space,
single quote, X, single quote, I'm totally off now, new line, forge ahead, forge ahead,
I shouldn't be into the tens yet, tab, tab, tab, I plus, equals, 10, new line, tab, tab, Y-E-I-L-D, space, single quote,
I know where I've gone wrong now, okay, just hope there's no tabs for this, X-C, single quote, new line, tab, tab,
I minus, equals, nine, zero. It's time to swap over again if you just finished the question you're currently doing. New line, this must look so good, but we should be getting what you're typing on the screen for people who are watching, because this is going to be a really boring video,
otherwise. Yeah, that's probably a good idea. I think I'm so far wrong with this that I'm not going to get any good score anyway.
Okay, let's bail out and just go for successful tests. Tab, W-H-I-L-E, space, I greater than, zero, colon, space, new line,
tab, tab, Y-E-I-L-D, space, single quote, I, single quote, new line, tab, tab, I minus, equals, one, new line, new line, D-E-F, space, F, open paren, I, close paren,
colon, new line, tab, R-E-T-U-R-N-E, space, single quote, single quote, full stop, J-O-I-N, open paren, C, open paren,
I, close paren, close paren. I gave up. Some of those numbers are going to have a lot of I's in them. Oh, really?
Is it Y-I-E-L-D? Damn American spellings. What? Did I have an E on the end of, I did not.
I did not. We have video proof. R-E-T-U-R-N. There's no way I would have put an E on the end of that. Amazing. Space.
I always do that with yield as well. Yay. The first test was one, wasn't it? It went, yeah. Okay. Well, my second plan then is import OS, OS.exit zero.
But I suspect the doc test is gonna catch system exit and report that as a failure.
There you go. All right, must be your turn, Thomas. Let's, yeah, let's get up on screen so we can actually record the typing. Can we use your laptop?
No, because you're gonna get the microphone. Oh, you're having a copy of the problem in front of you. Yeah, he hasn't been looking through all the other ones while you were sitting there, right? Which one do you want to do? Two minutes. Okay, put it on here.
What's your PhD in again? I want to do one of these. One of these. Medium. All right. Well, what medium would you like? Balancing some proof, checking if proof is a balanced or balanced parenthesis.
I think this needs to be only one. Not after this, I don't know. You wanna give it a go?
Okay, I don't think you do. Someone likes to type and I'll check everyone else's. I think we do it.
Order matters only count. You're on camera for this one. You've gotta look good. I mean, yeah, you can see what I'm typing. Just let me know if I typed something wrong.
I might type something wrong because I'm not used to this keyboard layout. But I'm basically hunting and pecking as well, so. I'm basically hunting and pecking here as well, so it's not gonna matter.
Has anyone gotten a score above zero yet? Everyone has zero. Oh dear. We're just doing one on the video, so don't mind us speaking into the room.
You ready? Thomas is ready. Ready. Go. D-E-F space F, open parenthesis S, close parenthesis colon.
Okay. New line, tab, P equals zero. New line, tab, for C in, oh, sorry, I have to spell these out.
F-O-R space C space I-N space S colon. Just five minutes and we're gonna do the second half with a different exercise.
New line, tab, tab, I-F space C equals equals single quote, open paren,
single quote, colon, new line, tab, tab, tab,
P plus equals one, new line, tab, tab, E-L-I-F space C equals equals
single quote, close paren, single quote, colon, new line, tab, tab, tab,
I-F space P equals equals zero, colon, new line, tab, tab, tab, tab, R-E-T-U-R-N space capital F-A-L-S-E,
new line, tab, tab, tab, minus equals one,
new line, tab, R-E-T-U-R-N space, P equals equals zero, save and run tests.
I don't even know what you're working in here. That's all. Congratulations. Okay, well done.
I think that's a good place to stop, so I'm gonna go on to the second half. If we can all just stop there where we are, I'll knock out ones. So, because that wasn't absurd enough, now we have something pretty different. Co-op mode. So, you're now gonna write code as a group,
so you get to write a single character and then the next person gets a character. You do get to look at the code now, which is more helpful. You're not allowed to talk to each other, you're not allowed to do any hand signals, no communicating, no complex sequence of winks or anything like that. Absolutely no talking. I suggest you just pass the laptop round
and enter one character at a time. I have tried this before with a group of people in the pub. Half of the people there had never done any Python, one person had never programmed at all. It went badly wrong, suffice to say. Turned into a ridiculous Stack Overflow question to see if we could get the thing to run at all. It'll either go that badly and you'll have a lot of fun or you might even get it to work.
So, probably groups of six, so if you get together, two groups of three together. If you get a solution right, you get two points, each of them are in the group. There is a folder called group in the project tree, so you try the exercises from that. And we've got about 15 minutes to have a go. So, go for it.
You gotta do one from group. So, would you like to calculate a median? Do the M Fibonacci number,
or slightly, quite a lot easier, reverse some words in a string. Remember, you can still do backspace with the person before you does something utterly ridiculous. Yes. So long as you have a majority of the people
in agreement with deleting what the other people have done. See if you can do a median, if that's all right. You should shout out the letter into the microphone as you press it. Yeah, I agree with that, okay.
So, in this one, we're writing a function, f, which, given a list of numbers, calculates the median value. If the list is empty, return none. As Thomas just suggested, this is power mode, which means you need to shout out the letter you're typing as aggressively as you can, and then move on.
And I think we're just gonna rotate around the stage, like a conga line, so. And now let's just jump off the stage and go around, I think. So, we have our order sorted out. We don't get to communicate once we start.
So, this is the order. No, you get one backspace, and then you've gotta go off, and the next person has to do it. Four's fine, let's just do four.
I mean, if there are people sitting here that are not joining in, then have them join in. No.
D, we've started, go. E. X, no, just kidding, f.
Open parenthesis. N, close parenthesis.
The white space is okay?
Okay. Oh, that's the time to think.
N.
S. I have no idea.
I have honestly no idea. So, yeah, that's communicating,
but yeah, I was thinking along those lines. Backspace.
T.
Open paren.
Should I be after the? Yeah, okay. But I guess we, I'm a bit confused.
Close parenthesis. New line.
Backspace.
F. Space.
Oh. T. Space.
I feel like this is just getting more confusing every time. Well, space. Okay, let's do backspace.
New line. R. E.
D. U. N. New line.
R. E. E.
Backspace. Oh, backspace, good. U. R. N. Space. N.
Space.
Open square bracket. I have no idea what we're gonna do with a square bracket.
Backspace. I'll do backspace.
Square bracket. L. Backspace.
Just gotta say one character at a time. Period.
Yeah, it does actually say.
You know what? Sorry. I didn't, nevermind, just space. Backspace.
I wasn't confused unless you deleted my L in brackets. I wasn't confused. I'm confused about whether I've stopped at something
that other people haven't or whether other people responded in a way of avoiding the problem that I have. Well, you have a chance to others. Space. Backspace. Backspace.
We've got about five minutes left. So yeah, good luck. I've been asked to give a hint to this team which I guess I'll do, I'm feeling nice. So look at the second test case that's been requested by one of your team members.
Well, so I meant to be looking at the second test case.
I think we're clearly not because I've been exactly here before. Backspace. Backspace. Backspace.
I concur now. Maybe it should be like one, two, three, four. You are. So somebody can highlight a component. And then there's. Thomas, let's just do that and get it done. Yeah, okay. Whatever happens. I'm sorry.
Space. Oh crap, how do you do this on a Mac?
Tab.
That's true. New line.
Yeah, it's by one definition. How about, it was just like. Just second test case. Wait, wait, wait.
It's compliant. Okay. It's gonna be a lot of typing. So maybe. You can do it this way. Or can we establish the definition for sure. So the definition of this median is
the centric value is the number of values or the mean number of the first centric values is the median number of the values. So if there's an exact one in the way, the log of it is the mean. If there are two equally, because there's an even number of the syllabus, you take the mean. That's what it's doing here. In some definitions you take the lower one,
some you take the higher one, in some you take the mean of the two, and we're taking the mean of the two in the middle if there's an even number of values. Right, then we should time. L. E.
Tab. N. Okay, what now?
Closing parenthesis? Yeah, colon. Oh, sorry, that was a mistake. Space. Percent. Oh, sorry.
Percent. Yeah. Equals. Equals.
Zero. Colon. Enter. One minute.
E. T. U. Tab. N. Scrubber hack.
Tab.
Slash. Oh, sorry, slash. Two. Yeah, like two characters. Okay, I guess, I'm not sure if this is gonna override it but I want to just close that.
Yeah, okay. Closing the scrubber hack. Alright, last character and then we're done. You won. Sorry. I can run it and see how much you actually got if you want.
Two out of six passed. So you know. Cool. Alright, I'm afraid that is all we have time for. So if we can just sum up at the end and try and figure out who won.
Thanks. So if I could just have all your attention for a minute, you can carry on playing afterwards if that's what you want if we could just have quiet for a second.
So, thank you all for playing. I hope you enjoyed that. Thank you for Cambridge Medical Robotics for allowing me to be at the conference this week and run the session. So we are hiring, so if working surgical robots sounds cool, then please check out the website or come talk to me afterwards. So scores, I hope you all made a mental note.
Scores, we're gonna go for a simple one. The winner gets this exciting Python Easter sticker I picked up at the O'Reilly desk yesterday, which I've written, you're a Python, Python be champion on. So it's an ultimate prize. So if you, everyone puts their hands up, and then if you keep your hand up if you got the score I'm about to say or higher. So if you all lift your hands up. Okay, one, excellent, two.
Right, we have a joint winner, both on one. I suggest you take half of the sticker each. A round of applause for our winners. I will leave your sticker here, congratulations. So yeah, I hope you all have fun.
You can play this anytime you like, in a pub or in the hallways afterwards. Yeah, hope you enjoyed it. Thanks.