April 13th, 2020
Q: Hi! Should we sign up for the LaIR or do we just join the Zoom call?
A1: Check out the details on the ‘Zoom details’ handout on the course page!
Q: Hello! Is it acceptable to define our functions outside of the main in assignment 1?
A1: Thats the best place to put them
Q: When will we be assigned our sections?
A1: By tomorrow evening - I’ll post on the course page when they’re out.
Q: I went to the Tea Room last week 1 time - may help to set informal time/periods for people to meet 🌸
A1: Good idea!
Q: does it matter if we define a function in a line before or after we use it?
A1: Python doesn’t care, but you should be consistent about it.
Q: How are we judged with the descriptive names as long as we describe why we defined the function that way?
A1: Make names succinct, but descriptive! You’ll get a better sense for this as we go through the quarter.
Q: Should we include pre and post conditions for our functions in our pset?
A1: Yes
Q: In the Karel IDE for the website, we used # for comments. Can we use # instead of “”” in our psets?
A1: “””””” is for multline comments and # is for single line comments
Q: re: Our First Python Program slide, are there any conventions for when to use # vs """
A1: “””””” is for multline comments and # is for single line comments
Q: What's the point of the "py" at the beginning of the terminal line when calling a program?
A1: ‘py’ is a program on your computer that reads through the file with the Python code you’re writing (helloworld.py) and actually executes the code!
Q: do we have to type python3 <name of program>.py every single time we want to run our code after we’ve made an adjustmenmt to the code or is there something else we can do?
A1: you can type that, or, try hitting the up arrow while you have your cursor in the terminal
Q: Is Karel artificially intelligent?
A1: But he’s not an AI :) Stop by office hours if you’re itnerested in how that something works!
A2: he is truly intelligent
Q: For the homework, does Karel need to be facing the same direction as the diagrams for the end state in the assignment sheet?
A1: We try and write in details what we expect! Its problem specific
Q: why do we have to always run our code in a specific program <name of program>? so do we need to download always a certain program to run our code eg. karel?
A1: I’m not sure I fully understand the question so feel free to clarify but your code always needs to be written in a file with a filename you then give to Python.
A2: if you just type “python” into your terminal it opens up a place where you can just type python!
Q: What is "int" short for ?
A1: integer
Q: What if the user inputs a letter instead of a number?
A1: the line where it tries to convert to an int breaks!
Q: would int stand for integer or would it allow any number?
A1: int is a function that converts text to a number!
Q: does “int” stand for integer?
A1: Yep
Q: Will python understand the difference between an input of “9” and an input of “nine?”
A1: Python doesn’t know that “nine” means ‘9’, so you can’t convert ‘nine’ to a number
Q: So we can only print Strings and not integers in the print statement?
A1: (A string is the formal name for text)
A2: if you only print an int, it is fine. Its just that you cant add a string and an intenger, gotta convert first
Q: Is there a difference between running the program in the terminal vs simply using ^R?
A1: Yes - we’ll get there later in the quarter!
Q: So using int(17.5) would return 18?
A1: Python would throw a tantrum and complain that it’s not a whole number!
Q: Dumb question but is there a french version of python for example ? or like just other languages ?
A1: good question! No its international! People around the world all write things like “def” and “int” but they would make the output in their own language
Q: Can’t we print variables too? Hence no need for str(total), simply print(total)?
A1: thats right
Q: how does the program know to print the “enter first number” “enter second number”? we never wrote print by them
A1: Input prints whatever you put in there before getting input from the user!
Q: what is str?
A1: It stands for string, which is the Python name for text - don’t worry about it too much right now!
Q: So if you want double and single quotes in the text…
A1: Answered live :)
A2: 😱
Q: What if I wanna use both in the text?
A1: live answered
Q: what if you want to use both double quotes and an apostrophe?
A1: live answered
Q: Is there a line breaker in python?
A1: Yes! It’s “\n” but you don’t need to worry about this right now.
A2: \n
Q: Can we add the single and double quote statements in the print statement? Like print("hello" + 'world')
A1: Yep
Q: What is a deliminator? Not sure if I spelled that correctly…
A1: ‘Delimiter’! It marks the start or end of something.
Q: can you use int(input(“Give number”))?
A1: Yep! We’ll get to how that works later
Q: Who is “the user” in this? Is it us or another person?
A1: Whoever is running the program
Q: does it matter if the input is a number versus a letter?
A1: the conversion to integer will break! that is the int() part
Q: How can we print text to the next line?
A1: Everytime you call print, it goes to a new line.
Q: Can the user type out a number? Say “nine”?
A1: Yes, but we couldn’t convert it to a number
Q: If the user types in “a” will there be an error because it isn’t a number? Or is the int() function ok with receiving an “a”?
A1: Nope, int will crash
Q: what if you use x == 10?
A1: That’s checking if x has the value 5 - we’ll get there later!
Q: Can you store multiple values inside a single variable?
A1: Nope!
Q: Which quotes do we use if we want to print a sentence with both “ “ and ‘ ‘? E.g. The teacher told me, “You spelled Karel ‘Karol’.”
A1: in that case there is a special token backslash which be used to mean.. i want this next token to be an actual quote, not an end of string. eg “ this’ \” “
A2: There are ways to indicate that your quotes don’t delimit a string, but they’re a little beyond what we’re working with right now. Essentially, you need to type \ before the quotes.
Q: Wondering why we can use mathematical expressions to add NUMBERS in Variables (eg x= 5 + 7), when we also said 5 is "text" and needed to convert it to a NUMBER with int?
A1: Could you clarify what you mean?
Q: Is there any way to initialize a variable without assigning a value to the variable?
A1: Not in Python!
Q: Can we define a variable before we use it? Like int x = 9
A1: yes!
Q: Is = the same as -> ?
A1: No, -> is not valid Python
Q: Can a variable first appear on the right handside? For ex. Total = Total +1, where this is the very first time total appears? If so, is total evaluated as 0?
A1: Great question! Python would complain and give you an error if you did that.
Q: If you reuse/ reassign the varible, which value will python use? for example if you were to use this code : x=10 (code part 1 ) x=5 (code part 2) will code part 1 use x=10 and part2 will use x=5?
A1: Yep!
Q: is total the previous total assigned?
A1: Yes, in this case 5
Q: both those lines of code together in a program are valid? ie. you can have both “5” and “total + 1” assigned?
A1: Yes, one comes after the other. The first would set total to 5 and the next would add 1 to it.
Q: How do you know if you picked an existing word accidentally?
A1: PyCharm will color it a special color and you’ll get a scary red line under it! You’ll also get more familiar with these words as the quarter goes on.
Q: what is snake case?
A1: variable_names_like_this
Q: If you define a variable within a function within main, does it get fed into the next function within main? E.g. if def main(): function1() # variable assigned here function2() # will function2() know the variable from function1()?
A1: Nope - functions only know about their own variables (for now!)
Q: Is the object the variable (the box) or whatever value is inside?
A1: The object is the suitcase itself, which has a 700 inside it
Q: does their sequence matter?
A1: Whose sequence?
Q: of the num____ programs in integrating the values of the others to the 3rd
A1: You can define the variable in whatever order you want
Q: Can you type a negative sign before the number to denote a negative number?
A1: Yep
Q: Difference between real value and integer?
A1: Integers can’t have decimal places
Q: int is a type and int() is a function right?
A1: Yep! Good catch
Q: What about irrational numbers?
A1: Good question! There are some clever ways to represent them but by in large we just use floats that are close to them i.e. pi = 3.1415
Q: why would you save a whole number like 5.0 as a real number rather than an integer?
A1: live answered
Q: how many digits can you put after the decimal point?
A1: An arbitrary number
Q: If you assign a variable using another variable (e.g. num_initial= 500, then later num_total = num_initial), using the luggage tag analogy would you say that a second tag is added to the suitcase or that a second identical suitcase is created? I assume it would be the second case since you are assigning rather than claiming the two variables will always be equivalent, but just wanted to check
A1: you are right!
A2: Fantastic question! You are actually usually making a new tag but there are some nuances to this, which we’ll explore later in the quarter.
Q: why is string 5 not equivalent to int 5?
A1: lots of good reasons a number could be represented as a string. For example you might have a confirmation code “04384” but a number can’t start with a zero. So at times you do want a number in string form, and they do have a few differences. Good question
A2: You can’t do math on “5” but you can on 5 :)
Q: So input always gives a string back?
A1: Yep!
A2: always!
Q: Is there a function that returms the type of a variable?
A1: Yes! It’s called type() :)
Q: Does 9 go in the place of “Enter first…” or after the colon?
A1: After the colon
Q: Do you have to end the prompt for an input command with a colon, or does it not matter?
A1: Doesn’t matter
Q: is it possible to take in an integer rather than a string?
A1: From input? No
Q: so why not name the integer version differently?
A1: You could, but we don’t need the string anymore, so we might as well overwrite it.
Q: Will python happily convert between int and float? Vice versa? (e.g. if I have 5 as an int, will python be ok if it’s reassigned as a float? Or vice versa for 5.0 float trying to convert to int)
A1: You can go from ints to floats, but floats to ints gets a little weird if there’s a decimal place
Q: eg. Brahm re: question before on strings, can we just have Input from the User be an Int or Float? Instead of a string? Or do we need a different command other than Input to make it work?
A1: You always get a string back from input, so you’ll need to manually convert it.
Q: Is there a command to convert text into floats instead of integers?
A1: Yes! It’s called float()
Q: why do we have to input string first and then convert to a int?
A1: Input always gives you back a string
Q: So num1=int(num1) is now replacing the suitcase that was a string and we cannot ask the string num1 anymore without converting it back?
A1: Yep!
Q: What if the user gave you 9.1?
A1: The program would throw a tantrum and break because you can’t convert that to an int!
Q: So you lose the num1 string value when you replace it with the int version? Or do you have both as num1?
A1: You lose the string value
Q: Is it possible to go directly to an integer value instead of having to go from string to integer?
A1: No, input always gives you back a string.
Q: If we were just printing the number 26, can we keep it in integer form?
A1: Yep!
Q: So we always have to start with input/ string?
A1: It depends on what your program is doing but if you need user input, you need to call input and you’ll get back a string
Q: why do you have to convert an int to a str version of it in order to print?
A1: live answered
Q: So unlike Karel, order does matter. if you are reassigning a varible it needs to be after that varible has already been created. Ex: num1 = 9 num1 = int (num1) is not the same as num1 = int(num1) num1 = 9 ?
A1: your example is correct. In karel order matters too (move turn isn’t always the same as turn, move)
Q: will str4 still have double quotes?
A1: Not when you print it, but internally, yes
Q: can num1 be used multiple times in the same function asking for different inputs?
A1: Yes, but you’d lose the previousinputs
Q: if your already are definying "str= " for a value, do you need to still use " "
A1: Can you clarify what you mean?
Q: Stylistically, where should we put comments in our code? Today’s lecture slides and the section on “Good Style” in the Assignment 1 handout put a multiline comment in different places. Or do we just have to be consistent with where we put comments?
A1: A multiline comment at the top, but I don’t think anything else really *needs* a comment here.
Q: Can you print a number by itself without converting it into its string form?
A1: Yep
Q: Does the + operator have multiple functions—regular addition with integers as well as concatenation with strings? Does it have any other functions with other types?
A1: Yes! We’ll get there in due time :)
Q: Do variables need to be the same type when doing mathematical operations (i.e. can we subtract a float value from an int)?
A1: Yes! If you do an operation on a float and an int you always get back a float
Q: so does input both display what you put inside () and take a string to put into the variable? aka does input do two things at the same time? and what if you leave () empty?
A1: correct. If you leave it empty, it doesn’t show the user any text before asking for the input
Q: What if the user entered a decimal?
A1: int would crash
Q: Do you need to define a function for spaces between words or does it do it automatically?
A1: What do you mean?
Q: For the example that was give "str = "hello" ", is it necessary to write hello in " " vs hello w/o "" since you are already identifying by "str=" that is a string?
A1: Oh, I see - you need the double quotes. Python won’t look at variable names (it always looks at RHS first)
Q: what if you type 10.5?
A1: Same kind of crash!
Q: after int(num1), where does the contents before the colon go?
A1: That’s not stored in num1 :)