2019独角兽企业重金招聘Python工程师标准>>>
#!/usr/bin/python
# -*- coding: UTF-8 -*-
# 每天努力0.1和每天努力0.01
dayup1 = pow(1.01,365)
daydown1 = pow(0.99,365)
dayup2 = pow(1.001,365)
daydown2 = pow(0.999,365)
print ("1.01dayup:{:.2f},0.99daydown:{:.2f}".format(dayup1,daydown1))
print ("1.001dayup:{:.2f},0.999daydown:{:.2f}".format(dayup2,daydown2))
# 一周努力5天,一年的提升
dayfactor = 0.005
dayup3 = pow(1 + dayfactor,365)
daydown3 = pow(1 - dayfactor,365)
print ("1.005dayup:{:.2f},0.995daydown:{:.2f}".format(dayup3,daydown3))
# 工作日努力0.01,休息日颓废0.01,一年的提升
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 ("week:{:.2f}".format(dayup))
# 工作模式要努力到什么水平,才能与每天努力1%一样?
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 ("dayUp:{:.3f}".format(dayfactor))
# 表示工作日模式下,每天要努力到1.9%,相当于365模式下每天1%的一倍
字符串
- 表示单行字符串
“str”
‘str’
- 表示多行字符串
'''str
str'''
- 引号表示方法
"str(')"或’str(“)‘或‘’‘str(')(")’‘’
- []获取字符串中一个或多个字符
索引*[0]或TempStr[-1]
切片*[1:3]或TempStr[0:-1]
- 字符串切片高级用法
<字符串>[M:N],M缺失表示开头,缺失表示N结尾
”1234567[:3]“为”123“
”1234567[3:]“为”567“
<字符串>[M:N:K],根据步长对字符串切片
”0123456789[1:8:2]“为”1357“以第一位到第八位,步长为2取切片
”0123456789[::-1]“为”9876543210“逆序
- 转义符\
\"
\b回退
\n换行(光标停留在下行行首)
\r回车(光标停留在本行行首)
- 操作符
x+y链接两个字符串
n*x或x*n复制n次字符串x
x in s如果x是s的字串,返回True,否则返回False
获取星期字符串
#WeekNamePrintV1.py
WeekStr = "星期一星期二星期三星期四星期五星期六星期日"
WeekId = eval(input("please input Weeknum(1-7):"))
pos = (WeekId - 1) * 3
print(WeekStr[pos:pos+3])
或
WeekStr = "一二三四五六日"
WeekId = eval(input("please input Weeknum(1-7):"))
print("星期" + WeekStr[WeekId - 1])
please input Weeknum(1-7):1
星期一
- 字符串处理函数
len(x)返回x长度
str(x)转换str类型
hex(x)十六进度(小写)
oct(x)八进制(小写)
chr(u)u为Unicode编码,返回其对应的字符
ord(x)x为字符,返回其对应的Unicode
0-1114111(Ox10FFFF)
>>> ord('中')
20013
>>> chr(20013)
'中'
>>> chr(25991)
'文'
十六进制
>>> '\u4e2d\u6587'
'中文'
>>> 'ABC'.encode('ascii')
b'ABC'
>>> '中文'.encode('utf-8')
b'\xe4\xb8\xad\xe6\x96\x87'
> str >> ASCII >> bytes
> str >> UTF-8 >> bytes
> 读取字节流bytes >> str >> decode()
>>> b'ABC'.decode('ascii')
'ABC'
>>> b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')
'中文'
> errors='ignore'忽略错误
- 字符串处理方法
方法特指.()风格中的函数()
方法本身也是函数,但与有关,.()风格使用
字符串及变量也是,存在一些方法
对象方法
str.lower()或str.upper()返回字符串的副本,全部字符小写/大写"BCDEFGH".lower()结果为"abcdefgh
str.split(sep = None)返回一个列表,由str根据sep被分隔的部分组成"A,B,C".split(",")结果为["A","B","C"]
str.count(sub)返回子串sub在str中出现的次数"a apple a day".count("a")结果为4
str.replace(old,new)返回字符串str副本,所有old子串被替换为new “python".replace("n","n123.io")结果为"python123io"
str.center(width,[fillchar])字符串str根据宽度width居中,fillchar可选 "python".center(20,"=")结果为=======python=======
str.strip(chars)从str中去掉左侧和右侧chars中列出的字符"= python=".strip(" =np")结果"ytho"
str.join(iter)在iter变量除最后元素外每个元素后增加一个str",".join("12345")结果为”1,2,3,4,5“ #主要用于字符串分隔等
- 字符串类型格式化
槽
"{1}:计算机{0}的CPU占用率为{2}%".format("2018-10-10",”C“,10)
不填默认顺序
: <填充> <对齐> <宽度> <,> <.精度> <类型>
引导字符 用于填充的单个字符 <左对齐>右对齐^居中 槽设定的输出宽度 数字的千分位分隔符 浮点数小鼠精度或字符串最大输出长度 整数类型b,c,d,o,x,X,腹短数类型e,E,f,%
>>> "{0:=^20}".format("PYTHON")
'=======PYTHON======='
>>> "{0:*>20}".format("BIT")
'*****************BIT'
>>> "{0:20}".format("BIT")
'BIT
>>> "{0:,.2f}".format(12345.6789)
'12,345.68'
>>> "{0:b},{0:c},{0:d},{0:o},{0:x},{0:X}".format(425)
'110101001,Ʃ,425,651,1a9,1A9'
二进制,Unicode,十进制,八进制,小写十六进制,大写十六进制
>>> "{0:e},{0:E},{0:f},{0:%}".format(3.14)
'3.140000e+00,3.140000E+00,3.140000,314.000000%'