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)可以写多行

 

注:其实三个单引号和三个双引号没有什么区别,大部分人习惯使用单引号而已。

 

2strip 去掉/移除(脱)的意思。

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环境变量是否存在该模块名。