【python程序实例】日常练习

顺序结构程序设计
1.通过键盘输入圆的半径,计算圆的周长和面积:

# 顺序结构程序.py
r = float(input("请输入圆的半径值:"))
pi = 3.14
peri = 2 * pi * r 
area = pi * r * r
print("周长=", peri)
print("面积=", area)

分支结构程序设计
1.if语句
if语句中的“表达式”可以是关系表达式、逻辑表达式,甚至是数值表达式。其中最直观、最容易理解的是关系表达式。所谓关系表达式就是两个数值进行比较的式子。

if语句的语法结构为:
**if 表达式:
     语句块**

2.if-else语句
if-else语句可以与if语句组合。 else语句在if语句中的条件表达式求值为0或FALSE值时,则执行else语句中的语句块。

  if-else语句的语法结构为:
      **if 表达式:
       语句块
       else表达式:
       语句块**

1.for循环语句
for循环执行末尾循环体后将再次进行条件判断,若条件还成立,则继续重复上述循环,当条件不成立时则跳出当下for循环。

 for循环语句的语法结构为:
       **for 循环变量 in 遍历结构:
             语句块**

1.编写程序实现1-100的累加。

# 循环结构程序设计.py
sum1 = 0
for i in range(1, 101):
    sum1 += 1
print("sum1=", sum1)

2.while循环语句
当满足条件时进入循环,进入循环后,当条件不满足时,跳出循环。
2.编写一个程序从1开始累加直至大于100为止,并统计累加次数。.

while循环语句的语法格式为:
   while表达式:
      语句块
# 循环结构程序设计.py
sum1 = 0
i = 1
while sum1 <= 100:
    sum1 += i
    i += 1
print("sum1=", sum1)
print("累加次数为:", i - 1)

3.break语句
break语句,是中断当前循环,或和label一起使用,中断相关联的语句。

break语句的语法格式为:
    break

4.continue语句
continue语句只结束本次循环,而不终止整个循环的执行

continue语句的语法格式为:
 continue

3.从键盘输入一个正整数,判断是否是素数。

