【Python】逻辑语句

使用缩进来表示块作用域的开始和结束,对缩进有严格要求

冒号":" 标记新的逻辑层

判断语句

if 语句

if

a = 5
if a > 0:
    print('+')

if...else...

a = 5
if a > 0:
    print('+')
else:
    print('-')

if...elif...elif

a = 5
if a > 0:
    print('+')
elif a < 0:
    print('-')
elif a == 0:
    print('0')

if...elif...elif...else...

a = 5
if a > 0:
    print('+')
elif a < 0:
    print('-')
else:
    print('0')

按条件赋值可以写在一行

a = 5
if a > 0:
    a = a + 1
else:
    a = a - 1

a = a + 1 if a > 0 else a - 1

例子:
a = int(input())
if a > 0:
    print('+')
elif a == 0:
    print('0')
elif a < 0:
    print('-')

判断奇数/偶数

a = int(input())
if a % 2 == 1:
    print(1)
else:
    print(0)
print(int(input()) % 2)

判断闰年

# 四年一闰且百年不闰,或者四百年一闰
y = int(input())
if y % 4 == 0 and y % 100 != 0 or y % 400 == 0:
    print(1)
else:
    print(0)

循环语句

for语句

for...in

不是对算术递增的数值进行迭代,而是对任意序列进行迭代

for item in (0, 1, 2, 3, 4, 5, 6, 7, 8, 9):
    print(item)

for item in (4, 1, 2, 9, 4, 0, 6, 7, 8, 3):
    print(item)

for item in range(0, 10):  # [0, 10)
    print(item)

for item in range(1, 11):  # [1, 11)
    print(item)

for item in range(1, 11, 2):  # 1 3 5 7 9
    print(item)

while语句
例子:

打印1~10

n = 0
while n < 10:
    n += 1
    print(n,end='\n')

打印奇数

n = 0
while n < 10:
    n += 1
    if n % 2 == 1:
        print(n)

continue提前结束本次循环,直接开始下一次循环

n = 0
while n < 10:
    n += 1
    if n % 2 == 0:
        continue
    print(n)

break提前退出循环

打印第一个奇数

n = 0
while n < 10:
    n += 1
    if n % 2 == 1:
        print(n)
        break

打印100以内的奇数

n = -1
while n < 99:
    n += 2
    print(n)
for item in range(1,100,2):
    print(item)

输入一个n,求1到n的累加和

n = int(input())
s = 0
for x in range(1, n + 1):
    s += x
print(s)
print(sum(range(1, int(input()) + 1)))

判断素数

n = int(input())
for x in range(2, n):
    if n % x == 0:
        print(0)
        break
else:
    print(1)

输入一个n,打印n行n列

#-*- coding:utf-8 -*-
n = int(input())
for i in range(1, n*n + 1):
    print(i, end='\t')
    if i % n == 0:  # 判断循环是n倍数的时候
        print()

n = int(input())
for i in range(1, n + 1):
    for j in range(i):
        print(end='*')
    print()
n = int(input())
for i in range(1, n + 1):
    print("*" * i)

n = int(input())
for i in range(1, n + 1):
    print(" " * (n - i) + "*" * i)

n = int(input())
for i in range(1, n + 1):
    print(str(i) * i)

 

求s=1+(1+2)+(1+2+3)+…+(1+2+3+…+n)的值

#-*- coding:utf-8 -*-
n = int(input())
s = 0
for item in range(n + 1):  # 从0到n
    s += sum(range(item + 1))
print(s)

输出一个数的二进制有多少个 1

#-*- coding:utf-8 -*-
n = int(input())
count = 0
# python中可以超过32位,通过这个操作把负数限制在32位(不然1的个数无限)
if n < 0:
    n = n & 0xffffffff
while n:
    n = n & (n - 1)
    count += 1
print(count)
print(bin(int(input()) & 0xffffffff).count('1'))
  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值