python知识简单总结 - 语言基础 (一)

语言基础

基础知识

pycharm快捷键

  • 快速复制

    光标定位到某行或者选中很多行 crtl/command + d

  • 注释

    光标定位到某行或者选中很多行 crtl/command + /

  • 删除(剪切)

    光标定位到某行或者选中很多行 crtl/command + d

pycharm 简单设置

  • python模版文件设置

    command + , -> Editor -> Code Style -> File and Code Templaates -> Python Script

  • 解释器修改

    command + , -> Project:Pycharm Project -> Project Interpreter -> Project Interpreter:

  • 安装python模块
    ps: 另外一种方法是通过pip来进行安装。

    command + , -> Project:Pycharm Project -> Project Interpreter -> 点击”+“,-> 搜索框输入要安装的模块 -> 点击左下方的 -> Install Package

第一个程序

#!/usr/bin/env python
#-*- coding:utf-8 -*-
#Authour fei.wang
#Date:

print("hello")

备注:

1,2行为固定的写法(必须),3 4行是规范,标明作者和脚本新建时间。
第1行 表示python解释器。
第2行 表示脚本的编码格式。

字符串

定义一个字符串

>>> name = "wangfei"
>>> print(name)
wangfei
>>> print(type(name))
<class ‘str‘>

字符串切片

>>> name[0]
‘w‘
>>> name[1]
‘a‘
>>> name[0:]
‘wangfei‘
>>> name[0:4]
‘wang‘

格式化字符

>>> print("name: %s" %name)
name: wangfei
>>> print("name:{}".format(name))
name:wangfei
>>> age = 18
>>> print("name:{} age:{}".format(name,age))
name:wangfei age:18

字符串内建函数

startswith

>>> cmd = "ifconfig -a"
>>> cmd.startswith("if")
True
>>> if cmd.startswith("if"):
...     print("ok")
...
ok

endswitch

>>> cmd2 = "hellow boy"
>>> if cmd2.endswith("boy"):
...     print("ok")
... else:
...     print("no")
...
ok

replace

>>> cmd2.replace("boy","girl")
‘hellow girl‘

split 切割

>>> v = "a.b.c.d.e.f"
>>> v.split(".")
[‘a‘, ‘b‘, ‘c‘, ‘d‘, ‘e‘, ‘f‘]

join

>>> li = v.split(".")
>>> "+".join(li)
‘a+b+c+d+e+f‘

list

特性 :有序 可重复 可迭代 可嵌套

>>> li = [1,2,3,4,4]
>>> li[0]
1
>>> li.append("5")
>>> li
[1, 2, 3, 4, 4, ‘5‘]
>>> li.pop()
‘5‘
>>> li.pop()
4
>>> li.pop()
4
>>> li.pop()
3
>>> li = [1,2,3,4,4]
>>> for iter in li:
...     print(iter)
...
1
2
3
4
4

dict

特性: 无序,key values ,key唯一,可嵌套

>>> name = {"k1":"v1","k2":"v2","k3":"v3","k4":[1,2,3,4,5,6,7]}
>>> name["k1"]
‘v1‘
>>> name["k4"]
[1, 2, 3, 4, 5, 6, 7]
>>> name["k4"][0]
1
>>> name["k4"][-1]
7
>>> name["k5"]="v5"
>>> name
{‘k5‘: ‘v5‘, ‘k2‘: ‘v2‘, ‘k4‘: [1, 2, 3, 4, 5, 6, 7], ‘k3‘: ‘v3‘, ‘k1‘: ‘v1‘}
>>> del name["k5"]
>>> name
{‘k2‘: ‘v2‘, ‘k4‘: [1, 2, 3, 4, 5, 6, 7], ‘k3‘: ‘v3‘, ‘k1‘: ‘v1‘}
>>> name["k5"]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: ‘k5‘

>>> for k in name:
...     print("key:{},values:{}".format(k,name[k]))
...
key:k2,values:v2
key:k4,values:[1, 2, 3, 4, 5, 6, 7]
key:k3,values:v3
key:k1,values:v1

条件判断

if

num = 3
if num > 2 :
    print("{} > 2".format(num))
else:
    print("{} < 2".format(num))

例子:

import os
cmd = "ifconfig -a"

if cmd.startswith("rm"):
    print("forbid command.")
else:
    os.system(cmd)

循环

for

for num in range(9):
print(num)

# break 中止循环
for num in range(9):
    if num > 8:
        break
    print(num)

# continue 跳出本层循环
for num in range(9):
if num == 8:
    continue
print(num)

while

import  time
while True:
    time.sleep(2)
    print("aaa")

数据结构

函数

函数的定义和执行

def func():
    print("hellow")

func()

函数的返回值

def func():
    print("hellow")
    return "hellow"

# 默认返回是None

