IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> python案例十讲 -> 正文阅读

[数据结构与算法]python案例十讲

python例题十讲

李立宗

lilizong@gmail.com

2021年10月16日 版本V1.0

题目1:分组示例

有100个人参加体能测试,将所有人随机分成两组,并统计每组的人数。

分组思路

计算机随机生成100个值为1、2的随机数,分配个每个人。每个人根据编号到所在组报道。

知识点1:随机数

函数random:提供了进行随机选择的工具。

函数randint:生成指定范围内的随机数

语法:random.randint(a,b),生成在[a,b]之间的随机整数。

【例16.1.1】随机生成一个1到10之间的随机数。

# 例16.1.1.py
import random

x = random.randint(1, 10)
print(x)

输出结果:

一个1到10之间的随机数。

知识点2:结构(循环、分支)

循环结构:for-in循环结构

选择结构:if分支结构

主程序

# 例16.1.2.py
import random

x = [0, 0]
for i in range(100):
    a = random.randint(1, 2)
    if a == 1:
        x[0] = x[0] + 1
    else:
        x[1] = x[1] + 1
print("第1组人数:", x[0])
print("第2组人数:", x[1])

输出结果:

第1组人数: 54
第2组人数: 46

每次运行的输出不一样,因为分组是根据随机值划分的。

改进1

将生成的数按照大小进行分组。

# 例16.1.3.py
import random

x = [0, 0]
for i in range(100):
    a = random.randint(0, 100)
    if a > 50:
        x[0] = x[0] + 1
    else:
        x[1] = x[1] + 1
print("第1组人数:", x[0])
print("第2组人数:", x[1])

输出结果:

第1组人数: 52
第2组人数: 48

上述是某次运算结果,由于是随机,每次情况略有不同,但是两组值会大体相当。

改进2

将生成的数按照奇数、偶数, 进行分组。

# 例16.1.4.py
import random

x = [0, 0]
for i in range(100):
    a = random.randint(0, 100)
    if a % 2 == 0:
        x[0] = x[0] + 1
    else:
        x[1] = x[1] + 1
print("第1组人数:", x[0])
print("第2组人数:", x[1])

输出结果:

第1组人数: 47
第2组人数: 53

题目2:票价示例

某公园,票价策略为:60岁及以上老人半价50元、成年人100元、未成年人免费。

需要有归纳能力,进一步归纳如下:

* >= 60:半价
* [18,60):正常票价
* <18:免费

知识点1:输入

input:读取键盘的输入

int:键盘读取的内容是字符串,需要使用int将其转换为数值类型

【例16.2.1】输入一个数值,观察其在作为字符串与数值时的不同处理结果。

# 例16.2.1.py
x = input("请输入一个数值:")
print(x + "5")
print(int(x) + 5)

输出

请输入一个数值:10
105
15

知识点2:多分支结构

多分支:包含if…elif…else的分支结构

具体结构:

if 条件A:
    语句A
elif 条件B:
    语句B
else:
    语句C

条件B是在条件A不成立的情况下发生的。

例如,如下的语句"elif x>50"是在“if x>60"不成立的情况下发生的。

因此,“elif x>50"对应的值范围是“在50到60之间(不包含50,包含60)”,即(50,60]。

# 例16.2.2.py
import random

x = random.randint(0, 100)
print("x=", x)
if x > 60:
    print("x>60")
elif x > 50:
    print("x在50到60之间(不包含50,包含60)")
else:
    print("x<=50")

主程序

# 例16.2.3.py
x = int(input("请输入您的年龄:"))
print("您输入的年龄是:", x)
if x >= 60:
    price = 50
elif x >= 18:
    price = 100
else:
    price = 0
print("您支付的票价为:", price)

输出:

上述程序,在输入不同年龄时,会对应不同的输出结果。

题目3:身高与票价

某公园规定:随同成人入园身高1.2~1.5米的儿童,应当购买儿童票;超过1.5米时应买全价票。每一成人游客可免费携带一名身高不足1.2米的儿童。

简单来说:归纳如下:

