python 第三章 程序控制结构

本文详细介绍了Python的程序控制结构,包括条件表达式、选择结构(如if-else)、循环结构(while、for及循环嵌套)以及random库的应用。通过实例代码展示了如何判断回文数、使用三元运算符、计算循环和随机数相关的概率问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

3.1 条件表达式

3.1.1 关系运算符 

3.1.2 逻辑运算符

3.1.3 条件表达式

3.2 选择结构

3.2.1 单分支选择结构

python 的语言还是好玩的,打了一个看看。

它的赋值和一些函数还是很方便的,虽然用造轮子这样非常有成就感,而且小一点的代码或者更加创新的东西大概都是从c语言来的吧,但是当函数越来越多,每一个都要你亲历亲为的时候,你是否会感疲惫呢。(以上纯属个人观点,且我的能力不高)

3.2.2 双分支选择结构

判断回文数,判断回文词(又遇到了)

用python就很简单了,下面看一下代码:

python还有一个三元运算符,有惰性求值的特点:

代码如下:

 

3.2.3 多分支选择结构

elif 是 else if 的缩写

3.2.4 pass语句

pass语句是空语句,保持程序结构的完整性,一般用作占位句

在实际的开发中,我们有时会先搭建程序的整体逻辑结构,但是暂不实现某些细节。

emmm,这个我倒是第一次见,给个代码看看:

 

3.3 循环结构

3.3.1 可迭代对象

迭代器和生成器是可迭代对象,python语言提供了定义迭代器和生成器的协议及方法。

3.3.2 range对象

range(开始,结束[,步长]) 和matlab的用法类似 

 3.3.3 while语句

3.3.4 for 语句

给个代码吧,要不感觉太水了,计算1到100内的奇数和与所有的偶数和

有一个比较有意思的题目:

编写程序,计算s = a + aa + aaa + aaaa ,输入为n,a,输出为和。

代码如下:(后一项是前一项*10+a,这个看出来就好写很多了)

a = int(input("shu ru a"))
n = int(input("shu ru n"))
item = 0
sum = 0
for i in range( 1, n+1):
    item = item * 10 + a
    sum += item
print("duo xiang shi de he wei {}",format(sum))

 3.3.5 continue语句 和 break语句(这两个不难)

3.3.6 循环嵌套

又到了熟悉的九九乘法表了,哈哈哈哈

3.4 random 库的基本运用

random库提供了一些与随机数有关的功能

注释我懒得打了,如果用到搜就好了,有个影响就行。

seed种子的意思,如果种子确定了,那么它的随机数就会是一样的。因为这个随机数不是真的随机数,其实是一种稳定算法得出的稳定结果序列。

若不设置seed,系统会根据时间自行选择seed,此时生成的随机数会因为时间的差异而不同。

设置seed仅一次有效。

下面看一道题目,两枚骰子,和为7的概率。

代码如下:

 

 运行三次结果如下:

所以概率比较小,这是不公平的,其实这很容易看出来。

3.5 经典程序分析 

1、成绩与等级配对,题目略,代码如下:

score = eval(input("shu ru cheng ji "))
if (0 <= score <= 100):
    if (score >= 90):
        print("A")
    elif (score >= 80):
        print("B")
    elif (score >= 70):
        print("C")
    else:
        print("ji xu nu li")
else:
    print("nin shu ru de bu he yao qiu")

ctrl+c 可以用来终止正在执行的程序。

2、用迭代规则来计算正整数x的算术平方根。

(中间有几个易犯错的点在这里就不一一描写了,中间犯错误的过程可能是由于计算机的精度导致的直接等于是不行的,你需要判断小于多少的时候可以执行。)

import math
x = float(input("shu ru zheng zhen shu "))
n = 0
y = 1.0
while abs(y * y - x) > 1e-8:
    y = (y + x / y) / 2
    n = n + 1
    print("n  , y",n,y)
print("suan shu ping fang gen wei ",y)

3、计算S = 1 + 1/3 - 1/5 + 1/7 - 1/9的前n项和

多了一个flag来表明符号

n = int(input("qin shu ru : "))
s = 1
f = 1
for i in range(2,n+1):
    s = s + (1/(2*i-1))*f
    f = -f
print("s = {}".format(s))

 4、产生两个随机数,利用辗转相除法计算两个数的最大公约数和最小公倍数

from random import*
a = randint(1,100)
b = randint(1,100)
x,y = a,b
r = a % b
while r != 0:
    x = y
    y = r
    r = x % y
print("sui ji shu wei {} he {}".format(a,b))
print("zui da gong yue shu {}".format(y))
print("zui da gong bei shu {}".format(int(a*b/y)))

完结撒花!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值