社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

Python编程 基础练习(四)

叶庭云 • 5 年前 • 341 次点击  

1. 使用time库,把系统的当前时间信息格式化输出

import locale
import time

# 以格式2020年08月24日18时50分21秒输出
# python time 'locale' codec can't encode character '\u5e74' in position 2: encoding error报错的解决方法
locale.setlocale(locale.LC_CTYPE, 'chinese')

t = time.localtime()
print(time.strftime('%Y年%m月%d日 %H时%M分%S秒', t))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

运行结果如下:

20200824185417
  • 1
  • 1

2. 使用turtle库,画奥运五环

import turtle

p = turtle
p.pensize(8)  # 画笔尺寸设置5


def drawCircle(x, y, c='red'):
    p.pu()          # 抬起画笔
    p.goto(x, y)    # 绘制圆的起始位置
    p.pd()          # 放下画笔
    p.color(c)      # 绘制c色圆环
    p.circle(50, 360)  # 绘制圆:半径,角度


drawCircle(0, 0, 'blue')
drawCircle(80, 0, 'black')
drawCircle(150, 0, 'red')
drawCircle(120, -60, 'green')
drawCircle(50, -60, 'yellow')

p.done()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

运行效果如下:
在这里插入图片描述

3. 简单实现账目管理系统功能,包括创建一个账户、存钱、取钱、退出系统的功能

class Bank():
	users = []
	def __init__(self):
		# 创建该账户信息   属性:账号 密码 姓名 金额
		users = []
		self.__cardId = input('请输入账号:')
		self.__pwd = input('请输入密码:')
		self.__userName = input('请输入姓名:')
		self.__banlance = eval(input('请输入该账号金额:'))
		# 将账户信息以字典添加进列表
		users.append({'账号': self.__cardId, '密码': self.__pwd, '姓名': self.__userName, '金额': self.__banlance})
		print(users)

	# 存钱
	def cun(self):
		flag = True
		while flag:
			cardId = input('输入账号:')
			while True:
				if cardId == self.__cardId:
					curPwd = input('输入密码:')
					if curPwd == self.__pwd:
						money = eval(input('存入金额:'))
						print('存钱成功')
						self.__banlance = self.__banlance + money
						print('存入:{}元  余额:{}元'.format(money, self.__banlance))
						flag = False
						break
					else:
						print('密码错误,请重新输入!')
						continue
				else:
					print('账号错误,请检查后重新输入!')
					break
	# 取钱
	def qu(self):
		flag1, flage2 = True, True
		while flag1:
			cardId = input('输入账号:')
			while flage2:
				if cardId == self.__cardId:
					curPwd = input('输入密码:')
					if curPwd == self.__pwd:
						while True:
							money = eval(input('取出金额:'))
							if money <= self.__banlance:
								print('取钱成功')
								self.__banlance = self.__banlance - money
								print('取出:{}元  余额:{}元'.format(money, self.__banlance))
								flag1, flage2 = False


    
, False     # 外层循环也退出
								break
							else:
								print('余额不足,请重新输入要取的金额!')
								continue
					else:
						print('密码错误,请重新输入!')
						continue
				else:
					print('账号错误,请检查后重新输入!')
					break


bk = Bank()
print('=============== 创建账号成功 =================')
print('---------------------------------------------------')

while True:
	print('1.存钱\n2.取钱\n3.退出账目管理')
	order = input('请输入您的选择:')
	if order == '1':
		bk.cun()
	elif order == '2':
		bk.qu()
	elif order == '3':
		print('===================== 退出系统 =======================')
		break
	else:
		print('输入选择有误,请重新输入!')
		continue
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79

4. numpy数组操作

  • 创建一个 10x10 的随机数组,里面每个元素为 0-100 的整数,求它的最大值与平均值
  • 已知列表[[4,2,8,6],[7,5,9,1]],请将列表转换为ndarray对象,并将前2行的1、3列置为0,并重新输出
import numpy as np

s = np.random.randint(0, 100, size=(10, 10))   # 生成随机数组  里面每个元素为0-100的整数
print(s)
print(f'最大值:{np.max(s)}')
print(f'平均值:{np.mean(s)}')
s= np.array([[4, 2, 8, 1], [7, 5, 9, 6], [1, 2, 3, 4]])
print(s)
print('-------------------------')
s[:2, 0:3:2] = 0    # 前两行的1、3列
print(s)

运行结果如下:
[[59 18 93 34  6 59 72 26 27 98]
 [ 4 44 29 32 29 95 97 33 64 66]
 [64 64 31 26 61 35 65 92 31 46]
 [59 37 82 55 34 31 21 66 23 79]
 [29 58 73 30 34 94 17 49 63 60]
 [78 55 74 25  8 58 34 80 67 68]
 [76 49 57 86 23  2 76 36 35 95]
 [47 98 76 14 89 71 17 32 81 63]
 [70 76 77 10 98  6 78 35  2 69]
 [17  1 93 67 32 86 43  2 86 84]]
最大值:98
平均值:51.96
[[4 2 8 1]
 [7 5 9 6]
 [


    
1 2 3 4]]
-------------------------
[[0 2 0 1]
 [0 5 0 6]
 [1 2 3 4]]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32

5. 蛇皮走位

import turtle

t = turtle
t.penup()
t.fd(-250)
t.pendown()
# 海龟腰围
t.pensize(30)
# 海龟颜色
t.pencolor("purple")
t.seth(-30)
for i in range(5):   # 5节
    # 以左侧距离为r(如果r是负数,则以右侧距离-r)的点为圆心蛇皮走位(半径,旋转角度)
    t.circle(50, 2 * 30)
    t.circle(-50, 2 * 30)

t.circle(50, 30)
t.fd(60)               # 蛇身
t.circle(25, 180)      # 蛇头的半径  角度
t.fd(40*2 / 3)         # 蛇头长度

t.done()          # 程序运行之后不会退出
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

运行效果如下:

在这里插入图片描述

6. 文件操作

下面是一个传感器采集数据文件sensor-data.txt的一部分。其中,每行是一条记录,逗号分隔多个属性。属性包括日期、时间、温度、湿度、光照、电压。其中,温度处于第3列。
date,time,temp,humi,light,volt
2020-02-01,23:03:16.33393,19.3024,38.4629,45.08,2.68742
2020-02-01,23:06:16.01353,19.1652,38.8039,45.08,2.68742
2020-02-01,23:06:46.77808,19.175,38.8379,45.08,2.68942
请用读入文件的形式编写程序,统计并输出温度的平均值,结果保留2位小数。

# 统计并输出温度的平均值,结果保留2位小数。
with open(r'./测试数据/test_01.txt') as f:
    con = f.read().split('\n')

temp = [eval(x.split(',')[2]) for x in con[1:]]      # 第一行为列名  不要
print('温度的平均值为:{:.2f}'.format(sum(temp) / len(temp)))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

运行结果如下:

温度的平均值为:19.21
  • 1
  • 1
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/73725