Python的简单使用(一)

python简介
1、python是一种解释性语言,不需要编译,类似于php
2、Python是交互式语言,可以直接执行python进入交互页面
3、面向对象编程
 
如果输出有中文需要指定编码
# -*- coding: UTF-8 -*-
 
如何运行python
第一行代码#!/usr/bin/env python作用用来指定Python的解释器
可以写成 ./test.py运行文件否则报错
也可以python test.py运行
 
b=a和b=a[:]区别
b=a将两者指向同一个对象
b=a[:]会创建一个新的与a完全相同的对象,但是与a并不指向同一对象。
 
import sys的作用与用法
import sys 引入 python 标准库中的 sys.py 模块;这是引入某一模块的方法。
用法
sys.argv 是一个包含命令行参数的列表。
sys.path 包含了一个 Python 解释器自动查找所需模块的路径的列表。
sys.exit()退出程序
sys.version()获取版本信息
sys.maxint()获取最大值
sys.platform()返回模块的搜索路径
sys.getrecursionlimt()获取最大递归层级
 
import os的作用 详情见手册
os 模块提供了非常丰富的方法用来处理文件和目录
 
什么是i/o操作
 
nonlocal声明的变量不是局部变量,也不是全局变量,而是外部嵌套函数内的变量。
global修改全局变量
 
 
元组和集合是不可以修改,数组和列表和字典都可以修改,元组不能修改也不能追加,除非元组里面有数组,可以更改数组
 
python内置函数的调用
# 内置函数的调用
from functools import wraps


def test(fun):
    # *:元组 **:字典 内置函数
    @wraps(fun)  # 必须要引用warps来确保原函数在使用装饰器时不改变自身的函数名及应有属性。
    def warp(*args, **kwargs):
        print("this is begin...")
        fun(*args, **kwargs)
        print("this is end...")
    return warp


# 对handle_event方法进行包装
@test
def handle_event(*args, **kwargs):
    print("this is service")

handle_event()
#输出结果
this is begin...
this is service
this is end...

  

 
nonloca的使用

# nonlocal的使用
def handle_test():
num = 10

def inner():
nonlocal num
num = 100
print(num)

inner()
print(num)

handle_test() # 100 100
 

 取出数组中的key,val值

for key,val in enumerate(names):
    print(names[key], scores[key])

 

取出字典dict中的key,val值

for key,val in dict.items():
    print(key,val)

 

获取字典dict中所有的value

# 获取所有的value
for val in d.values():
    print(val)

 

set的简单使用,使用set去重,求交集、差集、并集

x = set('hobby')
y = set('rabbit')
# 集合中重复的值会被删除 {'b', 'o', 'y', 'h'} {'a', 'i', 'b', 't', 'r'}
print(x,y)
# 并集 b  {'o', 'a', 'y', 'h', 'i', 'b', 't', 'r'}
print(x | y)
# 交集 {'b'}
print(x & y)
# 差集 {'o', 'h', 'y'}
print(x - y)
print(y-x)

 

set区分大小写

# set是区分大小写的  输出:bob不是我们班的同学
students = set(['Alices', 'Bob', 'Candy', 'David', 'Ellena'])
# 请问'bob'是班里面的同学吗?
if 'bob' in students:
    print('True')
else:
    print('{}不是我们班的同学'.format('bob'))

 

# 请问'bob'是班里面的同学吗?
# 由于name_set不能识别小写的名字,请改进name_set,是小写的名字也能判断在name_set里面。
names_bob = 'bob'
for keys in students:
    keys = keys.lower()
    if 'bob' in keys:
        print('{}是我们班同学'.format(names_bob))

 给集合追加、删除、清空元素

 

# 给集合追加一个元素
students.add('insert')

# 给元素追加多个元素
ins_list = ['one', 'two', 'three']
students.update(ins_list)
print(students)
# 删除set中的元素
students.remove('one')
print(students)

# discard,删除集合中没有的元素不会报错
students.discard('two')
print(students)

# 清空set中所有的元素
students.clear()
print(students)
 

 *args和**kwargs的区别:元组和字典的区别

# 编写一个函数,它接受关键字参数names,gender,age三个list,分别包含同学的名字、性别和年龄,请分别把每个同学的名字、性别和年龄打印出来
def info(**kwargs):
    names = kwargs['names']
    gender_list = kwargs['gender']
    age_list = kwargs['age']
    index = 0
    for name in names:
        gender = gender_list[index]
        age = age_list[index]
        print('name: {}, gender: {}, age: {}'.format(name, gender, age))
        index += 1

info(names = ['Alice', 'Bob', 'Candy'], gender = ['girl', 'boy', 'girl'], age = [16, 17, 15])
def average(*args):
    sum = 0
    if len(args) == 0:
        return sum
    for item in args:
        sum += item
    avg = sum / len(args)
    return avg
average(1, 2) # ==> 1.5
average(1, 2, 2, 3, 4) # ==> 2.4

 

请练习定义一个动物类,并创建出两个实例dogcat,打印实例,再比较两个实例是否相等。

 
class Person:
    count = 0
    count_self = 0

    def __init__(self, name, age):
        self.name = name
        self.age = age
        # Person.count相当于静态变量,是类的变量,初始值为0,实例化一次+1
        # self.count 是实例的变量,也叫对象的变量。如果这样写,不会计数
        Person.count += 1


xiao_xue = Person('xiaoxue', 18)
xiao_ming = Person('xiaoming', 19)
print(Person.count)

 

format语法
# <内容居左 一共10个字符 不足10个用“=”填充 效果:开始执行======
str1 = '{x:=<10}'.format(x='开始执行')
print(str1)

# >内容居右 一共10个字符 不足10个用“=”填充 效果:======开始执行
str2 = '{x:=>10}'.format(x='开始执行')
print(str2)

# ^内容居中 一共10个字符 不足10个用“=”填充 效果:===开始执行===
str3 = '{x:=^10}'.format(x='开始执行')
print(str3)

# 保留三位小数 四舍五入
str4 = '{salary:.3f}'.format(salary=123123.123956)
print(str4)

 

‘f语法

# f'语法
# 如何给f字符串中变量值加{}
x = 'egon'
y = 18
res = f'name:{{{x}}} age:{y}'
print(res)

# 如何给f字符串中运算
res = f'{10 + 3}'
print(res)

 

posted @ 2020-07-05 17:41  搬砖小天使  阅读(519)  评论(0编辑  收藏  举报