Girl Develop It is here to provide affordable and accessible programs to learn software through mentorship and hands-on instruction.
Some "Rules":
Tell us about yourself.
# Java
for(int i = 0; i < 5; i++)
# Ruby
5.times do
Try out some calculator functions
3 + 4
2 * 4
6 - 2
4 / 2
4 /* 2
=> SyntaxError: (irb):10:syntax error, unexpected *
# Everything after this pound/hash sign will not be evaluated.
# These are called comments and I will use them to annotate code
age = 50
days_in_year = 365
days_alive = age * days_in_year
=> 18250
age = 50
_age = 50
_my_age = 50
# create and assign in one line
age = 0
# access the value in age
age
# replace value in age
age = 40
# good
occupation = "software engineer"
# bad
occupation_i_always_dreamed_of_having_in_seattle = "software engineer"
o = "software engineer"
1st_occupation = "software engineer"
# error
name
name = "Jess"
defined?(name)
irb> 1.class
=> Integer
irb> 1.0022.class
=> Float
irb> "Hello".class
=> String
irb> [1, 2, 3].class
=> Array
Strings are characters inside double or single quotes.
first_string = 'Hello '
second_string = "World"
combined_string = first_string + second_string
combined_string.reverse
=> "dlroW olleH"
name = "Jessica "
name_multiple = name * 4
# Here multiplying a by 4 concatenates (links) four strings together
=>"Jessica Jessica Jessica Jessica "
name = "Jessica"
name.upcase
name.downcase
name.capitalize
name.length
name.swapcase
"".empty?
What is the reverse of your name?
How many characters long is your name?
Can you repeat the word hello 100 times?
What is the 5th character of my name (or your name)?
Numeric data comes in two types: Integers and Floats
Integers do not have decimals.
Floats are numbers with at least one number to the left of a decimal point.
irb> 55.class
=> Integer
irb> 55_000.class
=> Integer
irb> 55.001.class
=> Float
7/8
7.0/8.0
3.14.to_s
1 + "2"
(1 + 2) * 3
1 + (2 * 3)
What is the number 1.25976 rounded to a precision of 2?
What is the the smallest possible integer that is greater than or equal to 5.2?
How would you turn the number 42 into a float? How would you turn the float 56.25 into an integer?
You can think of symbols as lightweight Strings.
It's good to know these exist, but don't worry about them too much for now.
# transient and mutable
"hello"
# permanent and immutable
:hello
This is another Object that we will learn about later.
For now, when you hear Boolean, think TRUE and FALSE.
# NOT true
!true
=> false
# NOT false
!false
=> true
We will also leave these data types for the next class
Examples of what they will look like:
# Arrays are used to hold sets of data.
irb> array_of_numbers = [1,2,3]
irb> array_of_numbers.first
=> 1
# Ranges are used to express a sequence.
irb> range_of_numbers = (1..5)
irb> range_of_numbers.include?(4)
=> true
# Hashes are like dictionaries. You can look up a value by a key.
irb> hash_of_key_to_value =
{
"Apple" => "A fruit.",
"Cucumber" => "A vegetable."
}
irb> "2".to_i
=> 2
irb> 2.to_s
=> "2"
irb> "2" / 5
NoMethodError: undefined method `/' for "2":String
To obtain user input, use the `gets` keyword
To print out information, use the `puts` or `print` keyword
Let's create our first Ruby program together!
Put the code below in your repl and run it! What's happening on each line?
puts "Hello there, and what's your name?"
name = gets.chomp!
puts "Your name is " + name + "? What a lovely name!"
puts "Pleased to meet you, " + name + ". :)"
#1 dog year = 7 human years
user_age = gets.to_i
Practice: Write a command line program that asks the user for the year they were born, then calculates their age in years, days, and seconds. Tell the user how old they are in these different formats. (Note: you'll be using 'gets' and 'puts' in this program, along with some math)
Prep: Read Chapter 6 and Chapter 7 of Learn To Program- don't try to do the exercises at the end yet, though.