re = func()
print(re)

局部变量和全局变量

num = 10 # 全局变量
def func():
    num = 1 # 局部变量
    print("hellow")

func()

往函数里去传参数

# 形式参数
def func(name,age):
    print("name {},age {}".format(name,age))

func("wf","18")

# 默认参数
def func(name,age=18):
    print("name {},age {}".format(name,age))

func("wf","27")

# 位置参数
def func(name,age=18):
    print("name {},age {}".format(name,age))

func(age = 18,name = "wf")

# 传入多参数

def func(*args):
print(args)
for Iter in args:
    print(Iter)

li = [1,2,3,4,5]
func(*li)

# 传入key values
def func(**kwargs):
print(kwargs["name"],kwargs["age"])

msg = {"name":"wf","age":18}
func(**msg) 

# 万能参数
def func(*args,**kwargs):
print(‘‘‘
args:{}
kwargs:{}‘‘‘.format(args,kwargs))

li = [1,2,3,4]
msg = {"name":"wf","age":18}
func(*li,**msg)
  • 列子实战:

文件清理脚本

import  os

def remove_file(path,tag):
for Iter in os.walk(path):
    for file in Iter[-1]:
        file_abspath = Iter[0] + "/" + file
        if file_abspath.endswith("txt"):
            print("remove file:{}".format(file_abspath))
            #os.remove(file_abspath)

if __name__ == "__main__":
# path = input("path:> ")
path = "/Users/feiwang/PycharmProjects/python-study2/work/test"
# tag = input("tag")
tag = "txt"

remove_file(path,tag)

装饰器

def f0(func):
    def wrapper(*args,**kwargs):
        print("hello")
        func()
        print("bye")
    return wrapper

@f0
def f1():
    print("my name is wf.")

f1()

模块

导入模块

import 模块
from 模块 import 方法
from 文件夹路径.模块 import 方法
from 文件夹路径.模块  import 方法 as 别名

json

序列化 反序列化

import json

dic = {
    "name":"wf",
    "age":"18",
    "sex":"man",
    "salary":20000,
    "interest":["read",
                "game",
                "music"],}

re  = json.dumps(dic) # 序列化;把字典变成字符串
print(type(re))

dic2 = json.loads(re) # 反序列化;把字符串变成字典
print(type(dic2))

例子:

使用requests 从api接口获取json格式的数据,并进行反序列化。

import  requests
import json

para = {‘token‘: ‘HPcWR7l4NJNJ‘, ‘name‘: ‘adminset‘}
# 参数拼接
r = requests.get("http://115.28.147.154/cmdb/get/host/", params = para)
data = r.text
print(r.url) # 显示拼接的url

d1 = json.loads(data)
print(type(d1))

文件操作

文件打开模式 参考链接

open直接打开

file = open("url_list.txt","r")
# re = file.read # 读取文件所有行
# re = file.readline() # 一行一行的读取文件内容
re = file.readlines() # 读取所有的文件内容,返回的是一个列表
print(re)
file.close()

with 上下文处理(推荐)

with open("url_list.txt","r") as file:
    # re = file.read # 读取文件所有行
    # re = file.readline() # 一行一行的读取
    re = file.readlines()  # 读取文件的所有行,返回的是一个列表
    print(re)

列子:

对一个日志文件内容进行处理,处理后的内容单独的放到一个文件里。
要求:每次打开时,应该接着上一次的内容位置进行处理,而不是从头再开始。

from  time import  ctime
import  os
import  time

tag = 0
while True:
    with open("url_list.txt","rb+") as file ,open("url_list.log","ab+") as log_file:
        file.seek(tag) # 挪动文件指针,到指定位置
        while True:
            line = file.readline()
            if line:
                new_line = str(ctime()) + "  -  " + str(line,encoding="utf-8")
                print(new_line)
                log_file.write(bytes(new_line,encoding="utf-8"))
            else:
                break
        tag = file.tell()  # 获取文件指针位置

    time.sleep(2)
    print("-"*50)

原文地址:http://blog.51cto.com/damaicha/2122647

时间: 2024-10-14 00:57:11

python知识简单总结 - 语言基础 (一)的相关文章

Python学习笔记之语言基础与流程控制

