上节回顾
1.循环打印数列1,3,5,.........,99
for i in range(100):if i%2==1:print (i)
2.turtle 库
# penup 抬笔
# pendown 落笔
# pensize 画笔大小
# pencolor 画笔颜色## 画笔运动函数
# fd 前进
# bk 后退
# goto 到达指定的坐标点
# circle(r,angle)画⚪# seth()/left()/right() ()内为画笔转动的角度## 颜色填充
# begin_fill() #开始填充
# fillcolor() #填充颜色
# end_fill() #结束填充
例子:
3.1基本数据类型
#数据:身高/体重/姓名/爱好#180/70/'nick'/容器类型
# 不同的数据类型可以描述不同类型的数据
3.2数字类型
##a. 整形
# 1. 表示:1/2/3/4/5/100
# 整形用来描述什么:如身高/数量/体重/id卡号/年龄
height1 = 180
height2 = int(180)
height3 = int('180')
##b. 浮点型
# 浮点型用来描述什么:Π,薪资,和钱有关的,
salary1 = 1.0
salary2 = float(1.0)
salary3 = float('1')
print(salary3)#1.0
# salary4 = float('2ss')#错误,2ss不对,转换类型也要符合常理
## c.复数
# 表示:实部+虚部, a+bj, 1+2j
z = 1+2j
print(z) #(1+2j)
print(z.real) #1.0
print(z.imag) #2.0
3.3数字类型的计算
数字类型的运算
#1.一元操作符
# +-*/
x = 1
y = 2
print(x*y)
# % 取余
print(3%4)
# // 地板除,整除
print(3//4) #0
# ** 幂
print(2**10) #1024
print(pow(2,10)) #1024
#2. 二元操作符
x = 2
# x = x +2 # x+=2
x+=2
x*=2
x%=2
print(x)a = 2.0
b = 2.0
c = 2
print(a+c) #4.0,试想a=2.3的情况a = 0.1
b = 0.2
c = 0.3
print(a+b) #0.30000000000000004
print(round(a+b,2)) #0.4
print(a+b == 0.3) # False
print(a+c == 0.4) # True
3.4数据运算的通用方法
# 通用方法
print(abs(-1)) # 绝对值 1
print(divmod(10,3)) # 第一个商,第二个余数 (3, 1)
print(max(10,11,12,1123,12312312,111.0))#求最大值 12312312
print(min(10,11,12,1123,12312312,111.0))#求最小值 10
4.天天向上
# # 周一到周五进步0.01,然后双休日退步0.01,这个怎么计算
#分析:
# # 1 8 15 22 周一 除7余1
# # 2 9 16 23 周二 除7余2
# # 3 10 17 24 周三 除7余3
# # ........
# # 周六 除7余6
# # 周日 除7余0
base = 1
factory = 0.01 # 更大 # 0.01001 # 0.01002 # 0.01003 # 0.01004 ... # 0.019
for i in range(365): # i=1周一if i % 7 == 6:base *= (1-0.01)elif i % 7 == 0:base *= (1 - 0.01)else:base *= (1 + factory)
print('base:',base) # 4.626500529730141# # 周一到周五进步0.01,然后双休日退步0.01,周一到周五努力到什么程度才能和每天进步0.01结果一样
factory = 0.01
for i in range(10000000):#循环,无限接近于每天进步0.01结果base =1for i in range(365):if i%7==6:base*=(1-0.01)elif i%7==0:base*=(1-0.01)else:base*=(1+factory)if base>pow(1.01,365):print(factory)breakfactory+=0.0001
5.1字符串类型
#字符串可用' ', " ",""" """,''' ''',这几种行式的引号扩起来#单引号和双引号括起来的相同的字符串输出结果一样
#三引号中的字符串可以换行
# poem = """锄禾日当午,汗滴禾下土;
# 谁知盘中餐,粒粒皆辛苦。"""
# print(poem)
#输出的结果应该为
锄禾日当午,汗滴禾下土;
谁知盘中餐,粒粒皆辛苦。#如果字符串中需要单引号,则需要用双引号包裹字符串
# print("nick's name is nick")
# print('''nick's name is "nick"''')
结果为:
#转意
# print('nick"\'"s name is "nick"')
# # 本来'表示字符串结束了,但是加上\表示这个’只是一个很普通额字符# print('\tnick handsome') #\t表示4个空额,即缩进
# print('锄禾日当午,汗滴禾下土;\n谁知盘中餐,粒粒皆辛苦') \n表示换行# print(r'\t\n') # 原生字符串
结果为:
# print('*'*50)
# for i in range(5):
# print('\r1',end='') # end控制输出的形式 # \r原位打印
#print("\n")
# print('-'*50)
#结果为:
5.2字符串的运算
print('nick'+' handsome')
print('n'*50)
5.3普通方法
#s=str(18)
#print(s)
#print(len(s))
结果为:
18
2
5.4字符串的内置方法(字符串的内置方法)
#s='nick handsome height:180 weight:70'
#res=s.split(':')#切割,以指定的字符串切割大的字符串,这里是用:切割字符串s
#print(res)
#print(s.startswitch('nick'))#以指定的字符串开头,这里是指字符串s是否以nick开头
#print(s.endswitch(':70'))#以指定字符结尾
#print(s.center(60,'*'))
结果为:
f-string格式化
#s1='nick'
#s2='handsome'
#s3='height'
#s4=180
#print(s1+" "+s2+""+s3+""+str(s4))
#print(f'{s1} {s2} {s3} {s4}') #{}会占用变量名的值,并且数字会自动转化成字符串
#print('{}{}{}{}'.format(s1,s2,s3,s4))
结果为:
其它
#s='nick'
#printf(f'{s:*<10}')#:表示后面的字符有意义,*表示填充的字符,^中间;<居左;>居右,10表示填充的字符长度
#height=180.01
#printf(f'{height:.3f}')
结果为:
文本进度条
import time
scale = 100
start = time.perf_counter()
for i in range(scale + 1):print(f'\r{((i/scale)*scale): ^3.1f}%[{"*"*i}->{"."*(scale-1-i)}] {time.perf_counter()-start:.2f}s', end='')time.sleep(0.1)
结果为: