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")

= 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.")

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”)

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 :smiley:

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”)

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

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

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

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”: "))

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

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

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

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.

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

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

à e nhầm :smile:e nhìn lộn mất :frowning:

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

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")
1 Like

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

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?