-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy path02 Letras
121 lines (76 loc) · 5.18 KB
/
02 Letras
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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
2. Letras
Así que hemos aprendido todo sobre los números pero, ¿qué hay de acerca de las letras? ¿Palabras? ¿Texto?
Nos referimos a grupos de letras en un programa como cadenas de caracteres –puedes pensar en letras impresas que están juntas en un banner[6]—. Para hacer más fácil el ver que parte del código es una cadena, las colorearé de rojo.
Aquí hay algunas cadenas[7]:
'Hola.'
'¡Ruby rockea!'
'El 5 es mi número favorito... ¿cuál es el tuyo?'
'Snoopy dice #%^&*@! cuando se golpea un pie.'
' '
''
Como puedes ver, las cadenas pueden tener signos de puntuación, dígitos, símbolos y espacios en ellas… más que sólo letras. La última cadena no tiene nada dentro, así que la llamamos cadena vacía.
Hemos usado puts para imprimir números; intentemos ahora con algunas cadenas:
puts '¡Hola mundo!'
puts ' '
puts 'Adiós.'
¡Hola mundo!
Adiós.
Eso salió bien. Ahora intenta tus propias cadenas.
Aritmética de cadenas
Justo cómo puedes realizar operaciones aritméticas en números, ¡también puedes hacerlo en cadenas! Bueno, algo así… de cualquier manera, puedes sumar cadenas. Intentemos sumar dos cadenas y veamos que hace puts con eso.
puts 'Me gusta' + 'la tarta de manzana.'
Me gustala tarta de manzana.
¡Uuups! Olvide colocar un espacio entre 'Me gusta' y 'la tarta de manzana.' Los espacios usualmente no importan, pero lo hacen dentro de las cadenas. (Es cierto lo que dicen: las computadoras no hacen lo que quieres que hagan, sólo hacen lo que les dices que hagan.) Intentemos eso otra vez:
puts 'Me gusta ' + 'la tarta de manzana.'
puts 'Me gusta' + ' la tarta de manzana.'
Me gusta la tarta de manzana.
Me gusta la tarta de manzana.
(Como puedes ver, no importó a que cadena agregué el espacio.)
Así que puedes sumar cadenas, ¡pero también puedes multiplicarlas! (Aunque, por un número). Observa esto:
puts 'parpadea ' * 4
La computadora te hace ojitos.
Sólo bromeo… en realidad hace esto:
parpadea parpadea parpadea parpadea
Si lo piensas, tiene sentido. Después de todo, 7 * 3 realmente sólo significa 7 + 7 + 7, por lo que 'moo' * 3 sólo significa 'moo' + 'moo' + 'moo'.
12 vs '12'
Antes de que vayamos más lejos, debemos asegurarnos de que entendemos la diferencia entre números y dígitos. 12 es un número, pero '12' es una cadena de dos dígitos. Juguemos con esto un poco:
puts 12 + 12
puts '12' + '12'
puts '12 + 12'
24
1212
12 + 12
Ahora esto:
puts 2 * 5
puts '2' * 5
puts '2 * 5'
10
22222
2 * 5
Los ejemplos son bastante directos. Sin embargo, si no tienes cuidado en como mezclas tus cadenas y números puede que te metas en…
Problemas
En éste punto, puedes haber intentado algunas cosas que no funcionaron. Si no, aquí hay una pequeña muestra:
puts '12' + 12
puts '2' * '5'
#<TypeError: can't convert Fixnum into string>[8]
Mmm... un mensaje de error. El problema es que realmente no puedes sumar un número a una cadena, o multiplicar una cadena por otra cadena. No tiene más sentido que hacer esto:
puts 'Beatriz' + 12
puts 'Alfredo' * 'Juan'
Algo más que debes tomar en cuenta: puedes escribir 'puerco' * 5 en un programa, dado que eso sólo significa 5 conjuntos de la cadena 'puerco' sumados juntos. Sin embargo, no puedes escribir 5 * 'puerco', ya que eso significa 'puerco' conjuntos del número 5, lo que es un poco tonto.
Finalmente, ¿qué tal si quisieras imprimir '2° 57' 32"'? Podemos intentar esto:
puts '2° 57' 32"'
Bueno, eso no funcionará; yo ni siquiera intentaría ejecutarlo. La computadora pensaría que hemos terminado con la cadena al encontrar el segundo apóstrofo. (Por eso es bueno tener un editor de textos que colorea la sintaxis por ti). Así que, ¿cómo dejamos saber a la computadora que queremos continuar con la cadena? Tenemos que escapar el apóstrofo, así:
puts '2° 57\' 32"'
2° 57' 32"
La diagonal invertida es el carácter de escape. En otras palabras, si tienes una diagonal invertida y otro carácter, a veces son transformados en un nuevo carácter. Sin embargo, la diagonal invertida sólo escapa los apostrofes y a sí misma. (Si piensas acerca de ello, los caracteres de escape siempre deben escaparse a sí mismos). Aquí hay algunos pocos ejemplos en orden (creo):
puts 'diagonal invertida al final de una cadena: \\'
puts 'arriba\\abajo'
puts 'arriba\abajo'
diagonal invertida al final de una cadena: \
arriba\abajo
arriba\abajo
Como la diagonal invertida no escapa una «a», pero sí se escapa a sí misma, las dos últimas cadenas son idénticas. No parecen lo mismo en código, pero para tu computadora realmente son lo mismo.
Si tienes otras preguntas, ¡sigue leyendo! Después de todo, no puedo responder todas dudas sólo en ésta página.
[6] En español se les conoce con el término «banderola».
[7] Hay que señalar que dentro del código de los programas sólo se utilizan la prima (') y la doble prima (") en lugar de los apóstrofos (‘’ y “”) tanto para indicar el inicio y como para el cierre de una cadena de texto. Los editores de texto plano y otros programas enfocados a la programación las utilizan por defecto.
[8] El mensaje de error dice de forma literal que no se puede convertir un número en una cadena. Se requiere de una operación especial para poder realizarlo.