01/10/2018, 10:03

Python in error

Anh chị giúp em câu lệnh python này ah. em chạy hoài mà cứ báo lỗi.
Sẵn tiện cho em hỏi: em còn phân vân trong cách sử dụng dấu =, ==, is, in, giúp em phân biệt rõ hơn ko ah. em cứ nằm 4 operator này.

n = int(input('enter a positive integer "n"')
if n%2 and n%3:
    print ("Both")
elif n%2 or n%3:
    print ("One")
else: 
    print ("None")
Henry viết 12:12 ngày 01/10/2018

= là phép gán ví dụ

>>> so = 4 # gán biến so với giá trị là số 4
>>> chu = "Ngoc" # gán biến chu voi giá trị là chuỗi "Ngoc"

== là phép so sánh bằng hay không?

>>> 1 == 1
True # vì 1 thì bằng với 1
>>> 1 == 0
False # vì 1 sao bằng 0 được

is. Cái này thì mình không thấy nhiều, chỉ mới thấy ở trường hợp sau đây

>>> n = 1
>>> type(n)
<class 'int'> # vì n có giá trị là 1, 1 là số nguyên nên là 'int'
>>> type(n) is int
True # vì n là 'int'
>>> type(n) is str
False # vì n không phải là chuỗi ('str')

in thì mình hay thấy để kiểm tra một giá trị có nằm trong một chuỗi hay là list hay không

>>> 'go' in 'Ngoc'
True # vì 'go' nó nằm trong chữ 'Ngoc'
>>> 'ngoc' in 'Ngoc'
False # này thì không vì khác chữ 'n' với 'N'
>>> 1 in [1, 2, 3]
True
>>> 4 in [1, 2, 3]
False

Ứng dụng chữ in này để điều kiện if thì khá hay mà đa số các ngôn ngữ khác không có

>>> a = 1
>>> if a == 1 or b == 2: print("chính xác.")
...
>>> if a in (1, 2): print("chính xác.")
ngoc viết 12:12 ngày 01/10/2018

Mình sửa lại như zầy, vẫn báo lỗi chỗ dấu chấm (:). Bài của mình chủ yếu run TH tìm số chia hết cho 2 và 3 hoặc chia hết cho 2 hoặc 3

n = int(input(‘enter a positive integer “n”’)
if n%2 == 0 and n%3 == 0:
print (“Both”)
elif n%2==0 or n%3==0:
print (“One”)
else:
print (“None”)

Henry viết 12:15 ngày 01/10/2018
if bool:
    # thực hiện nếu bool là True
else:
    # thực hiện nếu bool là False

Nhưng code của bạn thì

n % 2 and n % 3

không trả về giá trị True hay False thế nên chỗ if đó Python nó không hiểu

ngoc viết 12:08 ngày 01/10/2018

Mình viết lại zầy như vẫn ko ổn:
n = int(input(‘enter a positive integer “n”’)
if n%2 == 0 and n%3 == 0:
print (“Both”)
elif n%2==0 or n%3==0:
print (“One”)
else:
print (“None”)

Henry viết 12:08 ngày 01/10/2018

không ổn chỗ nào. Mình thấy đúng mà

ngoc viết 12:14 ngày 01/10/2018

Báo lỗi invalid syntax chỗ 2 dấu chấm

Henry viết 12:14 ngày 01/10/2018

Bạn kiểm tra xem đã để code nó thẳng hàng ngay lối chưa. à mà print( cái ngoặc nó liền tới chữ t nhé

Tim Jonh viết 12:19 ngày 01/10/2018

n = int(input(‘enter a positive integer “n”’)

có phải ý của bạn muốn màn hình hiện như thế này đúng không:
enter a positive integer "n"
thế thì mình đề nghị sửa lại thành thế này:

n = int(raw_input("enter a positive “n”: "))

HK boy viết 12:17 ngày 01/10/2018

@nguyenchautuyetngoc: Format code lại bạn ơi. Thêm 3 dấu ` vào đầu và cuối code.

ngoc viết 12:10 ngày 01/10/2018

Thanks các bạn, cuối cùng mình đã chạy dc.

NG viết 12:17 ngày 01/10/2018

Python 3 hiểu chứ ! hàm if vui lắm test thử đi

không trả về giá trị True hay False thế nên chỗ if đó Python nó không hiểu

tất cả các dạng dữ liệu trong python đều là True hết trừ integer 0, và None

def test(val):
    if val:
        return 'True'
    else:
       return 'False'

print(test(None))
False
print(test(0))
False
print(test('0'))
True
print(test('qlkjhgqlkjh'))
True
print(test(2%2))
False
print(test(5%3))
True

Javascript còn lợi hại hơn
string 0 cũng là true.

Henry viết 12:18 ngày 01/10/2018

cái đó là do

bool(None) là True
bool(bất cứ thứ gì cũng là True) except: 0 và 0.00 còn '0' vẫn True
NG viết 12:17 ngày 01/10/2018

None là False chứ sao là True dc bạn

Henry viết 12:18 ngày 01/10/2018

à e nhầm e nhìn lộn mất

Henry viết 12:17 ngày 01/10/2018

mà cũng nhờ a nhắc e mới nhớ đúng là sáng e nói đó là sai thật

NG viết 12:17 ngày 01/10/2018

n = int(input(‘enter a positive integer “n”’)
if n%2 and n%3:
print (“Both”)
elif n%2 or n%3:
print (“One”)
else:
print (“None”)

Sửa lại chơi

n = int(input('enter a positive integer "n"')
if not (n%2 + n%3):
    print ("Both")
elif not (n%2) * (n%3):
    print ("One")
else: 
    print ("None")
Henry viết 12:06 ngày 01/10/2018

cái này giống như khai sáng vậy :D. E cám ơn!

Bài liên quan
0