Python简介 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承. Python的特点 Python 优点 1.简单.优雅.明确 2.强大的模块第三方库 3.易移植 4.纯面向对象语言 5.可扩展性良好(c\java\c#...) Python缺点 1.代码不能加密 2.执行速度慢 Python能做什么 1.软件开发 1.游戏后台.搜索.图形界面 2.

Python源码剖析笔记0 ——C语言基础

python源码剖析笔记0--C语言基础回顾 要分析python源码,C语言的基础不能少,特别是指针和结构体等知识.这篇文章先回顾C语言基础,方便后续代码的阅读. 1 关于ELF文件 linux中的C编译得到的目标文件和可执行文件都是ELF格式的,可执行文件中以segment来划分,目标文件中,我们是以section划分.一个segment包含一个或多个section,通过readelf命令可以看到完整的section和segment信息.看一个栗子: char pear[40]; static

软件入门的知识之程序设计语言Java和C#的简单介绍和对比[图]

软件入门的知识之程序设计语言Java和C#的简单介绍和对比[图]:前言:要做软件就必然会涉及到程序设计语言,它是什么?有哪些特点?又有哪几部分组成的呢?在这里我们为大家做了一个总结,希望可以通过这些内容让大家对于程序设计语言有一个大概的认识.基本概念:1.低级/高级计算机的硬件只可以识别由1.0组成的机器指令程序,所以机器指令是最基本的计算机语言.由于机器指令是由特定的计算机系统所固有的.面向机器的语言,所以使用机器语言进行程序设计,效率低.可读性差.难以理解,而且也不便修改和维护.后来出现了由

【软考】【软件设计师】【知识模块】【第2章:程序设计语言基础知识】

程序设计语言基础知识 2.1 程序设计语言概述 2.1.1  程序设计语言基本概念 低级语言,面向机器的语言,如汇编语言.机器语言: 特性:进行程序设计效率低,程序的可读性差,难以修改.维护,优势是运行速度特别快: 高级语言,面向各类应用的程序设计语言.如C.C++ .Java.Python.Delphi .Pascal.Php 语言处理程序:负责将高级语言翻译成计算机能理解的0和1的程序: 语言之间的翻译基本方式: 汇编.解释.编译: 汇编:对使用汇编语言写成的源程序进行翻译成目标程序(机器可

OC语言基础知识

OC语言基础知识 一.面向对象 OC语言是面向对象的,c语言是面向过程的,面向对象和面向过程只是解决问题的两种思考方式,面向过程关注的是解决问题涉及的步骤,面向对象关注的是设计能够实现解决问题所需功能的类. 术语:OO面向对象.OOP面向对象编程 二.类 (一)关于类 类的设计只关注三个东西:类名.属性和方法 注意:一般名词都是类,拥有相同属性和行为的对象都可以抽象为一个类,类名是标识符的一种,需要符合规范,通常类名的第一个字母大写,且不能有下划线,如果有多个单词则使用驼峰标识.在对方法进行类的

[Python学习笔记1]Python语言基础 数学运算符 字符串 列表

这个系列是我在学习Python语言的过程中记录的笔记,主要是一些知识点汇总,而非学习教程,可供有一定编程基础者参考.文中偏见和不足难以避免,仅供参考,欢迎批评指正. 本系列笔记主要参考文献是官网文档:http://docs.python.org/.在此向文档编辑者致谢.请勿将本文用于商业用途. 一.Python语言介绍 首先,Python是一种广泛应用的通用高级编程语言,具有较高的抽象层次,支持面向对象的编程方法.其具有高级的数据结构和许多方便的库文件,可以完成文件IO.系统调用.网络编程,甚至

李洪强iOS开发之OC语言基础知识

OC语言基础知识 一.面向对象 OC语言是面向对象的,c语言是面向过程的,面向对象和面向过程只是解决问题的两种思考方式,面向过程关注的是解决问题涉及的步骤,面向对象关注的是设计能够实现解决问题所需功能的类. 术语:OO面向对象.OOP面向对象编程   二.类 (一)关于类 类的设计只关注三个东西:类名.属性和方法 注意:一般名词都是类,拥有相同属性和行为的对象都可以抽象为一个类,类名是标识符的一种,需要符合规范,通常类名的第一个字母大写,且不能有下划线,如果有多个单词则使用驼峰标识.在对方法进行

windows上Python开发--3.Django的基础知识

最近两天下了班,没事学习了django的开发,今天做个总结.其实大家可以从百度,google搜到一些django的入门视频,初步了解一下django的框架.学习一些基础的概念和知识.本篇主要是对自己这两天做的做个总结. 1.创建第一个views.py 上一篇文章我们在windows上搭建好了django的开发环境并建立一个测试demo. 在settings.py的同级目录下新建views.py目录.并输入以下代码 from django.http import HttpResponse def

java--学习java从这里开始:Java语言基础(1)《基础知识篇》--黑马程序员

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- Java语言基础(1) 从这篇日记开始说一些关于java的语言基础知识, 1  Java语言概述 java的创始人——詹姆斯·高斯林(James Gosling) 1977年获得了加拿大卡尔加里大学计算机科学学士学位,1983年获得了美国卡内基梅隆大学计算机科学博士学位,毕业后到IBM工作,设计IBM第7一代工作站NeWS系统,但不受重视.后来转至Sun公司,1990年,与Patrick,Na