ฟังก์ชัน mean_sd ข้างล่างนี้หาค่าเฉลี่ยและส่วนเบี่ยงเบนมาตรฐาน (ที่ทำงานได้ถูกต้องแล้ว ไม่ต้องแก้ไข) จงเขียนคำสั่งเพิ่มเติมเพื่อหาค่าเฉลี่ยและส่วนเบี่ยงเบนมาตรฐานของข้อมูลในลิสต์ x แสดงบรรทัดละค่า (แสดงค่าเฉลี่ยก่อน)
def mean_sd(x):
mean = sum(x)/len(x)
s2 = 0
for e in x:
s2 += (e-mean)**2
sd = (s2/len(x))**0.5
return mean,sd
# เขียนคำสั่งเพิ่มข้างล่างนี้
x = [1,2,2,3,2,3,2,3,2,3,2,3,2,2,3,2]
# ไม่ปรับเปลี่ยนคำสั่งใด ๆ ในฟังก์ชันข้างล่างนี้
def mean_sd(x):
mean = sum(x)/len(x)
s2 = 0
for e in x:
s2 += (e-mean)**2
sd = (s2/len(x))**0.5
return mean,sd
x = [1,2,2,3,2,3,2,3,2,3,2,3,2,2,3,2]
m,s = mean_sd(x)
print(m)
print(s)
Ex().check_function("mean_sd", missing_msg="ควรใช้ mean\_sd ให้เป็นประโยชน์").\
check_args("x").has_equal_value(incorrect_msg="ส่งข้อมูลให้ mean\_sd ที่ถูกต้องด้วย")
Ex().has_equal_output(incorrect_msg = "แสดงผลไม่ถูกต้อง ตรวจการเรียกใช้ฟังก์ชัน mean_sd และรับผลมาใช้ให้ถูกต้อง")
ฟังก์ชัน mean_sd ข้างล่างนี้หาค่าเฉลี่ยและส่วนเบี่ยงเบนมาตรฐาน (ที่ทำงานได้ถูกต้องแล้ว ไม่ต้องแก้ไข) จงเขียนคำสั่งเพิ่มเติมเพื่อหาค่าเฉลี่ยและส่วนเบี่ยงเบนมาตรฐานของข้อมูลในลิสต์ x แสดงบรรทัดละค่า (แสดงค่าเฉลี่ยก่อน)
# ไม่ปรับเปลี่ยนคำสั่งใด ๆ ในฟังก์ชันข้างล่างนี้
def mean_sd(x):
mean = sum(x)/len(x)
s2 = 0
for e in x:
s2 += (e-mean)**2
print(mean)
print((s2/len(x))**0.5)
# เขียนคำสั่งเพิ่มข้างล่างนี้
x = [1,2,2,3,2,3,2,3,2,3,2,3,2,2,3,2]
def mean_sd(x):
mean = sum(x)/len(x)
s2 = 0
for e in x:
s2 += (e-mean)**2
print(mean)
print((s2/len(x))**0.5)
x = [1,2,2,3,2,3,2,3,2,3,2,3,2,2,3,2]
mean_sd(x)
Ex().check_function("mean_sd", missing_msg="ควรใช้ mean\_sd ให้เป็นประโยชน์").\
check_args("x").has_equal_value(incorrect_msg="ส่งข้อมูลให้ mean\_sd ที่ถูกต้องด้วย")
Ex().has_equal_output(incorrect_msg = "แสดงผลไม่ถูกต้อง ตรวจการเรียกใช้ฟังก์ชัน mean_sd ให้ถูกต้อง")
Ex().check_not(has_code(r"=\s*\mean_sd"),
msg="เรียก mean_sd ไม่มีผลคืนกลับมา จึงไม่ควรต้องรับผล")
ฟังก์ชัน factorial(n)
, is_digit(c)
และ guess_my_number()
ทำงานได้ดีพอสมควร แต่ยังผิดนิดหน่อย จงแก้ไขทั้งสามฟังก์ชันให้ถูกต้อง เพื่อให้การเรียกใช้ทั้งสามฟังก์ชันตามที่เขียนไว้ข้างล่างของโปรแกรม ทำงานได้ถูกต้อง
___inp___ = ["1234", "4321"]
def input():
t = ___inp___.pop(0)
___inp___.append(t)
return t
# ฟังก์ชันทั้งสามข้างล่างนี้ มีอะไรบางอย่างแปลก ๆ
# จงแก้ไขให้ถูกต้องเพื่อให้การเรียกใช้ที่แสดงข้างล่างนี้ถูกต้อง
import random
def factorial(n):
f = 1
for i in range(2,n+1):
f *= i
def is_digit(c):
if "0" <= c <= "9":
return True
def guess_my_number():
n = random.randint(1000, 9999)
print("You have two tries to guess my number")
win = False
num_tries = 2
for k in range(num_tries):
if k == num_tries-1:
print("Your last chance")
print("Enter a 4-digit number")
k = int(input())
print(k)
if n == k:
print("Very lucky !!!, you're right")
win = True
break
if not win:
print("You lose")
return True
#------------------------------------------------
# ไม่ปรับเปลี่ยนคำสั่งใด ๆ ข้างล่างนี้
for k in range(10,15):
print("factorial("+str(k)+") =", factorial(k))
#------------------------------------------------
t = "Python101"
for c in t:
print("is_digit("+c+") =", is_digit(c))
#------------------------------------------------
guess_my_number()
#------------------------------------------------
import random
def factorial(n):
f = 1
for i in range(2,n+1):
f *= i
return f
def is_digit(c):
if "0" <= c <= "9":
return True
else:
return False
def guess_my_number():
n = random.randint(1000, 9999)
print("You have two tries to guess my number")
win = False
num_tries = 2
for k in range(num_tries):
if k == num_tries-1:
print("Your last chance")
print("Enter a 4-digit number")
k = int(input())
print(k)
if n == k:
print("Very lucky !!!, you're right")
win = True
break
if not win:
print("You lose")
#------------------------------------------------
# ไม่ปรับเปลี่ยนคำสั่งใด ๆ ข้างล่างนี้
for k in range(10,15):
print("factorial("+str(k)+") =", factorial(k))
#------------------------------------------------
t = "Python101"
for c in t:
print("is_digit("+c+") =", is_digit(c))
#------------------------------------------------
guess_my_number()
#------------------------------------------------
func = Ex().check_function_def('factorial', missing_msg="ไม่พบฟังก์ชัน factorial")
func.has_equal_part_len('args', 'ฟังก์ชันนี้รับพารามิเตอร์แค่ตัวเดียว')
func.check_call("factorial(10)").has_equal_value(incorrect_msg="factorial ต้องคืนค่าแฟกตอเรียลเป็นผลลัพธ์")
func = Ex().check_function_def('is_digit', missing_msg="ไม่พบฟังก์ชัน is\_digit")
func.has_equal_part_len('args', 'ฟังก์ชันนี้รับพารามิเตอร์แค่ตัวเดียว')
for v in ['"A"', '"5"']:
func.check_call("is_digit("+v+")").has_equal_value(incorrect_msg="is\_digit ต้องคืนไม่จริงก็เท็จ")
func = Ex().check_function_def('guess_my_number', missing_msg="ไม่พบฟังก์ชัน guess\_my\_number")
func.has_equal_part_len('args', 'ฟังก์ชันนี้ไม่รับพารามิเตอร์ใด ๆ')
func.check_call("guess_my_number()").has_equal_value(incorrect_msg="guess\_my\_number ไม่ต้องคืนค่าใด ๆ")