Python学习笔记 #5 函数

作者: 时间: 2019-08-22 评论: 暂无评论

1,定义

 def 函数名(参数列表):
    函数体

2.传值
传递的是可变类型,值将被改变
传递的是不可变类型,值被复制了一份传入函数,原有值不变

def change(a):
    a += 1
    return a


b = 10
change(b)
print(b)  # 输出10

def change2(list):
    list.append(33)
    list.append(44)


list = [11, 22]
change2(list)
print(list)  # [11, 22, 33, 44]

3.参数

关键字参数 ,允许函数调用使用关键字参数来确定传入的参数值

def printinfo(name, age):
    "打印任何传入的字符串"
    print("名字: ", name)
    print("年龄: ", age)
    return


# 调用printinfo函数
printinfo(age=50, name="runoob")
'''
名字:  runoob
年龄:  50
'''

不定长参数

#加了1个星号 * 的参数会以元组(tuple)的形式导入,存放所有未命名的变量参数
# 可写函数说明
def printinfo(arg1, *vartuple):
    "打印任何传入的参数"
    print("输出: ")
    print(arg1)
    print(vartuple)

# 调用printinfo 函数
printinfo(70, 60, 50)
'''
70
(60, 50)
'''

#加了两个星号 ** 的参数会以字典的形式导入。
def printinfo(arg1, **vardict):
    "打印任何传入的参数"
    print("输出: ")
    print(arg1)
    print(vardict)
# 调用printinfo 函数
printinfo(1, a=2, b=3)
'''
输出: 
1
{'a': 2, 'b': 3}
'''

#参数中星号 * 可以单独出现,调用的时候必须传入关键字
def f(a,b,*,c):
    return a+b+c
print(f(1,2,c=10))

# global,nonlocal关键字

a, b, c = 0, 0, 0  # 这是一个全局变量


global 和 nonlocal关键字
def sum():
    # 返回2个参数的和."
    global b  # 声明变量
    a = 1
    b = 1
    c = 1

    def kk():
        nonlocal c  # 声明变量 外部变量
        c = 2

    kk()
    print(c)  # 2


sum()
print(a)  # 0
print(b)  # 1

Python学习笔记 #3 条件,循环语句

作者: 时间: 2019-08-22 评论: 暂无评论

if

# if
# 1 每个条件后面要使用冒号 :,表示接下来是满足条件后要执行的语句块
# 2 在Python中没有switch – case语句。
max = int(input('输入一个正数:'))   #input() 等待用户输入
a = 0
while (a < max):
    if a % 3 == 1:
        print(str(a) + '余数1')
    elif (a % 3 == 2):
        print(str(a) + '余数2')
    else:
        print(str(a) + '余数0')
    a = a + 1
else:
    print('结束了')

#for

list = [9, 1, 3, 4]
for item in list:
    print(item)

for i in range(2, 10, 2):  # range(10) range(2,10)  range(2,10,2)   range(start,end,step)
    print(i)

list(range(10))  # 创建一个列表

Python学习笔记 #2 变量类型

作者: 时间: 2018-11-22 评论: 暂无评论

1.数字(不可变数据)
int(有符号整型)
long(长整型[也可以代表八进制和十六进制])
float(浮点型)
complex(复数)

a=100
del a #删除变量

运算方式跟PHP差不多,除了下面几个
2 / 4 # 除法,得到一个浮点数
2 // 4 # 除法,得到一个整数
2 ** 5 # 乘方

2.字符串(不可变数据)
A B C D E F
0 1 2 3 4 5
-6-5-4-3-2-1
可以用 [头下标:尾下标] 截取字符串

str = 'Runoob'
print (str)          # 输出字符串
print (str[0:-1])    # 输出第一个到倒数第二个的所有字符
print (str[0])       # 输出字符串第一个字符
print (str[2:5])     # 输出从第三个开始到第五个的字符
print (str[2:])      # 输出从第三个开始的后的所有字符
print (str * 2)      # *输出字符串两次*
print (str + "TEST") # *连接字符串*

3.元组(不可变数据)
元组写在小括号 () 里,元素之间用逗号隔开

tuple = ( 'abcd', 786 , 2.23, 'runoob', 70.2  )
tinytuple = (123, 'runoob')
 
print (tuple)             # 输出完整元组
print (tuple[0])          # 输出元组的第一个元素
print (tuple[1:3])        # 输出从第二个元素开始到第三个元素
print (tuple[2:])         # 输出从第三个元素开始的所有元素
print (tinytuple * 2)     # 输出两次元组
print (tuple + tinytuple) # 连接元组