* >1.5:全价票
* [1.2,1.5]:儿童票
* <1.2:免费

或者,归纳如下:

* <1.2:免费
* [1.2,1.5]:儿童票
* >1.5:全价票

知识点1:输入控制

input:读取键盘的输入

int:键盘读取的内容是字符串,需要使用int将其转换为数值类型【针对整数】

float:键盘读取的内容是字符串,需要使用float将其转换为数值类型【针对小数】

例16.3.1】输入一个数值,观察其在作为字符串与数值时的不同处理结果。

# 例16.3.1.py
x = input("请输入一个数值:")
print(x + "5")
# print(int(x) + 5)   #如果x是小数,会发生错误
print(float(x) + 5)

输出

请输入一个数值:1.2
1.25
6.2

知识点2:多分支结构

多分支结构:包含if…elif…else的分支结构

主程序:范例1

  • >1.5:全价票
  • [1.2,1.5]:儿童票
  • <1.2:免费
# 例16.3.2.py
h = float(input("请输入您的身高:"))
print("您输入的身高是:", h)
if h > 1.5:
    price = "全价票"
elif h >= 1.2:
    price = "半价票"
else:
    price = "免票"
print("您支付的票价为:", price)

输出:

上述程序,在输入不同身高时,会对应不同的输出结果。

主程序:范例2

  • <1.2:免费
  • [1.2,1.5]:儿童票
  • >1.5:全价票
# 例16.3.3.py
h = float(input("请输入您的身高:"))
print("您输入的身高是:", h)
if h < 1.2:
    price = "免票"
elif h <= 1.5:
    price = "半价票"
else:
    price = "全价票"
print("您支付的票价为:", price)

输出:

上述程序,在输入不同年龄时,会对应不同的输出结果。

题目4:猴子吃桃

猴子第1天摘下若干桃子,当即吃了一半,还不过瘾,就又多吃了一个。第2天早上,将剩下的桃子吃掉一半后,又多吃了一个。以后,每天早上都吃前一天剩下的一半加一个。到第10天早上想再吃时,发现只剩下一个桃子了。求第1天共摘了多少。

问题分析

已知第10天(day10),则第9天(day9),存在如下关系:
d a y 9 = ( d a y 10 + 1 ) ? 2 day_9=(day_{10}+1)*2 day9?=(day10?+1)?2
实际上,依次类推往前推,每一天都是后一天加上1后的2倍。具体为:
d a y N ? 1 = ( d a y N + 1 ) ? 2 day_{N-1}=(day_N+1)*2 dayN?1?=(dayN?+1)?2

也就是说,从第10天开始,依次往前推,每一天都是按照上述公式处理。

因此,可以使用循环【for i in range(9, 0, -1)】实现。

主程序

例16.4.1】根据逻辑关系计算桃子的数量。

定义变量:today、yesterday分别表示今天的桃子数量、昨天的桃子数量。

循环:从当前第10天开始,计算第9天的桃子数量。依次循环。

# 例16.4.1.py
today = 1
for i in range(9, 0, -1):
    yesterday = (today + 1) * 2
    today = yesterday
print('第1天共摘了%s个桃子' % yesterday)

例16.4.2】显示每天的桃子的数量。

使用print语句显示每天的桃子数量。

# 例16.4.2.py
today = 1
print('第10天吃之前:有1个桃子')
for i in range(9, 0, -1):
    yesterday = (today + 1) * 2
    today = yesterday
    print('第', i, '天吃之前', '有', yesterday, '个桃子')
print('第1天共摘了%s个桃子' % yesterday)

当然,我们平时看到的程序,可能变量的定义比较随意。例如,可能为:

# 构造变量x2/x1
x2 = 1
print('第10天吃之前:有1个桃子')
for i in range(9, 0, -1):
    x1 = (x2 + 1) * 2
    x2 = x1
    print('第', i, '天吃之前', '有', x1, '个桃子')
print('第1天共摘了%s个桃子' % x1)

改进1:使用一个变量。

不需要构造两个变量,仅仅使用一个变量更替实现即可。

具体为:

peach = (peach + 1) * 2

