设为首页 收藏本站
查看: 753|回复: 0

[经验分享] python 语法

[复制链接]

尚未签到

发表于 2017-4-21 09:17:30 | 显示全部楼层 |阅读模式
  1:输出数据

print 'hello world!'
print "hello world!"
print 'hello %s!' %('world')    %d表示数字占位符(print type("")可以查看类型)
  如何输出%

print 'hello %s!  %%' %('world')
  2:if

a = 1; b = 2
if(a == b) :
    print 'a == b'
elif (a > b) :
    print 'a > b'
elif (a < b) :
    print 'a < b'
else :
    print '#@)#$'
  3:for  while      (流程控制:break跳出,continue跳出一次)

array = [1,2,3,4]
total = 0
for a in array:
    total += a     #python是用四个空格做缩进的,格式要严格
print total

# -----分割线--------
while 1 > 2:
    pass
  4:数组(链表)

# 链表结构
array = [1,2,3,4]
total = 0
for a in array:
    total += a
print total
  5:set(散列)

# 散列结构,无重复值
print set( [1,2,3,4,4]) # 去重

set1 = set([1,2,3,4,5])
set2 = set([2,3,4,5,6])
print set1 - set2 # set1有,set2没有
print set1 & set2 # set1和set2的交集
print set1 | set2 # set1和set2的并集
  6:map(字典)

# key value结构
dict={}
dict['zs'] = 21
dict['ls'] = 25
dict['ww'] = 22

for key in dict.keys():
    print '%s %d' %(key, dict[key])
  7:方法

def main():
    pass

if __name__ == '__main__':
    main()
  8:文件操作

f = file("c:/client_log.txt","r")
print f.read()
f.close()  #传统的须要关闭数据流
with open("c:/client_log.txt","r") as f:
print f.read()
with open("c:/yy.txt","w") as f:
f.write("i'am OK!")

  一次读一行

def main(json_one):
f=open("c:/aa.txt","r")
for line in f:
line = line.strip()  #去掉多首尾多于的空白符
f.close()
  9:读取网络信息

#coding:utf-8
import json
import urllib
def  get_rcms_api(user_name):     #命名要规范(错getRcmsApi)
# user_name='qq'
url='http://rcmsapi.chinacache.com:36000/customer/'+user_name+'/channels'
maps=urllib.urlopen(url).read()
json_array=json.loads(maps)
for channel_dict in json_array:
print 'url: %s ' %(channel_dict['name'])
if __name__ == '__main__':
get_rcms_api('qq')
  10:简单转码

user_name.encode('utf-8')
  详情:http://blog.csdn.net/samxx8/article/details/6286407
  11:数组的快速创建:

channel=[i['code'] for i in json_obj]
  12:数组的哪一种遍历

a = ['Mary', 'had', 'a', 'little', 'lamb']
>>> for i in range(len(a)):
... print i, a
  13:字符数字转换

int --> str
直接使用 str(123); 把123 转成“123”
str --> int
string.atoi("123") 把“123”转成123
  14:type还可以这样搞

all_bandwidth=[]
print cmp(str(type(all_bandwidth)),"<type 'list'>")==0          #true
  15:None是值,pass是空语句
  16:range:

range([start,] stop [, step])      
# start 可选参数,起始数
#stop 终止数,如果 range 只有一个参数x,则产生一个包含 0 至 x-1 的整数列表
#step 可选参数,步长
  17:快速创建符合条件的数组

求list列表偶数和(一行)
>>> a = [1,2,5,8,9,12,14]
>>> print sum([re for re in a if re % 2 == 0 ])       #多个条件可用and  or  连接
  18:python全局变量(python全局变量在函数和类定义外面,如果某个函数或类想使用这个全局变量,需要添加global 关键字加以说明,否则就是重新定义了一个和全局变量名字相同的局部变量)

a = 2  
def change():  
global a  
a = 3  
print a  
print a  
change()  
print a  
结果

2
3
3
  19:目录操作

os模块

remove()/unlink() 删除文件
rename()/renames() 重命名文件
walk() 生成一个目录树下的所有文件名
listdir() 列出指定目录的文件
mkdir()/makedirs() 创建目录/创建多层目录
rmdir()/removedirs() 删除目录/删除多层目录

os.path模块

basename() 去掉目录路径,返回文件名
dirname() 去掉文件名,返回目录路径
join() 将分离的各部分组合成一个路径名
split() 返回(dirname(), basename())元组
splitdrive() 返回(drivename, pathname)元组
splitext() 返回(filename, extension)元组
exists() 指定路径(文件或目录)是否存在
isabs() 指定路径是否为绝对路径
isdir() 指定路径是否是目录
isfile() 指定路径是否为文件
  通过正则得到文件名:glob.glob(r"???*[]"+current_dir)

current_dir=os.getcwd()+"/???_20130909.txt"                  
files = glob.glob(r""+current_dir)                                        #get file list by diretory  
  得到目录下的文件个数

sum([len(files) for root,dirs,files in os.walk(dir)])       #os.walk(dir)会返回一个三元组:(当前目录,子目录列表,文件列表)
  文件更新时间

import os,time
time.ctime(os.stat("d:/learn/flash.txt").st_mtime) #文件的修改时间
time.ctime(os.stat("d:/learn/flash.txt").st_ctime) #文件的创建时间
  得到时间戳(单位是秒,可用当前时间减去它来得到文件多长时间没有更新)

time.time()-os.stat("d:/learn/flash.txt").st_mtime
  20:提前退出

exit()
  21:一些函数

round(float(data)/1000000,2)
float(data)
int(data)
str(data)
  22:得到用户传递的参数

sys.argv

运行:python catBandError.py 18545 a
结果:catBandError.py #0是文件名
18545
a
  23:随机数

# -*- coding: utf-8 -*-   
import random
import sys
def gettime():
print  random.random();  #0~1之间的随机数
print random.uniform(1, 10);#1~10之间的随机小数
print random.randrange(0, 101, 2); #0~101之间的随机偶数
print random.randint(10, 100);#10~100之间的随数整数
print random.choice('abcdefg&#%^*f');#字符串中随机取一个字符
print random.choice ( ['apple', 'pear', 'peach', 'orange', 'lemon'] );#数组中随机取一个字符串
p=['apple', 'pear', 'peach', 'orange', 'lemon']
random.shuffle(p);#打散数组
print p
print random.sample('sequence', 2);#字符串中随机取2个组成一个字符数组  
if __name__ == '__main__':
reload(sys)
sys.setdefaultencoding('utf-8')
gettime();

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-367166-1-1.html 上篇帖子: python 类 下篇帖子: python-字典
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表