一.用Python编写程序,输入一年份,判断该年份是否是闰年并输出结果。
【提示】①答案不唯一。②凡符合下面两个条件之一的年份是闰年。1、能被4整除但不能被100整除。2、能被400整除。
二.用分支结构实现分段函数计算,如下图所示:当x<0时,y=0;当0<=x<5时,y=3x-5;当10<=x<20时,y=0.5x-2;当20<=x时,y=0。
[提示]答案不唯一。
三.编程程序实现输入x,y,判断其属于第几象限。
四.购买地铁车票的规定如下: 乘1-4站,3元/位;乘5-9站,4元/位;乘9站以上,5元/位。 输入乘坐人数(per_num)和乘坐站数(sta_num),计算购买地铁车票需要的总金额,并将计算结果输出。注意: 如果「乘坐人数」和「乘坐站数」为 0 或负数 ,输出 error 。
五.从键盘接收一个字符串,分别统计其中大写字母、小写字母、数字和其他字符的个数并输出。【提示】①答案不唯一。
六.编写程序,根据输入的行列数值,生成相应的矩阵,矩阵内元素为随机数。【提示】①答案不唯一。②生成随机数可使用random.randint(),生成数组可使用np.ones(),用其他方法也可以不扣分。
七.编写程序并绘制程序流程图,实现输入一个数,判断这个数是否为素数,并输出判断结果“x是素数”或“x不是素数”。
【提示】①答案不唯一。②所谓素数,是指除了1和该数本身之外,不能被其它任何整数整除的数。
八.嵌套打印九九乘法表,如下图所示。
【提示】:①答案不唯一。
九.绘制程序流程图,并编程计算1+2+3+...+100的和,并打印计算结果“1+2+3+4+...+99+100=?”。
【提示】:①答案不唯一。②尽量用循环完成本题,用其他方法解题也可以。
十.如图所示,打印星号。
【提示】:①答案不唯一。
Python实验二报告
一
一.实验内容:
用Python编写程序,输入一年份,判断该年份是否是闰年并输出结果。
【提示】①答案不唯一。②凡符合下面两个条件之一的年份是闰年。1、能被4整除但不能被100整除。2、能被400整除。
- 实验过程:
1.先判断生成闰年的条件:能被4整除但不能被100整除。或能被400整除。
2.用input()函数从键盘录入一个整数型year(年份)。
3.用if....else语句判断是否为闰年。
4.用print语句输出:如果是闰年输出***是一个闰年;否则输出***不是一个闰年。
- 实验结果:
- 实验小结:
学会运用if...else语句判断,在写代码之前要弄清楚什么是闰年。
代码:
# 用python编写程序,输入一年份,判断该年份是否是闰年并输出结果
year = int(input('请输入一年份:'))
if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
print(year, '是一个闰年。', sep='')
else:
print(year, '不是一个闰年。', sep="")
二
- 实验内容:
用分支结构实现分段函数计算,如下图所示:当x<0时,y=0;当0<=x<5时,y=3x-5;当10<=x<20时,y=0.5x-2;当20<=x时,y=0。
[提示]答案不唯一。
- 实验过程:
- 用input()函数从键盘录入一个数x。
- 用eval函数:用来执行一个表达式,并返回这个表达式的结果。
- 用if....elif条件语句来执行不同的判断条件,然后执行。
- 实验结果:
- 实验小结:
要会eval函数:用来执行一个表达式,并返回这个表达式的结果。分条叙述每个条件。
代码:
# 用分支结构实现分段函数计算,如下所示: 当x<0时, y=0; 当0<=x<5时, y=x; 当5<=x<10时, y=3x-5;
# 当10<=x<20时, y=0.5x-2; 当20<=x时, y=0
x = eval(input('请输入一个数:'))
if x < 0:
y = 0
print('y=', y, sep='')
elif 0 <= x < 5:
print('y=', x, sep='')
elif 5 <= x < 10:
y = 3*x-5
print('y=', y, sep='')
elif 10 <= x < 20:
y = 0.5*x-2
print('y=', y, sep='')
elif x >= 20:
y = 0
print('y=', y, sep='')
三
- 实验内容:
编程程序实现输入x,y,判断其属于第几象限。
- 实验过程:
- 用input()函数从键盘录入一个数x。
- 用input()函数从键盘录入一个数y。
- 用eval函数:用来执行一个表达式,并返回这个表达式的结果。
- 用If....elif.....else语句判断四个象限的所属范围。
- 输出录入的数所属的象限。
- 若不在四个象限内则输出不在。
- 实验结果:
- 实验小结:
判断象限问题,要知道一共有几个象限。熟练运用if....elif....else分支语句。
代码:
# 编写程序实现输入x,y,判断其属于第几象限。
x = eval(input('请输入x:'))
y = eval(input('请输入y:'))
if x>0 and y>0 :
print('(', x, ',', y, ')', '属于第一象限', sep='')
elif x<0 and y>0 :
print('(', x, ',', y, ')', '属于第二象限', sep='')
elif x < 0 and y < 0:
print('(', x, ',', y, ')', '属于第三象限', sep='')
elif x>0 and y<0 :
print('(', x, ',', y, ')', '属于第四象限', sep='')
else:
print('(', x, ',', y, ')', '不在象限内', sep='')
四.地铁车票价格计算
一.实验内容:
购买地铁车票的规定如下: 乘1-4站,3元/位;乘5-9站,4元/位;乘9站以上,5元/位。 输入乘坐人数(per_num)和乘坐站数(sta_num),计算购买地铁车票需要的总金额,并将计算结果输出。注意: 如果「乘坐人数」和「乘坐站数」为 0 或负数 ,输出 error 。
- 实验过程:
- 用input()函数从键盘录入一个整数型per_num(乘坐人数)。
- 用input()函数从键盘录入一个整数型per_num(乘坐站数)。
- 用if....elif....else语句分别计算出不同站所需要的钱数。
- 用print函数输出总金额。
- 实验结果:
- 实验小结:
在编写代码过程中,要计算好不同站每个人所需要多少钱的算法,才可以完成此题。
代码:
# 购买地铁车票的规定如下: 乘1-4站,3元/位;乘5-9站,4元/位;乘9站以上,5元/位。 输入乘坐人数(per_num)和乘坐站数(sta_num),
# 计算购买地铁车票需要的总金额,并将计算结果输出。注意: 如果「乘坐人数」和「乘坐站数」为 0 或负数 ,输出 error 。
per_num = int(input('请输入乘坐人数:'))
sta_num = int(input('请输入乘坐站数:'))
if (sta_num >= 1) and (sta_num <= 4):
title = per_num*3
print('总金额为:', title, sep='')
elif (sta_num >= 5) and (sta_num <= 9):
title = per_num*4
print('总金额为:', title, sep='')
elif sta_num > 9:
title = per_num*5
print('总金额为:', title, sep='')
else:
print('error')
五.统计字符
一.实验内容:
从键盘接收一个字符串,分别统计其中大写字母、小写字母、数字和其他字符的个数并输出。【提示】①答案不唯一。
- 实验过程:
- 用input()函数从键盘录入字符串a.
- 分别定义大写,小写,数字,其他。
- 用for..in遍历字符串a.
- For..in 里面嵌套if,elif,,,else语句。
- 分别用isupper(),islower(),isdigit()函数。
- 分别输出他们。
- 实验结果:
- 实验小结:
学会用isupper(),islower(),isdigit()函数。
代码:
# 从键盘接收一个字符串,分别统计其中大写字母、小写字母、数字和其他字符的个数并输出。
a = input('请输入字符串:')
daXie = 0
xiaoXie = 0
shuZi = 0
qiTa = 0
for i in a:
if i.isupper():
daXie = daXie + 1
elif i.islower():
xiaoXie = xiaoXie + 1
elif i.isdigit():
shuZi = shuZi + 1
else:
qiTa = qiTa + 1
print('大写出现次数:', daXie, sep='')
print('小写出现次数:', xiaoXie, sep='')
print('数字出现次数:', shuZi, sep='')
print('其他字符出现次数:', qiTa, sep='')
六.生成矩阵。
一.实验内容:
编写程序,根据输入的行列数值,生成相应的矩阵,矩阵内元素为随机数。
【提示】①答案不唯一。②生成随机数可使用random.randint(),生成数组可使用np.ones(),用其他方法也可以不扣分。
- 实验过程:
- 用import导入numpy包。
2.用input()函数从键盘录入一个数x。
3.用input()函数从键盘录入一个数y。
4.定义一个a用np.random.randint()函数生成随机数矩阵。
5.输出a
- 实验结果:
- 实验小结:
要学会使用numpy包,并会使用np.random.randint()函数。
代码:
# 编写程序,根据输入的行列数值,生成相应的矩阵,矩阵内元素为随机数。
# 【提示】①答案不唯一。②生成随机数可使用random.randint(),用其他方法也可以不扣分。
import numpy as np
x = int(input('行数:'))
y = int(input('列数:'))
a = np.random.randint(1, 100, size=(x, y))
print(a)
七.判断素数。
实验目的:掌握分支结构的选择和使用;掌握循环结构的选择和使用;掌握流程控制语句break/continue的选择和使用。
一.实验内容:
编写程序并绘制程序流程图,实现输入一个数,判断这个数是否为素数,并输出判断结果“x是素数”或“x不是素数”。
【提示】①答案不唯一。②所谓素数,是指除了1和该数本身之外,不能被其它任何整数整除的数。
- 实验过程:
- 用input()函数从键盘录入一个数num.
- 用if...else语句是num>1.
- If...else语句里面嵌套for...in语句遍历。
- 在if...else语句判断是不是为素数。
- 实验结果:
- 实验小结:
在编写代码前,需要计算好算法,何为素数。并且能熟练使用break,continue语句。
代码:
# 编写程序并绘制程序流程图,实现输入一个数,判断这个数是否为素数,并输出判断结果“x是素数”或“x不是素数”。
# 【提示】①答案不唯一。②所谓素数,是指除了1和该数本身之外,不能被其它任何整数整除的数。
num = int(input('请输入一个数:'))
if num > 1:
for i in range(2,num):
if num%i == 0:
print(num,'不是素数',sep='')
break
else:
continue
else:
print(num, '是素数', sep='')
else:
print('输入有误')
八.打印九九乘法表。
一.实验内容:
嵌套打印九九乘法表,如下图所示。
【提示】:①答案不唯一。
- 实验过程:
- 用两个for...in遍历。
- 在第二个for....in语句中输出乘法算式的格式。
- 实验结果:
- 实验小结:
要准确掌握第二个for..in range的范围如何设置。
代码:
# 嵌套打印九九乘法表,如下图所示。
for i in range(1, 10):
for j in range(1, i + 1):
s = i * j
print(j, '*', i, '=', s, sep='', end='\t')
print('') # print特性,换行输出
九.求1~n的和。
一。实验内容:
绘制程序流程图,并编程计算1+2+3+...+100的和,并打印计算结果“1+2+3+4+...+99+100=?”。
【提示】:①答案不唯一。②尽量用循环完成本题,用其他方法解题也可以。
- 实验过程:
- 定义一个sum1.
- 用for..in语句,range为1~101.
- 使sum1 = sum1+i
- 输出sum1.
- 实验结果:
- 实验小结:
sum不能随便定义,如果真要定义后面最好再加点东西。
代码:
# 绘制程序流程图,并编程计算1+2+3+...+100的和,并打印计算结果“1+2+3+4+...+99+100=?”。
sum1 = 0
for i in range(1, 101):
sum1 += i
print(sum1)
十、打印图像。
一.实验内容:
如图所示,打印星号。
【提示】:①答案不唯一。
- 实验过程:
- 每个图形都使用for...in语句嵌套for...in语句。
- 在for...in语句中定义好range的范围。
- 再根据题意输出“ ”,“*”。
- 实验结果:
- 实验小结:
在写之前需要考虑好空格和星的位置放置情况。
代码:
# 如图所示,打印星号。
# 1.正方形打印
for i in range(4):
for j in range(7):
print('*', end='')
print('')
print('---------------------------------------')
# 2.直角三角形打印
for i in range(1, 5):
for j in range(2*i-1):
print('*', end='')
print('')
print('--------------------------------------')
# 3.正等腰三角形
for i in range(1, 5):
for j in range(1, 5-i):
print(' ', end='')
for k in range(2*i-1):
print('*', end='')
print('')
print('-------------------------------------')
# 4.倒等腰三角形
for i in range(1, 5):
for j in range(i-1):
print(' ', end='')
for k in range(9-2*i):
print('*',end='')
print('')
print('------------------------------------------')
# 5.左三角形打印
for i in range(1, 5):
for j in range(2*i-1):
print('*', end='')
print('')
for i in range(1,4):
for j in range(7-2*i):
print('*',end='')
print('')
print('--------------------------------------')
# 6.菱形
for i in range(1, 5):
for j in range(1, 5-i):
print(' ', end='')
for k in range(2*i-1):
print('*', end='')
print('')
for i in range(1, 5):
for j in range(i):
print(' ', end='')
for k in range(7 - 2 * i):
print('*', end='')
print('')