程序如下:

# 例16.4.3.py
peach = 1
print('第10天吃之前:1个桃子')
for i in range(9, 0, -1):
    peach = (peach + 1) * 2
    print('第', i, '天吃之前', '有', peach, '个桃子')
print('第1天共摘了%s个桃子' % peach)

改进2:输出控制

使用%控制输出

%d:格式化输出一个整数;

%f:格式化输出浮点数;

%s:格式化输出字符串;

a = 666
print("数值%d表示非常有趣?" % a)

输出结果为:

数值666表示非常有趣?

更具体来说:

%4d:其中的4表示占位长度,占4位,不足在前面补空格;超过4位,全部显示。

%4.2f:数值4表示总长度、2表示2个小数位;

%8s:输出8位字符,不足时前面补空格、超过8位,全部显示;

# 例16.4.4.py
peach = 1
print('第10天吃之前:1个桃子')
for i in range(9, 0, -1):
    peach = (peach + 1) * 2
    print('第%2d天吃之前:有%4d个桃子' % (i, peach))
print('第1天共摘了%s个桃子' % peach)

输出结果:

10天吃之前:1个桃子
第 9天吃之前:有   4个桃子
第 8天吃之前:有  10个桃子
第 7天吃之前:有  22个桃子
第 6天吃之前:有  46个桃子
第 5天吃之前:有  94个桃子
第 4天吃之前:有 190个桃子
第 3天吃之前:有 382个桃子
第 2天吃之前:有 766个桃子
第 1天吃之前:有1534个桃子
第1天共摘了1534个桃子

可以看到输出中对输出的数据宽度进行了控制。

题目5:用户登录

某考试系统,用户名为“李立宗”,密码为“13602153866”。在用户输入正确的用户名和密码后,显示登陆成功;否则,显示“登录显示”。用户有三次试错机会。

知识点1:循环

用户具有三次机会,依靠循环实现。

for i in range(3)

这是典型的循环结构,通过控制range(N)中值N来控制循环的次数。

# 例16.5.1.py
for i in range(3):
    print("你好")

输出结果为:

你好
你好
你好
你好
你好

知识点2: break

关键字break,用于退出循环。

通常情况下,在某个特定条件下,退出循环。

# 例16.5.2.py
for i in range(3):
    if i == 2:
        break
    print(i)

输出结果为:

0
1

当用户输入正确的用户名和密码后,不再需要循环了,要退出循环。

知识点3:与或关系

与关系:and。两个条件同时成立,结果为真。类似于串联电路。

或关系:or。两个条件,有一个成立,结果为真。类似于并联电路。

与或关系具体示意图如下:
在这里插入图片描述

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ckndP48d-1634395880549)(…/typora/image-20211016113042200.png)]

例16.5.3】当用户名和密码都正确时、输出“登陆成功”;否则,输出“用户名或密码错误”。

# 例16.5.3.py
name = input("请输入用户名:")
password = input("请输入密码:")
if name == "lilizong" and password == "13602153866":
    print("登陆成功")
else:
    print("用户名或密码错误")

例16.5.4】当年龄大于60岁,或者小于18岁,免门票;否则,购买全价票。

# 例16.5.4.py
age = int(input("请输入年龄:"))
if age > 60 or age < 18:
    print("免门票")
else:
    print("请购买全价票")

主程序

主程序如下:

# 例16.5.5.py
for i in range(3):
    name = input("请输入用户名:")
    password = input("请输入密码:")
    if name == "lilizong" and password == "13602153866":
        print("登陆成功")
        break
    else:
        print("用户名或密码错误")

题目6:九九乘法表

输入如下所示的九九乘法表。

1*1= 1 
2*1= 2 2*2= 4 
3*1= 3 3*2= 6 3*3= 9 
4*1= 4 4*2= 8 4*3=12 4*4=16 
5*1= 5 5*2=10 5*3=15 5*4=20 5*5=25 
6*1= 6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 
7*1= 7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 
8*1= 8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 
9*1= 9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81 

知识点1:输出数据控制在同一行

