• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
Liusy97
博客园    首页    新随笔    联系   管理    订阅  订阅

python学习(1)

字符串

x y z都是字符串

m n k是数字

若字符串中出现" 外用'

若出现' 则外用"

若都有则外用'''

"x"[m:n] m~n

"x"[m:n:k] m~n步长k

"x"[::-1] 反过来

x+y连接xy

x*n 将x复制n次

x in y 如果x是y的子串,返回true

len(x) 字符串长度

str(x) x对用的字符串形式

hex(x)和oct(x) 转为16进制和8进制

字符串处理方法

chr(< unicode码>)-ord( <字符>) 码和字符转换

x.upper() x.lowwer x的升序降序

x.split(“,”) 返回一个列表,将x中原有的","用分割

x.count(y) x中出现y的次数

x.replace(y,z) 将x中y的部分替换成z

x.centre(m,y) 在一个宽度为num的全是y的字符串中间放x

x.join(y)在y中除最后元素每个元素添加一个x

format格式控制

image

image

形式 含义
b 2进制
d 十进制
o 八进制
x 十六进制
X 大写十六进制
形式 含义
e 科学计数e形式
E 科学计数E形式
f 浮点数非科学计数形式
% %形式

time库

time.time() 计算机内部时间

time.ctime() 以易读的字符串形式返回

time.gmtime() 计算机可处理形式

import time
t=time.gmtime()
print(time.time())
print(time.ctime())
print(t)
print(t.tm_year)
1522863219.736711
Thu Apr  5 01:33:39 2018
time.struct_time(tm_year=2018, tm_mon=4, tm_mday=4, tm_hour=17, tm_min=33, tm_sec=39, tm_wday=2, tm_yday=94, tm_isdst=0)
2018

时间格式化

image

t=time.gmtime()
print(time.strftime("%Y-%m-%d %H:%m:%S",t))
2018-04-04 17:04:51

程序计时

  1. time.perf_counter()
  • 第一次调用开始
  • 第二次结束

相减得到运行时间

  1. time.sleep(num)
  • 休眠num秒

进度条

单动态刷新

import time
for i in range(6):
    print("\r{:1}%".format(i),end="")
    time.sleep(0.01)
#因为是在开发环境下所以\r功能被禁用,正常0%-4%会被覆盖
0%
1%
2%
3%
4%
5%

image

import time
scale=50
for i in range(scale+1):
    a = '*'*i
    b = '-'*(scale-i)
    c = (i/scale)*100
    time.sleep(0.2)
    print("\r{:^3.0f}% [{}-->{}]".format(c,a,b),end="")

image

循环控制

几种特殊表达

#m到n步长为k,如1,6,2则i=1,3,5
for i in range(m,n,k)

#每一个字符串做循环
for c in range s: #s为“abc”,c可以用其他代替
print(c,end=",")
输出:a,b,c

#每列表做循环
for item in list  #item为[a,b,c],item可以用其他代替
print(item,end=",")
输出:a,b,c

只要是以一个由多个元素组成的数据类型都可以用for-in遍历循环

循环与else

循环和else搭配如果循环是因为break退出的则不会执行else否则执行else

random库

import random

随机种子确定随机序列

种子相同则序列相同,便于程序的复现,若不给种子,直接使用random.random()则使用系统操作时间,不能复现

#使用random.randomm()之前给定种子
>>>random.seed(10)
>>>random.random()
0.7867887
  • randint(m,n) #m~n之间的整数
  • randrange(m,n[,k]) #[m,n)之间步长为k的整数
  • getrandbits(k) #生成一个k比特长度的随机整数
  • uniform(a,b) #生成一个[a,b]随机小数
#从seq序列中选择一个元素
random.choice([1,2,3])
#将序列seq重元素随机排列,返回打乱后序列
>>>s=[1,2,3,4,6]
>>>random.shuffle(s)
>>>print(s)
[6,3,2,1,4]

函数

默认参数

和c++一样,可选参数要放在必选参数后面

def add(x,y=1):
return x+y

可变参数

def multi(a,*b,**h):
    print('a',a,'b',*b)
    for i in range(len(b)):
        print(a*b[i])
    for first_part,second_part in h.items():
        print(first_part,second_part)
multi(10,2,3,jacky=8,kuh=9)
a 10 b 2 3
20
30
jacky 8
kuh 9

返回参数

return a,b,c

  • 用元组形式返回多个值

  • 用a,b,c=fact(...)方式分别接受

lambda函数

lambad 表达式就是一个函数,可以赋值给一个变量,既然是表达式,可以参与运算

lambda x: x + 2

这个匿名函数的形参是x,表达式x + 2的值就是这个函数的返回值。

>>> f = lambda x: x + 2
>>> f(1)
3
posted @ 2018-04-14 12:09  Liusy97  阅读(173)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3