python学习笔记之python基本知识
1.python概述
python是一种解释型的、面向对象的、带有动态语义的高级程序设计语言。 python优点 •简单、优雅、明确 •有强大的第三方库模块 •可跨平台移植 •一种面向对象的语言 python缺点 •代码执行速度慢,相比C语言,不过现在python的异步并发框架导致执行速度慢; •python是开源的编程语言,代码不能加密;
2.Python的安装
访问python官网,下载不同平台下的python软件; 软件下载: www.python.org ipython: IPython 是一个 python 的交互式 shell,比默认的python shell 好用得多,支持变量自动补全,自动缩进, 支持 bash shell 命令,内置了许多很有用的功能和函数。 vim: 第一行指定解释器位置: #!/usr/bin/env python #!/usr/bin/python 指定编码格式: #coding:utf-8 (ASCII, Unicode, GB2312, utf-8 ) 添加执行权限 IDE工具Pycharm: 解压到/opt目录; cd {dir/home}/bin;./pycharm.sh; pycharm的设置信息保存在~/.PyCharmCE2017.1; charm & Linux操作系统上一般iso镜像里面自带,直接通过yum安装;(执行 yum install python -y) 注意点: python2.6是一个过渡版本,既可以执行,又包含python3.0的新特性; 现在企业实战应用python版本为2.7版本; python2.7是python2.x系列最后一个版本,不会再有python3.0;
查看python版本
3.python脚本
vim:
第一行指定解释器位置: #!/usr/bin/env python #!/usr/bin/python
指定编码格式: #coding:utf-8 (ASCII, Unicode, GB2312, utf-8 )
添加执行权限:chmod +x filename.py
4.python的基本数据类型
<1>输入输出 1. input接收数值类型数据: 2. raw_input接收字符串类型的数据: 3. 输出print 练习1:输入年份判断是否为闰年 练习2:输入用户名及密码并打印 练习3:print 输出 及“”“的使用
练习4:输入三门科目成绩计算平均分练习5:用户登陆
练习: 写一程序,录入信息包括hostname、IP、used_year、CPU、Memory、manager_name, 如果使用年限超过10年,直接显示警告信息“该服务器使用年限太久!”,如果使用年限不超过10年,显示该服务器信息如下面的格式如下: 主机信息 主机名: hostname IP:IP 使用年限:used_year CPU:CPU Memory:Memory
<2>.变量
python中地址变量与c语言刚好相反,一条数据包含包含多个标签;
In [27]: a=324
In [28]: a
Out[28]: 324
In [29]: type(a)
Out[29]: int
<3>.运算符和表达式
1>算术运算符 + - * / ** % // 2**3=8
2>赋值运算符 = 是赋值 == 是比较 +=,-=,/=,*=,%=
3>关系运算符 >, >=, <, <=, !=, ==
4>逻辑运算符 逻辑与and, 逻辑或or, 逻辑非not
5>布尔类型bool Ture False
<3>.内置方法(BIF)
cmp() #比较
str() #字符串
type() #查看数据类型
bool(0/1) #转换为Ture/False
complex() #取复数
abs() #取绝对值
coerce(a,b) #把两种类型统一
divmod(a,b) #a对b取商取余
pow(a,b) #a的b次方
round(1.4) #四舍五入
每种数据类型都可以是一种内置方法
5.if语句
6.while语句
7 .for循环语句
for i in 可迭代的对象: 语句1 第一个可迭代的对象:range(start,stop,step) ############################################################# #!/usr/bin/env python #coding:utf-8 ''' 要求: 编写九九乘法表: 1*1=1 1*2=2 2*2=4 . . . . 1*9=9 . . .9*9=81 考点: for循环的嵌套 range(start,stop,step) ''' for i in range(1,10): #i从1-10循环但不包括10,默认步长为1 for j in range(1,i+1): #j从1到i+1 print "%d*%d=%d" %(j,i,i*j), #%d占位符,“,”表示不换行 print #print后面什么都不加,意为换行 ##################################################################
8.字符串类型
1>.字符串类型
<1>创建:'' "" """块注释/字符串格式化/函数的doc文档 转义字符(:\'单引号本身,\"双引号本身,\n换行,\t tab键)
<2>特性:
索引:s=wasde w是0,a是1..
索引(s[i] ):获取特定偏移的元素
给一个字符串,可输出任意一个字符,如果索引为负数,相当于从后向前数
切片:s[start:stop:step]
start默认值为0,stop默认值为字符串长度,step默认值为1
s[1:4:2]
s[::-1]
s[:4]
s[1:] 切掉第一个字符
<3>连接操作
<4>重复操作
<5>成员操作符:in ,not in
2>.字符串是可迭代对象,通过for实现循环
3>.字符串常用方法:
(1).判断字符串是由什么组成
(2).判断是否以指定字符开头/结尾
s.startswith("https://")
s.endswith(".png")
(3)去除字符串左右空格(主要应用在有用户输入数据的地方)
s.strip()
s.lstrip()
s.rstrip()
#重点: s.replace(" ","") 删除空格
(4)字符串对齐格式化:左对齐,右对齐,居中
s.center(40,"*") 总长40,s居*中
s.ljust()
s.rjust()
(5)按照指定分隔符分离字符串:(默认分隔符为空格)
>>ip = "172.25.254.113"
>>ip.split(".")
>>['172', '25', '254', '113']
(6)指定分隔符连接信息
>>a = "wwe 788 ok"
>>a=a.split()
>>"+".join(a)
>>'wwe+788+ok'
4>.内置法方法(BIF built-in fuction)
cmp,len,max,min,枚举enumerate,zip
9.元组
<1>为什么需要元组? 比如:打印用户的姓名 userinfo1 = "fentiao 4 male" userinfo[0:7] 结论:字符串中操作提取姓名/年龄/性别的方式不方便,诞生元组. <2>元组的定义 •- 定义空元组 tuple = () •- 定义单个值的元组 tuple = (fentiao,) •- 一般的元组 tuple = (fentiao, 8, male) <3> 元组特性 • 不能对元组的值任意更改; • 对元组分别赋值,引申对多个变量也可通过元组方式分别赋值
•元组的操作
元组也属于序列,可执行的操作如下:索引、切片、重复、连接和查看长度删除元组
元组的方法
• t.count(value)-->int
返回value在元组中出现的次数;
• t.index(value)
返回value在元组中的偏移量(即索引值)