将循环数据输出在同一行,采用【end=” “】控制每次输出不要换行,而是在输出结果加上空格。

# 例16.6.1.py
for i in range(1, 10):
    print(i, end=" ")
print()

程序输出如下:

1 2 3 4 5 6 7 8 9

需要注意,最后的【print()】表示在输出完所有的数值后,加一个换行。

知识点2:嵌套循环

嵌套循环是在循环里面嵌入循环。将内层循环看成一个独立的整体,更利于理解嵌套循环。

例如,将下面的【例16.6.1.py】内的代码看为一个整体,则可以将【在同一行输出1到9】作为一个整体。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rjxr60uw-1634395880553)(../typora/image-20211016132818798.png)]

将上述代码,用在一个循环体内,可以将上述代码执行指定的次数。

# 例16.6.2.py
for j in range(1, 10):
    for i in range(1, 10):
        print(i, end=" ")
    print()

程序输出如下:

1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9

从上述程序可以看到,还需要做两点改进:

**改进1:**将每一行乘以行号:第1行乘以1,第2行乘以2,以此类推。实际上每一行乘以j的值;

**改进2:**控制每一行输出的数值个数,第1行输出1个数值,第2行输出2个数值,以此类推。实际上,每行输出的个数是j个值。

知识点3:嵌套循环内运算

**改进1:**将每一行乘以行号:第1行乘以1,第2行乘以2,以此类推。实际上每一行乘以j的值;

# 例16.6.3.py
for j in range(1, 10):
    for i in range(1, 10):
        print(i * j, end=" ")
    print()

程序输出如下:

1 2 3 4 5 6 7 8 9
2 4 6 8 10 12 14 16 18
3 6 9 12 15 18 21 24 27
4 8 12 16 20 24 28 32 36
5 10 15 20 25 30 35 40 45
6 12 18 24 30 36 42 48 54
7 14 21 28 35 42 49 56 63
8 16 24 32 40 48 56 64 72
9 18 27 36 45 54 63 72 81

知识点4:嵌套循环次数控制

**改进2:**控制每一行输出的数值个数,第1行输出1个数值,第2行输出2个数值,以此类推。实际上,每行输出的个数是j个值。

# 例16.6.4.py
for j in range(1, 10):
    for i in range(1, j+1):
        print(i * j, end=" ")
    print()

程序输出如下:

1
2 4
3 6 9
4 8 12 16
5 10 15 20 25
6 12 18 24 30 36
7 14 21 28 35 42 49
8 16 24 32 40 48 56 64
9 18 27 36 45 54 63 72 81

主程序

将乘数加上,结果如下:

# 例16.6.5.py
for i in range(1, 10):
    for j in range(1, i + 1):
        print(i, '*', j, '=', i * j, end=" ")
    print()

输出结果如下:

1 * 1 = 1
2 * 1 = 2 2 * 2 = 4
3 * 1 = 3 3 * 2 = 6 3 * 3 = 9
4 * 1 = 4 4 * 2 = 8 4 * 3 = 12 4 * 4 = 16
5 * 1 = 5 5 * 2 = 10 5 * 3 = 15 5 * 4 = 20 5 * 5 = 25
6 * 1 = 6 6 * 2 = 12 6 * 3 = 18 6 * 4 = 24 6 * 5 = 30 6 * 6 = 36
7 * 1 = 7 7 * 2 = 14 7 * 3 = 21 7 * 4 = 28 7 * 5 = 35 7 * 6 = 42 7 * 7 = 49
8 * 1 = 8 8 * 2 = 16 8 * 3 = 24 8 * 4 = 32 8 * 5 = 40 8 * 6 = 48 8 * 7 = 56 8 * 8 = 64
9 * 1 = 9 9 * 2 = 18 9 * 3 = 27 9 * 4 = 36 9 * 5 = 45 9 * 6 = 54 9 * 7 = 63 9 * 8 = 72 9 * 9 = 81

改进:格式控制

通过格式控制符控制输出的格式:

# 例16.6.6.py
for i in range(1, 10):
    for j in range(1, i + 1):
        print("%d*%d=%-2d" % (i, j, i * j), end=" ")
    print()

