Pythonプログラミングの基本的な演習(4)

1.時間ライブラリを使用して、システムの現在の時間情報をフォーマットして出力します

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))

結果は次のとおりです。

20200824185417

2.タートルライブラリを使用してオリンピックリングを描画する

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()

作用効果は以下の通りです。
ここに画像の説明を挿入

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

4. numpy配列演算

  • 各要素が0〜100の整数である10x10ランダム配列を作成し、その最大値と平均値を求めます
  • 既知のリスト[[4,2,8,6]、[7,5,9,1]]。リストをndarrayオブジェクトに変換し、最初の2行の最初と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]]

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()          # 程序运行之后不会退出

作用効果は以下の通りです。

ここに画像の説明を挿入

6.ファイル操作

以下は、センサーからデータを収集するsensor-data.txtファイルの一部です。それらの中で、各行はレコードであり、複数の属性はコンマで区切られています。属性には、日付、時刻、温度、湿度、光、および電圧が含まれます。その中で、温度は3列目にあります。
日付、時間、温度、
フミ、光、ボルト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)))

結果は次のとおりです。

温度的平均值为:19.21

おすすめ

転載: blog.csdn.net/fyfugoyfa/article/details/108205257