从零开始的Python学习
从零开始的Python学习 – 简单的练习题
目录:
- 从零开始的Python学习 -- 简单的练习题
- 前言:
- 顺序结构
- A+B problem
- 苹果采购
- 分支结构
- 数的性质
- 闰年判断
- Apple
- 循环结构
- 找到最小值
- 分类平均
- 阶乘之和
前言:
因为只看我的解释,很难明白这些那些的知识点是怎么运用的,所以中间插入本篇,供读者加深理解和学习
顺序结构
A+B problem
题目描述
输入两个整数 a,b,输出它们的和
任何一个伟大的思想,都有一个微不足道的开始。
输入格式
两个整数以空格分开。
输出格式
一个整数。
输入输出样例
输入
20 30
输出
50
a = input()
b = input()
print(a+b)
# 其实这样的写法是有问题的,但是我们暂时不考虑这个错误
苹果采购
题目描述
现在需要采购一些苹果,每名同学都可以分到固定数量的苹果,并且已经知道了同学的数量,请问需要采购多少个苹果?
输入格式
输入两个不超过 10^9 的正整数,分别表示每人分到的数量和同学的人数。
输出格式
一个整数,表示答案。保证输入和答案都在int范围内的非负整数。
输入输出样例
输入
5 3
输出
15
a = input()
b = input()
print(a*b)
# 同样,这样的写法是有问题的,但是我们暂时不考虑这个错误
在这里解释一下之前提到的错误:
input函数是读入一行,并且是字符串类型,也就是说真正读入进来的是:
"5 3"
# 而不是
5 3
应该这样修改:
s = input().split()
a = int(s[0])
b = int(s[1])
# 读者可以自行把s输出来看一下,结果是这样的
# ["5", "3"]
# 可以看到里面还是str类型,也就是字符串类型
# 我们需要转换成int类型,才能进行加减操作
分支结构
数的性质
题目描述
一些数字可能拥有以下的性质:
- 性质 1:是偶数;
- 性质 2:大于 4 且不大于 12。
小A 喜欢这两个性质同时成立的数字;
小B喜欢这至少符合其中一种性质的数字;
小C喜欢刚好有符合其中一个性质的数字;
小D喜欢不符合这两个性质的数字。
输入格式
输入一个数字 x
输出格式
输出这 4 个人是否喜欢这个数字,如果喜欢则输出1,否则输出0,用空格分隔。
输入输出样例
输入
12
输出
1 1 0 0
num = int(input())
# 输入一个整数,才有可能被2整除
flag1 = num % 2 == 0
# flag1 的真假
flag2 = num > 4 and num <= 12
#flag2 的真假# 判断 A
if flag1 and flag2:print(1,end=" ")
else:print(0,end=" ")
#判断 B
if flag1 or flag2:print(1,end=" ")
else:print(0,end=" ")
#判断 C
if (not flag1 and flag2) or (flag1 and not flag2):print(1,end=" ")
else:print(0,end=" ")
#判断 D
if not(flag1 or flag2):print(1,end=" ")
else:print(0,end=" ")
闰年判断
题目描述
输入一个年份(大于 1582 的整数 ),判断这一年是否是闰年,如果是输出 1,否则输出 0。
闰年是能被 4或400 整除的年份,但不能被 100 整除。
输入格式
无
输出格式
无
输入输出样例
输入 #1
1926
输出 #1
0
输入 #2
1900
输出 #2
0
输入 #3
2000
输出 #3
1
输入 #4
1996
输出 #4
1
num = int(input())
if (num % 4 == 0 and num % 100 != 0) or (num % 400 == 0):print(1)
else:print(0)
Apple
题目描述
八尾勇喜欢吃苹果。她今天吃掉了 x(0≤x≤100) 个苹果。英语课上学到了 apple 这个词语,想用它来造句。如果她吃了 1 个苹果,就输出 Today, I ate 1 apple.;如果她没有吃,那么就把 1 换成 0;如果她吃了不止一个苹果,别忘了 apple 这个单词后面要加上代表复数的 s。你能帮她完成这个句子吗?
输入格式
一个整数表示今天吃的苹果数量
输出格式
一行字符串
输入输出样例
输入 #1
1
输出 #1
Today, I ate 1 apple.
输入 #2
3
输出 #2
Today, I ate 3 apples.
n = int(input())
print("Today, I ate",n ,end=" ")
if n <= 1:print("apple.")
else:print("apples.")
循环结构
找到最小值
题目描述
给出 n 和 n 个整数 ai
(0 ≤ ai ≤ 1000),求这 n 个整数中最小值是什么。
输入格式
无
输出格式
无
输入输出样例
输入 #1
8
1 9 2 6 0 8 1 7
输出 #1
0
n = int(input())
a = input().split() # 这里把输入的内容用split函数分开,默认用空格分割,返回对象是一个list,其中list的元素是字符型min = 999999999 # 这里设置最大值为minfor i in a: i = int(i) # 因为字符和数字不能直接比较,所以把字符转换成对应的数字if i < min:min = iprint(min)
分类平均
题目描述
给定 n 和 k(k≤100),将从 1 到 n 之间的所有正整数可以分为两类:A 类数可以被 k 整除(也就是说是 k 的倍数),而 B 类数不能。请输出这两类数的平均数,精确到小数点后 1 位,用空格隔开。
输入格式
无
输出格式
无
输入输出样例
输入
100 16
输出
56.0 50.1
s = input().split()
n = int(s[0])
k = int(s[1])
sum1 = 0
cnt1 = 0
sum2 = 0
cnt2 = 0
for i in range(1,n+1):if i % k == 0:sum1 += icnt1 +=1else:sum2 += icnt2 +=1
print("%.1f" %(sum1/cnt1),end=" ")
print("%.1f" %(sum2/cnt2))
阶乘之和
题目描述
用高精度计算出 S=1!+2!+3!+…+n!(n≤50)
其中“!”表示阶乘,例如:5!=5×4×3×2×1。
输入格式
一个正整数N。
输出格式
一个正整数S,表示计算结果。
输入输出样例
输入 #1
3
输出 #1
9
N = int(input())
S = 0
for i in range(1,N+1):s = 1for j in range(1,i+1):s *= jS += s
print(S)
从零开始的Python学习
从零开始的Python学习 – 简单的练习题
目录:
- 从零开始的Python学习 -- 简单的练习题
- 前言:
- 顺序结构
- A+B problem
- 苹果采购
- 分支结构
- 数的性质
- 闰年判断
- Apple
- 循环结构
- 找到最小值
- 分类平均
- 阶乘之和
前言:
因为只看我的解释,很难明白这些那些的知识点是怎么运用的,所以中间插入本篇,供读者加深理解和学习
顺序结构
A+B problem
题目描述
输入两个整数 a,b,输出它们的和
任何一个伟大的思想,都有一个微不足道的开始。
输入格式
两个整数以空格分开。
输出格式
一个整数。
输入输出样例
输入
20 30
输出
50
a = input()
b = input()
print(a+b)
# 其实这样的写法是有问题的,但是我们暂时不考虑这个错误
苹果采购
题目描述
现在需要采购一些苹果,每名同学都可以分到固定数量的苹果,并且已经知道了同学的数量,请问需要采购多少个苹果?
输入格式
输入两个不超过 10^9 的正整数,分别表示每人分到的数量和同学的人数。
输出格式
一个整数,表示答案。保证输入和答案都在int范围内的非负整数。
输入输出样例
输入
5 3
输出
15
a = input()
b = input()
print(a*b)
# 同样,这样的写法是有问题的,但是我们暂时不考虑这个错误
在这里解释一下之前提到的错误:
input函数是读入一行,并且是字符串类型,也就是说真正读入进来的是:
"5 3"
# 而不是
5 3
应该这样修改:
s = input().split()
a = int(s[0])
b = int(s[1])
# 读者可以自行把s输出来看一下,结果是这样的
# ["5", "3"]
# 可以看到里面还是str类型,也就是字符串类型
# 我们需要转换成int类型,才能进行加减操作
分支结构
数的性质
题目描述
一些数字可能拥有以下的性质:
- 性质 1:是偶数;
- 性质 2:大于 4 且不大于 12。
小A 喜欢这两个性质同时成立的数字;
小B喜欢这至少符合其中一种性质的数字;
小C喜欢刚好有符合其中一个性质的数字;
小D喜欢不符合这两个性质的数字。
输入格式
输入一个数字 x
输出格式
输出这 4 个人是否喜欢这个数字,如果喜欢则输出1,否则输出0,用空格分隔。
输入输出样例
输入
12
输出
1 1 0 0
num = int(input())
# 输入一个整数,才有可能被2整除
flag1 = num % 2 == 0
# flag1 的真假
flag2 = num > 4 and num <= 12
#flag2 的真假# 判断 A
if flag1 and flag2:print(1,end=" ")
else:print(0,end=" ")
#判断 B
if flag1 or flag2:print(1,end=" ")
else:print(0,end=" ")
#判断 C
if (not flag1 and flag2) or (flag1 and not flag2):print(1,end=" ")
else:print(0,end=" ")
#判断 D
if not(flag1 or flag2):print(1,end=" ")
else:print(0,end=" ")
闰年判断
题目描述
输入一个年份(大于 1582 的整数 ),判断这一年是否是闰年,如果是输出 1,否则输出 0。
闰年是能被 4或400 整除的年份,但不能被 100 整除。
输入格式
无
输出格式
无
输入输出样例
输入 #1
1926
输出 #1
0
输入 #2
1900
输出 #2
0
输入 #3
2000
输出 #3
1
输入 #4
1996
输出 #4
1
num = int(input())
if (num % 4 == 0 and num % 100 != 0) or (num % 400 == 0):print(1)
else:print(0)
Apple
题目描述
八尾勇喜欢吃苹果。她今天吃掉了 x(0≤x≤100) 个苹果。英语课上学到了 apple 这个词语,想用它来造句。如果她吃了 1 个苹果,就输出 Today, I ate 1 apple.;如果她没有吃,那么就把 1 换成 0;如果她吃了不止一个苹果,别忘了 apple 这个单词后面要加上代表复数的 s。你能帮她完成这个句子吗?
输入格式
一个整数表示今天吃的苹果数量
输出格式
一行字符串
输入输出样例
输入 #1
1
输出 #1
Today, I ate 1 apple.
输入 #2
3
输出 #2
Today, I ate 3 apples.
n = int(input())
print("Today, I ate",n ,end=" ")
if n <= 1:print("apple.")
else:print("apples.")
循环结构
找到最小值
题目描述
给出 n 和 n 个整数 ai
(0 ≤ ai ≤ 1000),求这 n 个整数中最小值是什么。
输入格式
无
输出格式
无
输入输出样例
输入 #1
8
1 9 2 6 0 8 1 7
输出 #1
0
n = int(input())
a = input().split() # 这里把输入的内容用split函数分开,默认用空格分割,返回对象是一个list,其中list的元素是字符型min = 999999999 # 这里设置最大值为minfor i in a: i = int(i) # 因为字符和数字不能直接比较,所以把字符转换成对应的数字if i < min:min = iprint(min)
分类平均
题目描述
给定 n 和 k(k≤100),将从 1 到 n 之间的所有正整数可以分为两类:A 类数可以被 k 整除(也就是说是 k 的倍数),而 B 类数不能。请输出这两类数的平均数,精确到小数点后 1 位,用空格隔开。
输入格式
无
输出格式
无
输入输出样例
输入
100 16
输出
56.0 50.1
s = input().split()
n = int(s[0])
k = int(s[1])
sum1 = 0
cnt1 = 0
sum2 = 0
cnt2 = 0
for i in range(1,n+1):if i % k == 0:sum1 += icnt1 +=1else:sum2 += icnt2 +=1
print("%.1f" %(sum1/cnt1),end=" ")
print("%.1f" %(sum2/cnt2))
阶乘之和
题目描述
用高精度计算出 S=1!+2!+3!+…+n!(n≤50)
其中“!”表示阶乘,例如:5!=5×4×3×2×1。
输入格式
一个正整数N。
输出格式
一个正整数S,表示计算结果。
输入输出样例
输入 #1
3
输出 #1
9
N = int(input())
S = 0
for i in range(1,N+1):s = 1for j in range(1,i+1):s *= jS += s
print(S)