输出结果如下:

1*1=1  
2*1=2  2*2=4  
3*1=3  3*2=6  3*3=9  
4*1=4  4*2=8  4*3=12 4*4=16 
5*1=5  5*2=10 5*3=15 5*4=20 5*5=25 
6*1=6  6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 
7*1=7  7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 
8*1=8  8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 
9*1=9  9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81 

题目7:平均身高

编写一个程序,能够测量本组同学的平均身高。

知识点1:循环控制

要点1:控制次数。通过读取一个数据n,将n作为控制循环的次数。

要点2:显示当前的次数。实现起来包含两点:

要点2.1:使用str(i+1),将数值转换为字符串,方便后续运算。数值无法与字符串直接运算。

要点2.2:使用加号“+”完成字符串的连接。例如:【“第”+str(i+1)+“次读取数据”】

# 例16.7.1.py
s = 0
n = int(input("本组同学个数:\n"))
for i in range(n):
    print("第"+str(i+1)+"次读取数据")

输出结果如下:

本组同学个数:
3
第1次读取数据
第2次读取数据
第3次读取数据

知识点2:求和

想象有三堆豆子,第1堆有1个,第2堆有2个,第3堆有3个。

拿一个空盒子,分别把豆子装进盒子里。
在这里插入图片描述

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-U9zvjxNB-1634395880555)(…/typora/image-20211016140726080.png)]

步骤1:在第1堆豆子旁,把第1堆里面的一粒豆子,放进盒子。

盒子(新值) = 盒子(原有值) + 1

在这里插入图片描述

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zGYe75Cl-1634395880557)(…/typora/image-20211016140747332.png)]

步骤2:在第2堆豆子旁,把第2堆里面的2粒豆子,放进盒子。

盒子(新值) = 盒子(原有值) + 2
在这里插入图片描述

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zcra0bUy-1634395880559)(…/typora/image-20211016140759031.png)]

步骤3:在第3堆豆子旁,把第3堆里面的3粒豆子,放进盒子。

盒子(新值) = 盒子(原有值) + 3
在这里插入图片描述

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vlzOZlZD-1634395880560)(…/typora/image-20211016140814211.png)]

【例16.7.2】设计一个程序,计算1到数值N的和。

# 例16.7.2.py
# 计算1到N的和。
s = 0
n = int(input("要加到几:\n"))
for i in range(n+1):
    s += i
print("和为:", s)

程序输出如下:

要加到几:
5
和为: 15

【例16.7.3】设计一个程序,计算指定个数的输入数值的和。

# 例16.7.3.py
# 计算指定个数的数值和。
s = 0
n = int(input("要计算几个数:\n"))
for i in range(n):
    a = float(input('请输入一个数值:'))
    s += a
print("和为:", s)

程序输出如下:

要计算几个数:
3
请输入一个数值:6
请输入一个数值:9
请输入一个数值:8
和为: 23.0

主程序

# 例16.7.4.py
s = 0
n = int(input("本组同学个数:\n"))
for i in range(n):
    h = float(input('请输入身高值:'))
    s += h
average = s / n
print("本组同学的平均身高值为:%.2f" % average)

程序输出如下:

本组同学个数:
3
请输入身高值:1.81
请输入身高值:1.65
请输入身高值:1.72
本组同学的平均身高值为:1.73

改进:增加说明

增加输入提示说明

# 例16.7.5.py
s = 0
n = int(input("本组同学个数:\n"))
for i in range(n):
    h = float(input('请输入第' + str(i+1) + '个同学的身高:'))
    s += h
average = s / n
print("本组同学的平均身高值为:%.2f" % average)

程序输出结果如下:

本组同学个数:
3
请输入第1个同学的身高:1.81
请输入第2个同学的身高:1.62
请输入第3个同学的身高:1.78
本组同学的平均身高值为:1.74

题目8:猜数字游戏

设计一个猜数字游戏。计算机随机生成一个数字,用户猜测该数字值。计算机针对用户的猜测结果报告“比这个数值小”,或者“比这个数值大”;直到用户猜对了,提示“完全正确”。

