python day6计算生态与库

习题

1、编写代码将列表ls = [‘新年都未有芳华,\n’,’ 二月初惊见草芽。\n’,‘白雪却嫌春色晚,\n’,‘故穿庭树作飞花。’]、
写入a.txt文件内容如下:
新年都未有芳华,
二月初惊见草芽。
白雪却嫌春色晚,
故穿庭树作飞花。

ls  = ['新年都未有芳华,\n',' 二月初惊见草芽。\n','白雪却嫌春色晚,\n','故穿庭树作飞花。']
f = open('a.txt','w')
#方法一:f.writelines(ls)
for i in ls:
	f.write(i)
f.close()

2、读取a.txt中的内容,并输出。输出格式如下(输出为一行):
新年都未有芳华,二月初惊见草芽。白雪却嫌春色晚, 故穿庭树作飞花。

f = open('a.txt','r')
ls = f.readlines().strip('\n')
#方法一
#for line in ls:
	#print(line,strip('\n'),end=' ')
print(','.join(ls))
f.close()

3、作业文件下有一个三国.txt文件,打开该文件,输出曹操在文件中出现了多少次。
字符串里有count()方法

f = open('三国.txt','r')
s = f.read()
num = s.count('曹操')
print('曹操出现了{}次'.format(num))
f.close()

4、二千多年前希腊的天文学家希巴克斯命名十二星座,它们是水瓶座、双鱼座、白羊座、金牛座、
双子座、巨蟹座、狮子座、处女座、天秤座、天蝎座、射手座、摩羯座。给出一个CSV文件(SunSign.csv),
内容示例如下:
序号,星座,开始月日,结束月日,Unicode
1,水瓶座,120,218,9810
2,双色座,219,320,9811
3,白羊座,321,419,9800
4,金牛座,420,520,9801
5,双子座,521,621,9802
…(略)
以第1行为例,120表示1月20日,218表示2月18日,9810是Unicode码。
问题:读入CSV文件中数据,获得用户输入。根据用户输入的星座名称,输出此星座的出生日期范围。
参考输入和输出示例格式如下:
请输入星座中文名称(例如,双子座):双子座
双子座的生日位于521-621之间

f = open('SunSign.csv','r')
sign = input('请输入星座名称:')
ls = f.readlines().strip('\n')
for line in ls.length:
	lt = line.split(',')
	if s == lt[1]:
		print('{}的生日位于{}-{}之间'.format(s,lt[2],lt[3]))
f.close()

计算生态

计算思维

以实验和验证为特征的实证思维-物理为代表
以推理和演绎为特征的逻辑思维-数学为代表
以设计和构造为特征的计算思维-计算机为代表
计算思维的本质是抽象和自动化

程序设计方法论

一个解决复杂问题行之有效的方法被称作自顶而下的设计方法
实例:
设计一个程序,该程序可以模拟用户游戏中购买商品的简单流程
步骤1:打印程序的介绍性信息
步骤2:获得程序运行需要的参数:cid,count;
步骤3:计算商品总价
步骤4:支付
通过分析:问题被划分为4个独立的函数:print_info(),get_cid_count(),get_total_price()和pay()

def print_intro():
	print('欢迎来到武器商店')
	print('请按照以下操作完成交易')
	print('——————————————————————————')
	for key,val in goods_info.items():
		print('编号:{},名称:{},单价:{}'.format(key,val['name'],val['price']))
	print('——————————————————————————')
	n = input('请输入购买的商品编号和数量 如102 3:')
	return n
	
def get_cid_count(n): # n='102 3'字符串分割后变为列表['102','3']转换成整数类型
	cid = int(n.split()[0])
	count = int(n.split()[1])
	return cid,count

def get_total_price(cid,count):
	total_price = goods_info[cid]['price'] * count
	return total_price

def pay():
	while true:
	money = input('总价为{}元,请输入金额'.format(total_price))
	if money >= total_price:
		print('购买成功,找回{}元'.format(money-total_price))
		break
	else:
		print('购买失败')
def main():
	#1、输出介绍信息
	n = print_intro()
	#2、获取编号和数量
	cid,count = get_cid_count(n)
	#3、计算出商品总价格
	total_price = get_total_price(cid,count)
	#4、支付
	pay()

自底向上 执行
执行中等程序从结构图最底层开始,有助于定位错误

计算生态

  • 标准库
  • 第三方库

python内置函数【68种】

abs()
all()判断元素都为真才为真 any()判断元素任一为真就为真
bin() hex() oct()
bool()
chr() ord()
complex()
dict() list() type()
divmod()
eval() 有返回值,会计算并返回 exec() 无返回值,返回值为none
int() float() str()
len()
max() min() pow()
range() round()
sum()求和sum[1,3,5,7,9]
open()
input() print()
reversed([1,6,2,4,8,5])返回的是迭代器不是结果,可以通过循环 for i in reversed([1,6,2,4,8,5])
sorted()排序sorted([1,6,2,4,8,5],reverse=True)反转
set()

