Python3.x 基础练习题100例(41-50)
练习41:
题目:
模仿静态变量的用法。
程序:
def varfunc():
var = 0
print('var = %d' % var)
var += 1
if __name__ == '__main__':
for i in range(3):
varfunc()
# 类的属性
# 作为类的一个属性吧
class Static:
StaticVar = 5
def varfunc(self):
self.StaticVar += 1
print(self.StaticVar)
print(Static.StaticVar)
a = Static()
for i in range(3):
a.varfunc()
输出结果:
var = 0
var = 0
var = 0
5
6
7
8
练习42:
题目:
学习使用auto定义变量的用法。
分析:
没有auto关键字,使用变量作用域来举例吧。
程序:
num = 2
def autofunc():
num = 1
print('internal block num = %d' % num)
num += 1
for i in range(3):
print('The num = %d' % num)
num += 1
autofunc()
输出结果:
The num = 2
internal block num = 1
The num = 3
internal block num = 1
The num = 4
internal block num = 1
练习43:
题目:
模仿静态变量(static)另一案例。
分析:演示一个python作用域使用方法
程序:
class Num:
nNum = 1
def inc(self):
self.nNum += 1
print('nNum = %d' % self.nNum)
if __name__ == '__main__':
nNum = 2
inst = Num()
for i in range(3):
nNum += 1
print('The num = %d' % nNum)
inst.inc()
输出结果:
The num = 3
nNum = 2
The num = 4
nNum = 3
The num = 5
nNum = 4
练习44:
题目:
两个 3 行 3 列的矩阵,实现其对应位置的数据相加,并返回一个新矩阵:
X = [[12,7,3],
[4 ,5,6],
[7 ,8,9]]
Y = [[5,8,1],
[6,7,3],
[4,5,9]]
分析:
创建一个新的 3 行 3 列的矩阵,使用 for 迭代并取出 X 和 Y 矩阵中对应位置的值,相加后放到新矩阵的对应位置中。
程序:
X = [[12,7,3],
[4 ,5,6],
[7 ,8,9]]
Y = [[5,8,1],
[6,7,3],
[4,5,9]]
result = [[0,0,0],
[0,0,0],
[0,0,0]]
# 迭代输出行
for i in range(len(X)):
# 迭代输出列
for j in range(len(X[0])):
result[i][j] = X[i][j] + Y[i][j]
for r in result:
print(r)
输出结果:
[17, 15, 4]
[10, 12, 9]
[11, 13, 18]
练习45:
题目:
统计 1 到 100 之和。
程序:
tmp = 0
for i in range(1, 101):
tmp += i
print('The sum is %d' % tmp)
输出结果:
The sum is 5050
练习46:
求输入数字的平方,如果平方运算后小于 50 则退出。
程序:
TRUE = 1
FALSE = 0
def SQ(x):
return x * x
print('如果输入的数字小于 50,程序将停止运行。')
again = 1
while again:
num = int(input('请输入一个数字:'))
print('运算结果为: %d' % (SQ(num)))
if SQ(num) >= 50:
again = TRUE
else:
again = FALSE
输出结果:
如果输入的数字小于 50,程序将停止运行。
请输入一个数字:8
运算结果为: 64
请输入一个数字:2
运算结果为: 4
练习47:
题目:
两个变量值互换。
程序:
def exchange(a, b):
a, b = b, a
return (a, b)
if __name__ == '__main__':
x = 10
y = 20
print('x = %d,y = %d' % (x, y))
x, y = exchange(x, y)
print('x = %d,y = %d' % (x, y))
输出结果:
x = 10,y = 20
x = 20,y = 10
练习48:
题目:
数字比较。
程序:
if __name__ == '__main__':
i = 10
j = 20
if i > j:
print('%d 大于 %d' % (i, j))
elif i == j:
print('%d 等于 %d' % (i, j))
elif i < j:
print('%d 小于 %d' % (i, j))
else:
print('未知')
输出结果:
10 小于 20
练习49:
题目:
使用lambda来创建匿名函数。
程序:
MAXIMUM = lambda x, y: (x > y) * x + (x < y) * y
MINIMUM = lambda x, y: (x > y) * y + (x < y) * x
if __name__ == '__main__':
a = 10
b = 20
print('The largar one is %d' % MAXIMUM(a, b))
print('The lower one is %d' % MINIMUM(a, b))
输出结果:
The largar one is 20
The lower one is 10
练习50:
题目:
输出一个随机数。
分析:
使用 random 模块。
程序:
import random
# 生成 10 到 20 之间的随机数
print(random.randint(10, 20))
输出结果:
19
Python3.x 基础练习题100例(41-50)的更多相关文章
- Python3.x 基础练习题100例(51-60)
练习51: 题目: 学习使用 按位与(&) . 分析: 0&0=0; 0&1=0; 1&0=0; 1&1=1. 程序: if __name__ == '__ma ...
- Python3.x 基础练习题100例(31-40)
练习31: 题目: 请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母. 分析:用情况语句比较好,如果第一个字母一样,则判断用情况语句或if语句判断第二个字母. 程序 ...
- Python3.x 基础练习题100例(01-10)
练习01: 题目: 有四个数字:1.2.3.4,能组成多少个互不相同且无重复数字的三位数?各是多少? 分析: 可填在百位.十位.个位的数字都是1.2.3.4.组成所有的排列后再去 掉不满足条件的排列. ...
- Python3.x 基础练习题100例(81-90)
练习81: 题目: 809??=800??+9?? 其中??代表的两位数, 809??为四位数,8??的结果为两位数,9??的结果为3位数.求??代表的两位数,及809*??后的结果. 程序: a = ...
- Python3.x 基础练习题100例(21-30)
练习21: 题目: 猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个.以后每天早上都吃了前 一天剩下的一半零一个.到第10天早上 ...
- Python3.x 基础练习题100例(11-20)
练习11: 题目: 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 分析: 兔子的规律为数列1,1,2, ...
- Python3.x 基础练习题100例(61-70)
练习61: 题目: 打印出杨辉三角形. 程序: if __name__ == '__main__': a = [] for i in range(10): a.append([]) for j in ...
- Python3.x 基础练习题100例(91-100)
练习91: 题目: 时间函数举例1. 程序: if __name__ == '__main__': import time print (time.ctime(time.time())) print ...
- Python3.x 基础练习题100例(71-80)
练习71: 题目: 编写input()和output()函数输入,输出5个学生的数据记录. 程序: N = 5 # stu # num : string # name : string # score ...
随机推荐
- 力扣643.子数组最大平均数I-C语言实现
题目 给定 n 个整数,找出平均数最大且长度为 k 的连续子数组,并输出该最大平均数. 示例: 输入:[1,12,-5,-6,50,3], k = 4 输出:12.75 解释:最大平均数 (12-5- ...
- Snapshot查询所有快照
今天使用snapshot list这个命令时查询出了所有的表,没注意下面报错: NoMethodError:undefined method '-@' for #<Array:0x54326e9 ...
- 静态链表 Static Link List
Static Link List 静态链表 其中上图来自http://www.cnblogs.com/rookiefly/p/3447982.html 参考: http://www.cnblogs. ...
- P2617 Dynamic Rankings (动态开点权值线段树 + 树状数组)
题意:带修求区间k小 题解:回忆在使用主席树求区间k小时 利用前缀和的思想 既然是前缀和 那么我们可以使用更擅长维护前缀和的树状数组 但是这里每一颗权值线段树就不是带版本的 而是维护数组里i号点的权值 ...
- B. Modular Equations
Last week, Hamed learned about a new type of equations in his math class called Modular Equations. L ...
- CodeForces - 721D 贪心+优先队列(整理一下优先队列排序情况)
题意: 给你一个长度为n的数组,你可以对其中某个元素加上x或者减去x,这种操作你最多只能使用k次,让你输出操作后的数组,且保证这个数组所有元素的乘积尽可能小 题解: 在这之前我们要知道a*b>a ...
- solidity的函数修改器(modifier)
内容:modifier的定义.modifier对函数参数的操作.modifier执行的顺序 modifier的定义 官方文档:modifier可以改变函数的行为.可以被继承和重写. 其实modifie ...
- .NetCore快速上手Consul,留给自己一点思考的空间
互联网热潮下,"微服务"技术架构成为了一种高大上的技术,其顾名思义就是将传统的大的业务服务拆分成独立的小服务,当拆分的服务慢慢多起来的时候,我们会发现服务地址很难管理,传统的方式一 ...
- Win7下安装IIS
安装IIS 1.控制面板 --> 程序 --> 卸载程序,进入"程序与功能". 2.进入"打开或关闭Window功能". 3.找到"Int ...
- HEXO版本控制与持续集成
主要解决了hexo发布文章的繁琐,以及本地资源丢失,更换电脑等情况的出现. 采用AppVeyor实现. 转自 https://formulahendry.github.io/2016/12/04/he ...