python 学习02:分支与循环

python的分支与循环

分支结构

选择结构

if 语句的使用

if 条件语句:
    print()
elif 条件语句:
    print(else:
    print()

举例

username = input('输入用户名:')
password = input('输入密码:')
if username == 'a' and password == '1234':
    print('登录成功')
else:
    print('登录失败')
print('结束')

分段函数求值

y = { 3 x − 5 , n  >1 x + 2 , -1≤ n  <1 5 x + 3 , n  <-1 y = \begin{cases} 3x - 5, & \text{$n$ >1} \\ x + 2,& \text{-1≤$n$ <1} \\ 5 x + 3,& \text{$n$ <-1} \\ \end{cases} y=3x5,x+2,5x+3,n >1-1≤n <1n <-1
用 if…elif…else来分段求值

x = float(input('x = '))
if x > 1:
    y = 3 * x - 5
elif x >= -1:
    y = x + 2
else:
    y = 5 * x + 3
print(f'f(x) = {y}')

循环结构

for-in 循环

如果明确的知道循环执行的次数,推荐使用for-in循环
举例子:实现1-100求和

x = 0
for i in range(1,101):
    x += i
print(x)

range(1,101)是实现的1~100范围的整数,不能取到101.range用法很灵活如下:

  • range(100) :产生0~99范围的整数,不能取到100.
  • range(1,101:产生1~100范围的整数,不能取到101.
  • range(1,100,2):产生1~99范围的奇数,2为步长,即为每次数值增加的数
  • range(100,1,-1):产生99~1范围的数,-1为步长,即为每次数值递减的值

举例:
输入非负整数,计算N!

x = int(input('输入一个非负整数:'))
total = 1
for i in range(x, 1, -1):
   total *= i
print(total)
while循环

如果要构造不知道具体循环次数的循环结构,推荐使用while循环.while循环通过一个能够产生或转换出bool值的表达式来控制循环,表达式的值为True则继续循环;表达式的值为False则结束循环
举例子:猜数游戏

import random
x = random.randint(1,100)#随机产生一个1~100的数
count = 0
while True:
    count += 1
    y = int(input('输入你的值:'))
    if y < x:
        print('猜的数小了')
    elif y > x:
        print('猜的数大了')
    else:
        print('猜对了')
        break
print(f'你猜了{count}次')

上面的代码中使用while True构造了一个条件恒成立的循环,也就意味着如果不做特殊处理,循环是不会结束的.为了在用户猜中数字时能够退出循环结构,我们使用了break关键字,它的作用是提前结束循环.break只能终止它所在的那个循环

举例子:找两个数的最大公约数

x = int(input('输入一个数:'))
y = int(input('再输入一个数:'))
if x > y:
    x, y = y, x
while y % x != 0:
    y, x = x, y % x
print(x)

例子

找出100-999中的水仙花数

例子:153=1^3 + 5 ^3 + 3 ^3

for i in range(100, 1000):
    a = i // 100
    b = i // 10 % 10
    c = i % 10
    if a ** 3 + b ** 3 + c ** 3 == i:
        print(i)
输入两个正整数m和n(m>=n),计算C(m,n)的值

例子:m!/(n!*(m-n)!))

m = int(input('输入m的值:'))
n = int(input('输入n的值:'))
a = 1
b = 1
c = 1

for i in range(m, 1, -1):
    a *= i
for i in range(n, 1, -1):
    b *= i
for i in range(m - n, 1, -1):
    c *= i
print(f'C(m,n)的值为:{a / (b * c)}')
输入一个正整数,判断它是不是质数
x = int(input('输入一个正整数:'))
a = 0
for i in range(2,x):
    if x % i == 0:
        a = 1
        break
if a == 0 and x > 1:
    print('{:d} 是质数'.format(x))
else:
    print('{:d} 不是质数'.format(x))
输出1-100之间的质数
for i in range(2, 100):
    a = 0
    for k in range(2, i):
        if i % k == 0:
            a = 1
            break
    if a == 0:
        print(i, end=' ')
输入一个n,打印出如下形式

例子:输入3 打印出:
1
2 2
3 3 3

n = int(input('输入一个数:'))
for i in range(1, n + 1):
    for k in range(1, i + 1):
        print(i, end=' ')
    print()
输出乘法表
for i in range(1, 10):
    for k in range(1, i + 1):
        print(f'{i}×{k}={k * i}', end='\t')
    print()
找出1-10000之间的完美数(除自身之外所有因子的和等于这个数)

例子:6=1+2+3

for i in range(2, 10001):
    t = 1
    for k in range(2, int(i ** 0.5) + 1):#i开方的整数加1,可以减少代码的循环次数
        if i % k == 0:
            t += k
            if k != i // k:#使出现两个相同的数,只加一次
                t += i // k
    if t == i:
        print(i)
输入三角形三条边,如果能构成计算周长面积,如果不构成,提示重新输入,直到构成
while True:
    a = float(input('a='))
    b = float(input('b='))
    c = float(input('c='))
    if a + b > c and a + c > b and b + c > a:
        p = a + b + c
        q = 0.5 * p
        s = (q * (q - a) * (q - b) * (q - c)) ** 0.5
        print(f'三角形周长为:{p}')
        print(f'三角形面积为:{s:.2f}')
        break
    else:
        print('不能构成三角形,请重新输入!')
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值