Python标准库

标准库

turtle库【必考】——基本图形绘制
引用方式
第一种
import turtle ,turtle.<函数名>()形式
第二种
from turtle import*
函数调用直接采用<函数名>()形式
第一种
import turtle as t 保留字as的作用是将turtle库给予别名t
函数调用采用t.<函数名>()形式
窗口函数
turtle.setup(width,hright,startx,starty)窗体函数

turtle.setup(400,400)
turtle.setup(0.5,0.6)宽相对于屏幕50%,高度相对于屏幕60%

作用:设置主窗体的大小和位置参数
width:窗口宽度,单位像素值
height:窗口高度,单位像素值
startx:窗口左侧与屏幕左侧的距离
starty:窗口顶部与屏幕顶部的距离

random库【必考】
time库【必考】

turtle库常用的状态函数

常用状态函数

函数描述
pendown()放下画笔
penup()拿起画笔
pensize()设置画笔线条的粗细
pencolor()设置画笔颜色
color()设置画笔和填充颜色
begin_fill()填充图形前调用该方法
end_fill()填充图形后调用该方法
filing()返回填充状态,True为填充
clear()清空当前窗口
reset()清空当前窗口,并重置位置
write(str,font=None)输出字体font的字符串
screensize()设置画布的长和宽 更推荐setup
hideturtle()隐藏画笔的turtle形状,默认显示画笔
showturtle()显示画笔形状
is·visible()如果画笔可见显示true
注意:填充时begin/end_fill、filing三个组合使用才能完成填充效果
clear清空但位置改变
from turtle import*
penup()
fd(100)
pendown()

import turtle as t
t.color('blue','red')
t.begin_fill()
for i in range(3):
	t.fd(100)
	t.left(120)
t.end_fill()

turtle库常用的运动函数

函数描述
forward()沿着指定方向前进距离
backward()沿着当前相反方向前进距离
setheading(angle)设置当前朝向为angle角度,不改变方向
circle()绘制一个半径r和角度e的圆或弧形
undo()撤销画笔最后一步动作
right(angle)向右旋转angle角度,改变方向
left(angle)向左旋转angle角度,改变方向·
goto(x,y)移动绝对坐标到(x,y)处
speed()设置画笔的绘制速度,参数为0-10,0最快10快1最慢正常6
dot(r,color)绘制一个半径r和颜色color的圆点
home()设置当前画笔位置为原点,即回到原点
import turtle 
turtle.forward(200)
turtle.fd(-200)
turtle.setheading(90)
turtle.seth(90)
turtle.circle(100,90)#画半径位100的1/4圆
turtle.undo()

random库

random库主要目的是生成随机数random.random()生成[0.0,1.0)之间的小数

函数描述
seed(a=None)初始化随机数种子,默认值为当前系统时间,限定了随机数是固定的值[每次都一样]
random()生成一个[0.0,1.0)之间的随机小数
randint(a,b)生成一个[a,b]之间的随机整数
getrandbits(k)生成一个k比特长度的随机整数
randrange(start,stop[,step])生成一个[start,stop)之间以step为步数的随机小数
uniform(a,b)生成一个[a,b]之间的随机小数
choice(seq)从序列类型(如列表)中随机返回一个元素
shuffle(seq)将序列类型中元素随机排列,返回打乱后的序列——将原序列本身打乱
sample(pop,k)pop类型随机选取k个元素,以列表类型返回
import random
random.random()
random.seed(3)
n = random.randint(1,6)
print(n)
n = random.getrandbits(6)
print(bin(n))
ls = [1,3,5,7,'you','me']
print(random.choice(ls))
random.shuffle(ls)
print(ls)
lt = random.sample(ls,3)
print(ls)

time库

time可以处理时间
分为3个方面:时间处理、时间格式化和计时

  • 时间处理
import time
time.time()#返回时间戳,1970-01-1到今天的总共时间,按秒计
time.gmtime()#获取当前时间戳对象

time.localtime(secs)# 常考 获取当前时间戳对象与gmtime区别,gmtime为utc时间
  • 时间格式化
import time
t = time.localtime()
time.mktime(t)#返回格式化的时间戳
t = time.localtime()

time.strftime('%Y-%m-%d %H:%M:%S',t)#该方法是时间格式化最有效的方法,利用一个格式化字符串,对时间格式进行表达
time.strptime()#该方法与strftime相反,用于提取字符串中时间来生成strut_time对象,很灵活的作为time模块的输入接口
  • 计时函数
import time
t = time.localtime()
for i in range(3):
	print(1)
	time.sleep(3)#每隔三秒循环一次
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值