# 循环结构程序设计.py
n = int(input("请输入一个正整数:"))
b = True
for i in range(2, n // 2 + 1):
    if n % i == 0:
        b = False
        break
if b == True:
    print(n, "是素数!")
else:
    print(n, "不是素数!")

【例1】:从键盘输入一个字符串,把字符串中的数字字符分离出来并组成一个整数,再乘以数字字符的个数后输出。
问题分析:该程序的关键点是从字符串中截取出各位数字字符并组成一个整数,需要用到字符串的比较和类型转换等操作。

# 日常练习1.py
str1 = input("请输入字符串:")
cnt = 0
str2 = ""
for ch in str1:
    if "0" <= ch <= "9":
        str2 += ch
        cnt += 1
    num = int(str2) * cnt
    print(num)
    说明:python中有3个逻辑运算符可用,包括逻辑运算符
与(and)、逻辑或(or)和逻辑非(not),逻辑运算的结果
是一个逻辑值:Ture或False。

程序运行结果:在这里插入图片描述
【例2】:判断一个整数是否为回文数。所谓回文数是指一个数的正序和逆序值相等,如123321、34643等。
问题分析:要分析判断的数没有固定的位数,所以只能是逐一分解出个位、十位、百位、······,根据具体数的不同,可能只分解出一位,也可能分解出若干位。

# 日常练习2.py
while True:
    yn = input("是否继续使用程序:(y/n)\n")
    if yn == 'y':
        print("欢迎使用!")
        n = int(input("n="))      #把键盘输入转换为数值赋给变量n
        m = n                     #将n的值赋给变量m
        s = 0                     #初赋值为0,准备用于存放n的逆序值
        while m != 0:             #从m中逐一分解出个位、十位、百位、······
            k = m % 10            #循环处理:第一次得到个位置,第二次得到百位值,·····
            s = s * 10 + k        #计算n的逆序值
            m = m // 10           #为分界下一位数做准备
        if s == n:                #如果n的逆序值等于n的值
            print(n, "是回文数!")
        else:
            print(n, "不是回文数!")
    elif yn == 'n':
        print("感谢使用!")
        break
    else:
        print("输入错误!")

程序运行结果:
在这里插入图片描述

还可以使用对字符串的切片操作完成回文数的判断。

# 日常练习3.py
num = input("num=")
if num == num[::-1]:
    print(num, "是回文数!")
else:
    print(num, "不是回文数!")

【例3】:画若干个套在一起的正方形。
问题分析:画正方形图需要用到python的标准库turtle,turtle库的主要作用是绘制图形,turtle库提供了多个用于绘图的画笔控制函数和图形绘制函数。

# 日常练习3.py
import turtle   # 引入turtle库


def draw(x, y, fd):  # 定义一个绘制正方形的的函数
    turtle.goto(x, y)  # 确定画笔的初始位置
    turtle.pendown()  # 落下画笔
    for i in range(4):  # 通过循环画出4条边
        turtle.forward(fd)  # 画笔向前移动fd个像素和位置
        turtle.right(90)  # 画笔右转90度
    turtle.penup()  # 抬起画笔

turtle.setup(500, 350, 325, 175)  # 设置绘图窗口的大小和位置
turtle.pencolor("red")  # 设置画笔颜色为红色
turtle.pensize(1)  # 设置画笔尺寸
square_x = -2  # 第一个正方形开始位置的x坐标值
square_y = 2  # 第一个正方形开始位置的y坐标值
length = 5  # 第一个正方形的边长(像素值)
for k in range(18):  # 共画18个正方形
    draw(square_x, square_y, length)  # 画出一个正方形
    square_x -= 5  # 画下一个正方形前,x坐标值减5
    square_y += 5  # y坐标值加5
    length += 10  # 边长加10

程序运行结果:在这里插入图片描述
【例4】:通过键盘存入一批数据到数组,并统计这一批数据中奇数的个数。
问题分析;把一批数据存入一个列表变量,通过逐一访问列表中的值,统计出奇数的个数。

# 日常练习4.py
arr = input("请输入五个数:")           #输入一个一维数组,每个数之间使空格隔开
num = [int(n) for n in arr.split()]  #将输入每个数以空格键隔开做成数组
print(num)                           #打印数组
a = 0                                #计数器清零
for i in range(0, 5):                #统计奇数的个数
    if num[i] % 2 == 1:
        a += 1
print(a)                            #输出结果

运行结果:
在这里插入图片描述

【例5】:输出杨辉三角前n行的数据,n的值由用户定。
问题分析:每个数等于它上方两数之和,每行数字左右对称,由1开始逐渐变大,第n行的数字有n项,前n行共[(1+n)n]/2 个数。可以把整个杨辉三角的数据存入一个列表,其中每个元素也是一个列表。
在这里插入图片描述

# 日常练习5.py
yanghui_list=[[1],[1,1]]            #创建杨辉三角列表,并设定前两行的值
n=int(input("请输入杨辉三角的行数:"))   #输入要输出的杨辉三角的行数
for i in range(2,n):                #生成第3行至第n行的值
    row_list=list()                 #创建初值为空的空列表
    for j in range(i+1):            #设定行列表中各元素的值为0
        row_list.append(0)
    row_list[0]=1                   #改第1列的值为1
    row_list[i]=1                   #改第i+1列的值为1,该行为第i+1行
    for k in range(1,i):            #改本行中的第2至第i列的值
        row_list[k]=yanghui_list[i-1][k-1]+yanghui_list[i-1][k]
    yanghui_list.append(row_list)   #把第一行数据作为元素追加到杨辉三角列表
for i in range(n):                  #用二重循环输出杨辉三角的值
    for k in range(i+1):
        print(yanghui_list[i][k],end="\t")
    print("\n")

运行结果:在这里插入图片描述

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Killer Lin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值