Python有自己的常用模块,用import导入
定义自己的模块并导入:
- Python里一个文件就是一个模块,模块名就是文件名。所以创建py文档即可
- 注意当前的文件与要引用的目录要在同一个目录下
- 不加后缀
- 使用模块的方法时,前面要加上mok
例子:
import test
test.test1()
Python有自己的常用模块,用import导入
定义自己的模块并导入:
例子:
import test
test.test1()
可变个数的参数,使用*+变量名
def test(*n):
print(n)
test()
test(1)
test(3)
则输出的是元组
如果有可变个数参数,则需要放在其他参数的后面
函数和字典结合使用:
def test(n,a):
d = {'name': n, 'age': a}
return d
print(test('siki','18'))
函数和列表结合使用:
如果给函数传递了列表,则函数里的会对原列表进行修改,例如:
l = [ 'siki' , 'libai' , 'dufu' ]
def test(l):
del(l[1])
test(l)
print(l)
则l里的‘libai’会删掉
如何不使原函数发生变化?复制一份,例如:
l = [ 'siki' , 'libai' , 'dufu' ]
def test(l):
del(l[1])
test(l[:])
print(l)
全局变量和局部变量重名的情况:
1. 访问局部(这个函数自己)时,会使用局部变量的值
2. 在函数外访问这个变量时,会使用全局变量
在局部里修改全局的值:
用 global + 变量名,例如:
name = 'globalname'
def test():
global name
name = 'localname'
print(name)
test()
print(name)
局部变量:仅在局部作用域作用,在函数内定义的变量
全局变量:全局有用,在函数外定义的变量
定义函数时,给默认值
def add(a,b=10,c=8):
print(a+b+c)
add(a=1, c=6)
参数的类型:
1. 位置参数
按照位置调用
2. 关键字参数
1. print('hello', end='')
print('world')
则不会换行,则end为关键字参数
2. print('hello', 'world', sep = '-')
sep可以决定两个字符之间的链接符号
1. 放在正常参数的后面
2. 各个关键字参数之间先后顺序无所谓
def add(a,b):
print(a+b)
add(a=1,b=9)
1. 返回值
def add(a,b):
res = a + b
return res
res = add(5,19)
print(res)
1.1 返回值:
1.2 函数的调用:
是按照位置调用的,不可以调换位置,也不可以少写
2. none值
数值类型:NoneType,这个类型里只有none,类似布尔类型只有两个值
适用情况:函数没有返回值时
增加函数的灵活性,给函数加参数:
def hello(name):
print('hello' + name)
hello('siki')
hello('mike')
则 hello(name)里的name是给的变量,后面调用hello时括号里给出变量
name:形参
siki mike:实参
给多个参数:
def add(a,b):
res = a + b
print(res)
add(5,19)
两个参数之间用逗号
函数类型:
1. 内置函数
2. 自定义函数
方法:
def methodName():
Methodbody
讲解:
def 是定义一个函数(注意加:)
methodname是方法名,自己定义的
methodbody是方法体,前面有缩进,方法体可以包含多行语句
自定义函数的目的:方便调用多次使用的代码
1. 利用while给字典输入数据:
d = {}
while True:
key = input('input key:')
value = input('input value:')
d[key]=value
res = input('any new key or value? (yes/no)')
if res == 'no':
break
print(d)
2. 把print的输出不换行
原理:当print后不进行定义时,则默认是 end='\n', 即换行
print(i, end='\n')
因此,删去\n就不会换行了,中间可以加自己想用的分隔符,如空格、横杠等
所以在i后面添加多个\n时,可以进行多个换行
1. 将一个列表的值移到另一个列表:
l1 = [ 'sz' , 'gz' , 'bj' , 'hk' ]
l2 = [ ]
while l1 :
l2.append(l1.pop())
print(l1)
print(l2)
如果在while后面加个列表,如上面,则列表不为空时,返回结果为true;为空则为false
2. 把列表里的某一个值(可能重复)全部移除:
l = [ 'sz' , 'gz' , 'bj' , 'hk' , 'sz' , 'sz' ]
while 'sz' in l:
l.remove('sz')
print(l)
遍历列表
1. 遍历列表用for循环比较方便
2. 用while循环列表:
l = [ 'sz' , 'gz' , 'bj' , 'hk' ]
i = 0
#len(l)-1是最大索引值
while i <= len(l)-1:
print(l[i])
i += 1
遍历字典:
d = { 'name' : 'siki' , 'age' : 90}
#d.keys()可以获得所有的键
i = 0
keyList = list(d.keys())
while i <len(keyList):
key = keyList[i]
value = d[key]
print(key,value)
i += 1
下面这个代码,会导致即使输入了0,也会再操作一次再停止
i = 1
while i != 0 :
i = int(input('input number:'))
if i %2 == 0 :
print('oushu')
print(i)
方法一:
he = 0
i = -1
while he <= 100 :
i = int(input('input int:'))
he += i
print(he)
方法二:用标注位
he = 0
i = -1
flag = True
while he <= 100 :
i = int(input('input int:'))
he += i
if he>100:
flag = False
print(he)
方法三:利用break
he = 0
i = -1
while True :
i = int(input('input int:'))
he += i
if he>100:
break
print(he)
方法一:
he = 0
i = -1
while i != 0 :
i = int(input())
he += i
print(he)
这里在最开始给i赋值为-1,不影响循环,因为while里是用用户输入的覆盖了
自己的方法:
he = 0
print('input a number')
i = int(input())
while i != 0:
he += i
print('input a number')
i = int(input())
print(he)
这里的提示句可以直接写到input里,如input(’请输入一个数字:’)
方法一,用for:
he = 0
for i in range(1,101):
he += i
print(he)
方法二,用while:
he = 0
i = 1
while i < 101:
he += i
i += 1
print(he)
while循环类似for遍历,二者在不同的情况下好用
while循环体的语句:
while True:
do xx
当while后面接的语句为true时,则会一直循环下面的命令(如果没有终止条件,属于死循环)
如:
i = 1
while i<=10:
print(i)
i += 1
(最后i其实是11了)
判断键是否在字典里:
res = 'gender' in stu1.keys()
print (res)
判断值是否在字典里:
res = 'siki' in stu1.values()
print (res)
如果是siki' in stu1,则默认是判断是否在键里
设置键的默认值:
stu1.setdefault('name','micheal')
取得键值对的集合:
主要为了方便遍历键值对
方式:stu1.items()
相当于形成了元祖
使用方法:
1. 遍历方法:
for i in stu1.items():
print(i)
如果用print(i[0] , i[1]),则是分别打印出每个键值对的键和值,也可以用如下的方法:
for k,v in stu1.items():
print(k,v)
2. 生成列表
items = list(stu1.items())
print(items)