4.列表(可变)
列表是写在方括号 [] 之间、用逗号分隔开的元素列表。
和字符串一样,列表同样可以被索引和截取,列表被截取后返回一个包含所需元素的新列表。
变量[头下标:尾下标]
加号 + 是列表连接运算符,星号 * 是重复操作

5.集合
可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
创建格式:parame = {value01,value02,...} 或者 set(value)

a = set('abcdefg')
b = set('abcde')
print(a)  # {'b', 'd', 'c', 'a', 'g', 'e', 'f'}
print(a - b)  # a 和 b 的差集  {'g', 'f'}
print(a | b)  # a 和 b 的并集 {'c', 'b', 'e', 'g', 'a', 'd', 'f'}
print(a & b)  # a 和 b 的交集  {'c', 'b', 'e', 'a', 'd'}
print(a ^ b)  # a 和 b 中不同时存在的元 {'g', 'f'}

6.字典 (类似js对象,也有keys(),values()方法)
列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
字典是一种映射类型,字典用"{ }"标识,它是一个无序的键(key) : 值(value)对集合。
键(key)必须使用不可变类型。
在同一个字典中,键(key)必须是唯一的。

dict = {}
dict['one'] = "1 - 菜鸟教程"
dict[2] = "2 - 菜鸟工具"

tinydict = {'name': 'runoob', 'code': 1, 'site': 'www.runoob.com'}
print(dict['one'])  # 输出键为 'one' 的值
print(dict[2])  # 输出键为 2 的值
print(tinydict)  # 输出完整的字典
print(tinydict.keys())  # 输出所有键 dict_keys(['name', 'code', 'site'])
print(tinydict.values())  # 输出所有值  dict_values(['runoob', 1, 'www.runoob.com'])

构造函数 dict() 可以直接从键值对序列中构建字典如下:

dict([('Runoob', 1), ('Google', 2), ('Taobao', 3)])  # {'Taobao': 3, 'Runoob': 1, 'Google': 2}

{x: x ** 2 for x in (2, 4, 6)}  # {2: 4, 4: 16, 6: 36}

dict(Runoob=1, Google=2, Taobao=3)  # {'Runoob': 1, 'Google': 2, 'Taobao': 3}

6.判断变量类型 isinstance 和type
isinstance 和 type 的区别在于:

type()不会认为子类是一种父类类型。
isinstance()会认为子类是一种父类类型。

7.类型转换

int(x [,base])

将x转换为一个整数

float(x)

将x转换到一个浮点数

complex(real [,imag])

创建一个复数

str(x)

将对象 x 转换为字符串

repr(x)

将对象 x 转换为表达式字符串

eval(str)

用来计算在字符串中的有效Python表达式,并返回一个对象

tuple(s)

将序列 s 转换为一个元组

list(s)

将序列 s 转换为一个列表

set(s)

转换为可变集合

dict(d)

创建一个字典。d 必须是一个 (key, value)元组序列。

frozenset(s)

转换为不可变集合

chr(x)

将一个整数转换为一个字符

ord(x)

将一个字符转换为它的整数值

hex(x)

将一个整数转换为一个十六进制字符串

oct(x)

将一个整数转换为一个八进制字符串

Python学习笔记 #1 基础语法

作者: 时间: 2018-11-22 评论: 暂无评论

前言:

本片学习笔记来自https://www.runoob.com。只会记录一些与php不一样的编程方式,建议去看原文或w3cschool

1.注释:可以用多个 # 号,还有 ''' 和 ""
2.缩进:用缩进代替{},注意if后面的 :。Python可以在同一行中使用多条语句,语句之间使用分号(;)分割

# 缩进不一致,会导致运行错误
a = 1;b = 2
if a < b:
    print("Answer")
else:
    print("Answer")

3.字符串的表示
变量[头下标:尾下标:步长]

print(str[0:-1])           # 输出第一个到倒数第二个的所有字符
print(str[0])              # 输出字符串第一个字符
print(str[2:5])            # 输出从第三个开始到第五个的字符
print(str[2:])             # 输出从第三个开始的后的所有字符
print(str * 2)             # 输出字符串两次

4.模块导入用 import 与 from...import

import sys #sys 是系统模块
from sys import argv,path  #  导入特定的成员

DB.py

DB_HOST='127.0.0.1'
DB_PWD='123456'

main.py

from DB import DB_HOST
print(DB_HOST)
  1. print('dd',end='') # end='' 不换行