# ตัวอย่างตัวแปรประเภทต่างๆ
x = 312 #จำนวนเต็ม (int)
y = -3.14 #เลขทศนิยม (float)
s = "Hello, World." #ข้อความ (string)
a = [1, 2, 3, 4 , 100] #ลิสต์ของตัวเลข
b = ["A", "Hello", "Good Bye"] #ลิสต์ของข้อความ
c = [1, -0.5, "Hello", [3,4], a, b] #ลิสต์ของสิ่งต่างๆหลายแบบ
t = (1, 4, 9, 16, 25) #ชุดของตัวเลข (tuple)
w = ((1,2,3), (4,5,6)) #ชุดของชุดตัวเลข (tuple of tuples)
# เลขจำนวนเต็มบวกกับเลขทศนิยมได้
x + y
308.86
# เลขจำนวนเต็มบวกกับข้อความไม่ได้
x + s
--------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-3-5567e437091b> in <module> 1 # เลขจำนวนเต็มบวกกับข้อความไม่ได้ 2 ----> 3 x + s TypeError: unsupported operand type(s) for +: 'int' and 'str'
# เลขจำนวนเต็มบวกกับลิสต์ไม่ได้
x + a
--------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-4-311bbe670be6> in <module> 1 # เลขจำนวนเต็มบวกกับลิสต์ไม่ได้ 2 ----> 3 x + a TypeError: unsupported operand type(s) for +: 'int' and 'list'
# ลิสต์กับลิสต์บวกกันได้
a + b
[1, 2, 3, 4, 100, 'A', 'Hello', 'Good Bye']
# หน้าตาของ c ที่มีลิสต์ a และลิสต์ b เป็นสมาชิกอยู่ด้วย
c
[1, -0.5, 'Hello', [3, 4], [1, 2, 3, 4, 100], ['A', 'Hello', 'Good Bye']]
# เอาเลขจำนวนเต็มบวกคูณกับข้อความได้
3 * "Hello "
'Hello Hello Hello '
# ลองเอาเลขจำนวนเต็มลบคูณกับข้อความดูว่าจะเป็นอย่างไร
-3 * "Hello "
''
# ข้อความบวกกับจำนวนเต็มไม่ได้
s + x
--------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-9-ba656b8f6b23> in <module> 1 # ข้อความบวกกับจำนวนเต็มไม่ได้ 2 ----> 3 s + x TypeError: must be str, not int
# ต้องเปลี่ยนจำนวนเต็ม x ให้เป็นข้อความด้วย str(x) ก่อนที่จะเอาไปบวกกับข้อความ s ได้
s + str(x)
'Hello, World.312'
# เปลี่ยนจำนวนเต็ม x ให้เป็นข้อความด้วย str(x)
str(x)
'312'
# ลองบวกข้อความที่หน้าตาเหมือนตัวเลข "123" กับจำนวนเต็ม 456
# บวกกันไม่ได้ ข้อความบวกกับจำนวนเต็มไม่ได้
p = "123"
p + 456
--------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-12-37f89b5c0025> in <module> 3 4 p = "123" ----> 5 p + 456 TypeError: must be str, not int
# ถ้าจะบวกให้ได้ ต้องเปลี่ยนข้อความ p ให้เป็นจำนวนเต็มด้วย int(p) ก่อน
int(p) + 456
579
# การทำงานซ้ำๆด้วย for i in range
for i in range(1,11):
print(i)
1 2 3 4 5 6 7 8 9 10
# ให้คอมพิวเตอร์บวกเลข 1 ถึง 10 ให้
sum = 0
for i in range(1,11):
sum = sum + i
print(sum)
55
# ให้คอมพิวเตอร์บวกเลข 1 ถึง 1,000,000 ให้
# สังเกตว่าเราใส่ _ แทนที่ , ให้อ่านตัวเลขยาวๆให้ง่ายขึ้นได้
sum = 0
for i in range(1, 1_000_001):
sum = sum + i
print(sum)
500000500000
# ให้คอมพิวเตอร์บวกเลข 1**2, 2**2, 3**2, ..., 10**2 ให้
sum = 0
for i in range(1,11):
sum = sum + i**2
print(sum)
385
# ให้คอมพิวเตอร์บวกเลข 1**3, 2**3, 3**3, ..., 10**3 ให้
sum = 0
for i in range(1,11):
sum = sum + i**3
print(sum)
3025
# ถ้าจะให้พิมพ์ทีละขั้นตอน ก็ใส่ print ไว้ใต้ for i in range ด้วย
sum = 0
for i in range(1,11):
sum = sum + i**3
print(sum)
1 9 36 100 225 441 784 1296 2025 3025
# สังเกตว่าผลรวมของตัวเลขกำลังสาม เท่ากับ (ผลรวมตัวเลข)ยกกำลังสอง
import math
sum = 0
for i in range(1,11):
sum = sum + i**3
print(sum, math.sqrt(sum))
1 1.0 9 3.0 36 6.0 100 10.0 225 15.0 441 21.0 784 28.0 1296 36.0 2025 45.0 3025 55.0
# สร้างฟังก์ชั่นมาบวกเลข 1 + 2 + 3 + ... + n
def sum_to(n):
"คำนวณผลรวม 1 + 2 + 3 + ... + n"
sum = 0
for i in range(1,n+1):
sum = sum + i
return(sum)
sum_to(100)
5050
sum_to(1)
1
# สร้างฟังก์ชั่นมาบวกเลข 1**2 + 2**2 + 3**2 + ... + n**2
def sum_sqr_to(n):
"คำนวณผลรวม 1**2 + 2**2 + 3**2 + ... + n**2"
sum = 0
for i in range(1,n+1):
sum = sum + i*i
return(sum)
sum_sqr_to(3)
14
for i in range(11):
print(i, sum_to(i), sum_sqr_to(i))
0 0 0 1 1 1 2 3 5 3 6 14 4 10 30 5 15 55 6 21 91 7 28 140 8 36 204 9 45 285 10 55 385
# สร้างฟังก์ชั่นมาบวกเลข 1**3 + 2**3 + 3**3 + ... + n**3
def sum_cube_to(n):
"คำนวณผลรวม 1**3 + 2**3 + 3**3 + ... + n**3"
sum = 0
for i in range(1,n+1):
sum = sum + i**3
return(sum)
sum_cube_to(3)
36
for i in range(11):
print(i, sum_to(i), sum_sqr_to(i), sum_cube_to(i))
0 0 0 0 1 1 1 1 2 3 5 9 3 6 14 36 4 10 30 100 5 15 55 225 6 21 91 441 7 28 140 784 8 36 204 1296 9 45 285 2025 10 55 385 3025
sum_cube_to(0)
0
# สร้างฟังก์ชั่นมาบวกเลข 1**p + 2**p + 3**p + ... + n**p
def sum_power_to(n, p):
"คำนวณ 1**p + 2**p + 3**p + ... + n**p"
sum = 0
for i in range(1, n+1):
sum = sum + i ** p
return(sum)
sum_power_to(10,2)
385
#เปรียบเทียบฟังก์ชั่นบวกเลข 1**p + 2**p + 3**p + ... + n**p
# โดยที่ p มีค่าตั้งแต่ 0 ถึง 5
for i in range(11):
for power in range(0,6):
print(sum_power_to(i,power), " ", end="")
print()
0 0 0 0 0 0 1 1 1 1 1 1 2 3 5 9 17 33 3 6 14 36 98 276 4 10 30 100 354 1300 5 15 55 225 979 4425 6 21 91 441 2275 12201 7 28 140 784 4676 29008 8 36 204 1296 8772 61776 9 45 285 2025 15333 120825 10 55 385 3025 25333 220825