1.变量与赋值
1.1变量
name="xiaofeng" <== 注:等号前面的name是变量;如果等号后面没有加引号,会认为xiaofeng是变量;加引号是字符串。
age=21
print (name,age) <==调用两个变量,中间用逗号。
例1
name=input("print input your name: ")
print (name)
例2
name=input("print input your name: ")
age=input("printinput your age: ")
print (name,age)
例3:
a=3
b=a
a=5
print (a,b)
5 3
例3:
id是查看变量内存地址
1.2给变量起名的原则
1)显示通俗易懂
2)nums_of_alex_gf = 19
3)NumsOfAlexGf = 2
4)names-of-alex-gf = 22
5)5name = 数字不能开头,na5me=
6)!name 特殊字符不能有,!~&*……%¥¥
7)name of teacher = 不能有空格
8)某些关键字不能被定义
2.用户交互
python3.0里是 input
name=input("print input your name: ")
age=input("print input your age: ")
print (name,age)
3. 条件判断与缩进
if...else 和缩进
小结:只要代码是同一级别的,缩进就要保持一致。不然就会出现IndentationError错误。
官方给的建议是缩进4个空格,如果使用IDE写python程序,一个TAB键,就是4个空格。
#是注释
4.循环控制
1、python2.7的程序格式
python2.7中, 后面的变量是什么格式,输出就是什么格式。
但是在3.0中,默认输出的格式就是字符串的格式。所有,一般如果输出的结果是数字,可以在前面写上int(),代表整型的意思。
2、如果不相等,就一直循环下去的代码
5.循环次数限制
guess_count=0
6.常用数据类型
1、for 循环
for i in range(3):
print (i)
注:range相当于shell的seq
2、数据类型
int 整型
float 浮点(小数点)
long 长整型
3、通过type命令可以查看数据的类型
>>> a=2**63
>>> type(a)
<type 'long'>
>>> a=2
>>> type(a)
<type 'int'>
>>> a=2.03
>>> type(a)
<type 'float'>
7.字符串格式化
1、用%怎么输出多个字符串
name=input("name: ")
age=input("age:")
job=input("job:")
print("Inromationof %s:\nName:%s\nAge:%s\nJob:%s"%(name,name,age,job))
1.1 单引号与双引号在python中基本没什么区别。
但是三个单引号有两种用法
(1)注释
(2)可以写多行
注:其实三个单引号和三个双引号没有什么区别,大部分人习惯使用单引号而已。
2、strip 去掉/移除(脱)的意思。
name=input("name: ").strip("x")
age=input("age:")
job=input("job:")
print ("Inromationof %s:\nName:%s\nAge:%s\nJob:%s" %(name,name,age,job) )
name: xxiaoxsox
age: 21
job:IT
Inromation of iaoxso:
Name:iaoxso
Age:21
Job:IT
小结:去掉变量中首尾包含x的字母
3、分割
4、列表
4.1 创建列表
例:
>>> name_list=["xiaofeng","zhourui","ganna"]
>>> name_list
['xiaofeng', 'zhourui', 'ganna']
>>> name_list[1]
'zhourui'
>>> name_list[0]
'xiaofeng'
>>> name_list[2]
'ganna'
小结:xiaofeng,zhourui,ganan是三个元素,每个元素对应一个自己的下标,这个下标一般是从0先开始的。
4.2 列表的相关命令
通过 dir(name_list) 查看可以使用的命令。(前后都有下划线的用不了)
append 追加
count 统计
extend 拓展
index 索引
insert 插入
pop 删除最后一个
remove 删除指定的一个
reverse 反转
sort 排序
例1:追加一个元素
>>> name_list.append ("zhiwei")
>>> name_list
['xiaofeng', 'zhourui', 'ganna', 'zhiwei']
>>> name_list.append("zhourui")
>>> name_list
['xiaofeng', 'zhourui', 'ganna', 'zhiwei', 'zhourui']
统计zhourui的数量
>>> name_list.count("zhourui")
2
查看zhourui的索引号
>>> name_list.index("zhourui")
1
例2:列表中相同元素的,如何快速删除
8.列表常用操作
1、字符串格式化
注:大部分常用的是%s,字符串类型
2、字符串常用功能
9.列表的后续操作
切片
假如列表a中有
>>> a=[1,2,3,'a','b','c']
>>> a
[1, 2, 3, 'a', 'b', 'c']
例1:在第5个位置插入一个数字5.由于元素是从0开始算,所以是4.
[1, 2, 3, 'a', 'b', 'c']
>>> a.insert(4,5)
>>> a
[1, 2, 3, 'a', 5, 'b', 'c']
例2,:切片 取出列表中第一个到第两个元素,元素下标分别是0和1
[1, 2, 3, 'a', 5, 'b', 'c']
>>> a[0:2]
[1, 2]
小结:切片是顾首不顾尾。且用:连接
例3:隔一个元素输出出来
>>> a[3:6:2]
['a', 'b']
>>> a.insert(6,6)
>>> a
[1, 2, 3, 'a', 5, 'b', 6, 'c']
>>> a[3:8:2] 步长是2
['a', 'b', 'c']
例4,:从后面取出列表中的元素
>>> a
[1, 2, 3, 'a', 5, 'b', 6, 'c']
>>> a[-2:]
[6, 'c']
>>> a[-4:-1]
[5, 'b', 6]
>>> a[-4:-2]
[5, 'b']
例5:排序
[1, 2, 3, 'a', 5, 'b', 6, 'c']
>>> a.sort()
>>> a
[1, 2, 3, 5, 6, 'a', 'b', 'c']
例6:合并两个列表
>>> a
[1, 2, 3, 5, 6, 'a', 'b', 'c']
>>> b=[4,7,8]
>>> b
[4, 7, 8]
法1:
>>> a=a+b
>>>a
[1, 2, 3, 5, 6, 'a', 'b', 'c', 4, 7, 8]
法2:
>>> a.extend(b)
>>> a
[1, 2, 3, 5, 6, 'a', 'b', 'c', 4, 7, 8]
10.二进制位运算
一、元组
注:元组跟列表是一样一样的,唯一的区别是元组是只读的,列表是中括号,元组是小括号
创建一个元组
>>> t=(1,2,3)
>>> t
(1, 2, 3)
>>> type(t)
<class 'tuple'>
元组改成列表 -----list()
>>> list(t) <==
[1, 2, 3]
>>> t
(1, 2, 3)
小结:list()的方式只是改变了输出方式,实际本身仍然是元组
列表转元组
>>> a=["a","b","c"]
>>> a
['a', 'b', 'c']
>>> type(a)
<class 'list'>
>>> tuple(a)
('a', 'b', 'c')
二、算数运算符
>>> 1//2
0
>>> 1/2
0.5
>>> 10%2 <==用于判断奇偶数。比如以后奇数行是白色,偶数行是黑色
0
>>> 10%3
1
运算符
位运算
0是假 1是真
& 与,0与任何值都是0
| 或,1或任何值都是1
^ 异或,只要不一样就是1,一样为0
~ 按位取反,每一位的数字都取反,0变1,1变0
逻辑运算符
例:
身份运算符
11.文件基本操作及作业
1、打开文件:
file_obj=open("文件路径",“模式”)
2、打开文件的模式有:
例:创建一个文件,并写入数据:
#! /usr/bin/env python
# -*- coding:utf-8 -*-
f=open("test.log","w")
f.write("This is the first line\n")
f.write("This is the second line\n")
f.write("This is the 3 line\n")
f.write("This is the 4 line\n")
f.close()
例2:读一个文件的内容,并打印出来
法1:
f = open("test.log","r")
print (f.read())
f.close()
法2:
f = open("test.log","r")
for line in f:
print (line,)
f.close()
拓展
f = open("test.log","r")
for line in f:
if "3" in line:
print ("itis third line")
else:
print (line)
f.close()
3、追加
f = open("test.log","a")
4、写读
f = open("test.log","w+")
只要是w在前面,就会将原文件内容清空并覆盖掉,十分危险。必须提前备份。所以一般都没人用它。
用open的方式需要close,不然容易丢数据,很麻烦,建议使用with的方式;
Localtime=time.strftime("%Y-%m-%d %H:%M:%S") dir=os.path.dirname(os.path.abspath(__file__)) #获取当前目录 with open('%s/login_log.txt' %dir,'a',encoding='utf-8') as f: #以追加的方式写入文件 f.write("%s %s %s 登录成功\n" %(Localtime,ip,usr))
12.Python模块
sys模块
#!/usr/bin/env python #Author:xuliangwei import sys #导入sys模块 print (sys.path) #打印python环境变量 print(sys.argv) #打印脚本相对路径,执行的时候可以传入参数 print (sys.argv[2]) #取出传入的参数
os模块
import os print(os.system("df -h")) #调用系统命令# disk = os.system("ls -l") #执行命令,不保存结果 disk = os.popen("ls -l").read() #结果存入变量 print ("-->",disk) os.mkdir("new_dir") #创建新目录
第三方库,默认找当前目录,然后找Python环境变量是否存在该模块名。