与数学的整数概念一致
power(x,y)计算 x y x^y xy,可正可负,没有取值范围。表示形式为:
与数学中的实数概念一致
与数学中的复数概念一致
定义 j = − 1 j=\sqrt{-1} j=−1, a + b j a+bj a+bj被称为复数, a a a为实部, b b b为虚部。
例如: z = 1.26 e − 4 + 5.6 e + 89 j z=1.26e-4+5.6e+89j z=1.26e−4+5.6e+89j,利用z.real获得实部,z.imag获得虚部
x+y表示x与y之和
x-y表示x与y之差
x*y表示x与y之积
x\y表示x与y之商(产生是浮点数结果)
x\\y表示x整除y
x%y表示余数,模运算
x**y表示x的y次幂,作用同power(x,y)
非重点:二元操作符
x op= y
增强操作符及使用 | 描述 |
---|---|
x op= y | 即x=x op y,其中,op为二元操作符 ,包括+ - * / // % ** |
函数及使用 | 描述 |
---|---|
abs(x) | 求x的绝对值 |
divmod(x,y) | 商余,(x//mody,x%y),同时输出商和余数 |
power(x,y[,z]) | 幂余,(x**y)%z,表示参数z可省略 |
round(x,[,d]) | 四舍五入,d是保留小数位数,默认值为0 |
max{ x 1 , x 2 , . . . , x n {x_1,x_2,...,x_n} x1,x2,...,xn} | 最大值,返回 x 1 , x 2 , . . . , x n x_1,x_2,...,x_n x1,x2,...,xn的最大值,n不限 |
min{ x 1 , x 2 , . . . , x n {x_1,x_2,...,x_n} x1,x2,...,xn} | 最小值,返回 x 1 , x 2 , . . . , x n x_1,x_2,...,x_n x1,x2,...,xn的最小值,n不限 |
int(x) | 将x变成整数,舍弃小数部分 |
float() | 将x变成浮点数,增加小数部分 |
complex() | 将x变成复数,增加虚数部分 |
每天进步0.001,每天退步0.001
#DayDayUpQ1.py
dayup=pow(1.001,365)
daydown=pow(0.999,365)
print("向上:{:.2f},向下:{:.2f}".format(dayup,daydown))
每天进步0.005,每天退步0.005
#DayDayUpQ2.py
dayfactor=0.005
dayup=pow(1+dayfactor,365)
daydown=pow(1-dayfactor,365)
print("向上:{:.2f},向下:{:.2f}".format(dayup,daydown))
工作日进步0.01,休息日退步0.01
#DayDayUpQ3.py
dayup=1.0
dayfactor=0.01
for i in range(365):
if i % 7 in [6,0]:
dayup=dayup*(1-dayfactor)
else:
dayup=dayup*(1+dayfactor)
print("工作日的力量:{:.2f}".format(dayup))
工作日模式下,工作日每天努力到什么程度才能达到和每天努力的人相同的结果
#DayDayUpQ4.py
def dayUP(df):
dayup=1
for i in range(365):
if i % 7 in [6,0]:
dayup=dayup*(1-0.01)
else:
dayup=dayup*(1+df)
return dayup
dayfactor=0.01
while dayUP(dayfactor)<37.78:
dayfactor+=0.001
print("工作日的努力参数是:{:.3f}".format(dayfactor))
由0个或多个字符组成的有序字符序列
操作符及使用 | 描述 |
---|---|
x+y | 连接连个字符串x和y |
n*x或x*n | 连接n次字符串x |
x in s | 如果x是s的子串,返回True,否则返回False |
获取星期字符串
#WeekNamePrintV1.py
WeekStr="星期一星期二星期三星期四星期五星期六星期日"
WeekId=eval(input("请输入星期数字(1-7):"))
pos=(WeekId-1)*3
print(WeekStr[pos:pos+3])
#WeekNameV2.py
WeekStr="一二三四五六日"
WeekId=eval(input("请输入星期数字(1-7):"))
print(星期+WeekStr[WeekId-1])
一些以函数形式提供的字符串处理功能
函数及使用 | 描述 |
---|---|
len(x) | 长度,返回字符串x的长度 |
str(x) | 任意类型x所对应的字符串形式 |
hex(x)或otc(x) | 整数x的十六进制或八进制小写形式字符串 |
chr(u) | u位Unicode编码,返回其对应的字符 |
ord(x) | x为字符,返回其对应的Unicode编码 |
注:
Python字符串的编码方式
for i in range(12):
print(chr(9800+i),end=" ")
♈
♉ ♊ ♋ ♌ ♍ ♎ ♏ ♐ ♑ ♒ ♓
方法及使用 | 描述 |
---|---|
str.lower()或str.upper() | 返回字符串的副本,全部字符小写/大写 |
str.split(seq=None) | 返回一个列表,由str根据seq被分割的部分组成 |
str.count(sub) | 返回字串sub在str中出现的次数 |
str.replace(old,new) | 返回字符串str副本,所有old子串被替换为new |
str.center(width[,fillchar]) | 字符串str根据宽度width居中,fillchar可选 |
str.strip(chars) | 从str中去掉在其左侧和右侧chars中列出的字符 |
str.join(iter) | 在iter变量最后除最后元素外每个元素后增加一个str #主要用于字符串分隔等 |
格式化是对字符串进行格式表达的方式
<模板字符串>.format(<逗号分隔的参数>)
函数 | 描述 |
---|---|
time() | 获取当前时间戳,即计算机内部时间值,浮点数>>> time.time() 1583248765.1645014 |
ctime() | 获取当前时间并以易读方式表示,返回字符串>>> time.ctime() 'Tue Mar 3 23:19:33 2020' |
gmtime() | 获取当前时间,表示为计算机可处理的时间格式>>> time.gmtime() time.struct_time(tm_year=2020, tm_mon=3, tm_mday=3, tm_hour=15, tm_min=28, tm_sec=39, tm_wday=1, tm_yday=63, tm_isdst=0) |
函数 | 描述 |
---|---|
strfttime(tpl,ts) | tpl是格式化模板字符串,用来定义输出效果 ts是计算机内部时间类型变量 >>> t=time.gmtime() >>> time.strftime("%Y-%m-%d %H:%M:%S",t) '2020-03-03 15:33:24' |
strptime(tpl,ts) | str是字符串形式的时间值 tpl是格式化模板字符串,用来定义输入效果 >>> timestr='2020-03-03 15:33:24' >>> time.strptime(timestr,"%Y-%m-%d %H:%M:%S") time.struct_time(tm_year=2020, tm_mon=3, tm_mday=3, tm_hour=15, tm_min=33, tm_sec=24, tm_wday=1, tm_yday=63, tm_isdst=-1)` |
格式化字符串 | 日期/时间说明 | 值范围和实例 |
---|---|---|
%Y | 年份 | 0000~9999,例如:1900 |
%m | 月份 | 01~12,例如:10 |
%B | 月份名称 | January~December,例如:April |
%b | 月份名称缩写 | Jan~Dec,例如:Apr |
%d | 日期 | 01~31,例如:25 |
%A | 星期 | Monday~Sunday,例如:Wednesday |
%a | 星期缩写 | Mon~Sun,例如:Wed |
%H | 小时(24h制) | 00~23,例如:12 |
%I | 小时(12h制) | 01~12,例如:7 |
%p | 上/下午 | AM,PM,例如:PM |
%M | 分钟 | 00~59,例如:26 |
%S | 秒 | 00~59,例如:26 |
函数 | 描述 |
---|---|
per_counter() | 返回一个CPU级别的精确时间计数值,单位为秒 由于这个计数值起点不确定,连续调用差值才有意义 >>> start=time.perf_counter() >>> end=time.perf_counter() >>> end-start 7.049843562000206 |
sleep(s) | s拟休眠时间,单位是秒,可以是浮点数>>> def wait(): time.sleep(3.3) >>> wait() |
#TextProBarV1.py
import time
scale=10
print("------执行开始------")
for i in range(scale+1):
a='*'*i
b='.'*(scale-i)
c=(i/scale)*100
print("{:^3.0f}%[{}->{}]".format(c,a,b))
time.sleep(0.1)
print("------执行结束------")
结果如下:
------执行开始------
0 %[->..........]
10 %[*->.........]
20 %[**->........]
30 %[***->.......]
40 %[****->......]
50 %[*****->.....]
60 %[******->....]
70 %[*******->...]
80 %[********->..]
90 %[*********->.]
100%[**********->]
------执行结束------
#TextProBarV1.py
import time
for i in range(101):
print("\r{:3}%".format(i),end="")
time.sleep(0.1)
#TextProBarV3.py
import time
scale=50
print("执行开始".center(scale//2,"-"))
start=time.perf_counter()
for i in range(scale+1):
a='*'*i
b='.'*(scale-i)
c=(i/scale)*100
dur=time.perf_counter()-start
print("\r{:^3.0f}%[{}->{}]{:.2f}s".format(c,a,b,dur),end=' ')
time.sleep(0.1)
print("\n"+"执行结束".center(scale//2,'-'))
四位玫瑰数是4位数的自幂数。自幂数是指一个 n 位数,它的每个位上的数字的 n 次幂之和等于它本身。
例如:当n为3时,有1^3 + 5^3 + 3^3 = 153,153即是n为3时的一个自幂数,3位数的自幂数被称为水仙花数。
请输出所有4位数的四位玫瑰数,按照从小到大顺序,每个数字一行。
for i in range(1000,10000):
m=str(i)
if i==pow(eval(m[0]),4)+pow(eval(m[1]),4)+pow(eval(m[2]),4)+pow(eval(m[3]),4):
print(i)
求100以内所有素数之和并输出。
素数指从大于1,且仅能被1和自己整除的整数。
提示:可以逐一判断100以内每个数是否为素数,然后求和。
#Prime
def is_prime(n):
for i in range(2,n):
if n%i == 0:
return False
return True
sum = 0
for i in range(2,100):
if is_prime(i):
sum += i
print(sum)