python常用操作整理(一)

1,057 阅读2分钟

1.函数参数

def getInfo(name,age,sex="男"):
	obj = {
		"name":name,
		"age":age,
		"sex":sex
	}
	print(obj)

getInfo(age=12,name='zhangsan')
lists=['aa',20,'女']
getInfo(*lists)

getInfo(age=12,name='zhangsan')可以错位传参数,*list代表将列表或者元祖类型的元素作为参数传给函数,类似于ES6 ...解构操作
解构字典时使用“**”

# 解构字典类型
def insertUsers(name,pwd,**others):
	print(others) # {'job': '学生', 'email': '123@163.com'}

insertUsers('luoj','123456',job="学生",email='123@163.com')

2.使用切片来拷贝列表

lists=[1,2,3,4,5,6,7,8,9,10]
copy_list=lists[0:] # 拷贝一份列表数据
lists[0]='aaa'
print(copy_list)
print(lists[0:2])

取字符串 :

key="123ABCDEDG"
print(key[0:2]) #12

3.迭代/遍历

dic = {
  "a":1,
  "b":2,
  "c":3
}
# 遍历key
for key in dic:
	print(key)

# 遍历value
for values in dic.values():
	print(values)

#同时遍历key,value
for key,value in dic.items():
	print(key+':'+str(value))

遍历列表类型:

lists=["a","b","c","d"]
# 遍历key
for values in lists:
	print(values)

# list无索引,可使用enumerate函数
for key,values in enumerate(lists):
	print(key,values)

九九表:

for i in range(1,10):
  str1=''
  for j in range(1,i+1):
	  str1+=" "+str(i)+'*'+str(j)
  print(str1)
a=list(range(1,10)) # [1, 2, 3, 4, 5, 6, 7, 8, 9]
b=[x*x for x in a]  # [1, 4, 9, 16, 25, 36, 49, 64, 81]
print(b)

可以添加条件以及多重循环。

a=list(range(1,10)) # [1, 2, 3, 4, 5, 6, 7, 8, 9]
b=[x*x for x in a if x%2 == 0]  # [4, 16, 36, 64]
c='ABC'
d='123'
print([m+n for m in c for n in d]) # ['A1', 'A2', 'A3', 'B1', 'B2', 'B3', 'C1', 'C2', 'C3']

4.模块化

使用import导入包名,在同一目录下可以直接import + 文件名
tools.py

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
__author__ = 'Mango'
count=0;
_name="luoj";
def __greet__():
	return "hello,world"
# 求列表中数字平均数
def avg(lists=[]):
    init=0;
    for values in lists:
        init+=values
    return init/len(lists)
print(__name__)  #__main__
if(__name__=='__main__'):
    print(avg([2,8]))

python内置了__name__变量 如果你在命令行直接执行了 python tools.py ,则__name__=='main' 代表这个文件作为主程序入口 如果你在其他文件下引入tools.py ,则这个文件不是主程序入口,此时tools.py下的__name__=='tools',而作为主程序的main.py下的__name__=='main'

import tools
print(__name__)  #__main__
print(tools.count) # 0
print(tools.__greet__()) # 
print(tools._name)

import时不必考虑变量名冲突问题,python内部已经处理好了。此外可以使用from语句导入模块中特定的变量,例如:

from fibo import fib, fib2