# 例16.8.py
import random

guess = 0
result = random.randint(0, 100)
time = 0
while guess != result:
    time += 1
    guess = int(input('请输入您的猜测值(0-100之间的整数):'))
    if guess > result:
        print('您的猜测比答案大')
    elif guess < result:
        print('您的猜测比答案小')
    else:
        print('预测' + str(time) + '次,你猜中了!')
        break

题目9:数值各位和

随机生成一个三位数,计算其各个位上数值的和。

例如,数值168其各位和为“1+6+8=15”。

计算个位:使用求余数“%”,计算得到。例如,168%10=8

计算十位:使用求整除“//”和求余数“%”,计算得到。例如,首先计算“168//10=16”,接下来计算“16%10=6”。

计算百位:使用整除“//”,计算得到。例如,168//100=1

主程序

# 例16.9.1.py
import random

x = random.randint(100, 999)  # randint(a,b)生成的数值包含a也包含b
gewei = x % 10
shiwei = x // 10 % 10
baiwei = x // 100
sum = gewei + shiwei + baiwei
print("随机数为:%d,其各个位上和为:%d" % (x, sum))

输出结果:

随机数为:339,其各个位上和为:15

拓展:不同方式计算十位值

计算十位,有两种不同的方式:

方式1:先取到前两位,再取最低位。例如,【168//10=16,16%10=6】。

方式2:先取到后两位,再取最高位。例如,【168%100=68,68//10=6】。

# 例16.9.2.py
import random

x = random.randint(100, 999)  # randint(a,b)生成的数值包含a也包含b
x1 = x // 10 % 10
x2 = x % 100 // 10
print("随机数为:", x)
print("使用方式1,其十位值为:", x1)
print("使用方式2,其十位值为:", x2)

题目10:半径和直径互换

设计一个程序, 当输入一个半径值时,输出对应的直径值;当输入一个直径值时,输出对应的半径值。

知识点1:eval函数

eval函数将字符转换为数值类型。

# 例16.10.1.py
x = input('请输入长度值:')
y = eval(x)
print(x + "5.3")
print(y + 5)

输出结果如下:

请输入长度值:1.1
1.15.3
6.1

知识点2:成员运算符

关键字in:

in:某个元素在集合内。例如:

# 例16.10.2.py
print("张三" in ["张三", "李四", "王五"])   #结果为:True
print("赵六" in ["张三", "李四", "王五"])   #结果为:False

关键字not in:

not in:某个元素不在集合内。例如:

# 例16.10.2.py
print("张三" not in ["张三", "李四", "王五"])  # 结果为False
print("赵六" not in ["张三", "李四", "王五"])  # 结果为True

主程序

# 例16.10.2.py
value = eval(input('请输入长度值:'))
x = input('请输入值的含义(r或d):')
if x in ['r', 'R', '半径']:
    d = value * 2
    print('该半径所对应的直径值为:', d)
elif x in ['d', 'D', '直径']:
    r = value / 2
    print('该直径所对应的半径值为:', r)
else:
    print('输入错误!')

输入直径值时,输出结果如下:

请输入长度值:10.2
请输入值的含义(r或d):d
该直径所对应的半径值为: 5.1

输入半径值时,输出结果如下:

请输入长度值:2.5
请输入值的含义(r或d):r
该半径所对应的直径值为: 5.0

说明

本版本为 1.0,完成于2021年10月6日。

联系我们:lilizong@gmail.com

如诸君认为本书对您略有帮助,不妨扫码请笔者喝杯咖啡 .

在这里插入图片描述

严正声明:本书可免费用于学习和研究目的,可自由传播,但切勿擅自用 于商业用途或私自引用,笔者保留著作权相关权利。

关注公众号【计算机视觉之光】,微信号【cvlight】,扫描关注获取源代码等更多资料。
在公众号内回复关键字【python案例十讲】获取源代码及PDF文件。

在这里插入图片描述

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-10-17 12:14:11  更:2021-10-17 12:15:18 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 7:49:01-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码