python基础篇
-
python 2.* 与Python 3.*
input() == eval(input())
raw_input() == input()
-
python初始化
#!/usr/bin/env python 【env 是调用的环境变量】 #-*- coding:utf-8 -*- 【可以在代码中写入中文】
>>> print ("Hello World")
Hello World
-
变量
变量赋值:
>>> name_value='freddy'
1 >>> name_value=freddy 2 Traceback (most recent call last): 3 File "<stdin>", line 1, in <module> 4 NameError: name 'freddy' is not defined
【变量的值如果是字符串必须要加引号,否则定义变量会报错 (因为他把变量值当成一个变量)】
>>> freddy=18
>>> name_value=freddy
【如果先把freddy定义一个变量,然后再进行赋值,不加引号,也可以定义变量】
>>> name_age=18
【如果变量的值是数字,可以不用加引号】
变量命名规范:
you_name_is_freddy = tang OK
YouNameIsFreddy = tang OK
you-name-is-freddy = tang NO 【不能是中杠,“-”等于“减号”】
88you_name_is_freddy = tang NO 【不能以数字开头】
!!you_name_is_freddy = tang NO 【不能以特殊字符开头】
you name is freddy = tang NO 【不能有空格】
变量调用:
%d 整数
%f 浮点数
%s 字符串
%x 十六进制整数
-
变量调用,指针
>>> freddy = 18
>>> freddy
18
>>> sb = freddy
>>> sb
18
按说把freddy变量改成88,因为sb赋值给freddy了,所以sb也会为88,但是sb还是18,说明sb赋值时指向的不是freddy,而直接指向18,所以改变变量名freddy的值后,sb变量值不受影响
>>> freddy = 88
>>> freddy
88
>>> sb
18
>>>
图片原理示例:
-
python内置常用函数
len(name) 【统计字符串长度】
dir(name) 【查看内置函数用法】
id(name) 【查看变量在内存中的位置】
id(freddy) 【查看变量所在内存地址】
-
数据类型
数据类型分类:
-
列表【优点:可以存取多个信息】
【删除一个列表中所有freddy】
>>> name = ['freddy','aaa','ccc','freddy','ddd'] >>> for i in range(name.count('freddy')): ... print(name.remove('freddy')) ... None None >>> name ['aaa', 'ccc', 'ddd'] >>>
【列表中匹配值的方法】 >>> name ['1', '2', 'aa', 2, 8] >>> "aa" in name True >>> 2 in name True >>> if "aa" in name: ... print("aaa") ... aaa >>>
【判读列表中有没有haha这个值】 name = ['freddy','aaa','ccc','freddy','ddd'] if 'haha' not in name: print("name list not haha")
【判读“t”是不是一个列表】 >>> type(t) is list True
-
元组列表类型转换
>>> t=('123','123','123') >>> t ('123', '123', '123') >>> type(t) <class 'tuple'> >>> list(t) ['123', '123', '123']
>>> a=['123','123','123'] >>> a ['123', '123', '123'] >>> tuple(a) ('123', '123', '123') >>>
>>> dir(name_list) ['__add__', '__class__', '__contains__', '__delattr__', '__del , '__doc__', '__eq__', '__format__', '__ge__', '__getattribute , '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '_ , '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__redu x__', '__repr__', '__reversed__', '__rmul__', '__setattr__', ' izeof__', '__str__', '__subclasshook__', 'append', 'clear', 'c tend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
-
去除空格
name=' aaaaaaaa aaaaaaaaaa '
name.strip() 【去除两边的空格】
name.lstrip() 【去除左边的空格】
name.rstrip() 【去除右边的空格】
-
分割【分割后会变成一个列表】
>>> name = "allen,25,wonderful
>>> name.split(',')
['allen', '25', 'wonderful']
-
切片
-
元组【作用:不能改,一共有两种方法】
创建元组:
ages
=
(
11
,
22
,
33
,
44
,
55
) 或
ages
=
tuple
((
11
,
22
,
33
,
44
,
55
))
-
字典
创建字典:
person
=
{
"name"
:
"mr.wu"
,
'age'
:
18
} 或
person
=
dict
({
"name"
:
"mr.wu"
,
'age'
:
18
})
person = { "name":"allen", "age":"25", "gender":"man", } #person['name'] for k,v in person.items(): #字典无序 print k,v person.keys() #所有key person.values() #所有value person.items() #所有元素
-
循环
continue 【跳出本次循环】
for i in range(10): if i <5: continue print(i)
break 【跳出这层循环】
-
运算符
算数运算:+ - * / % ** //
比较运算:== != < > >= <=
赋值运算:= += -= *= /= %= **/ //=
逻辑运算:and or not
成员运算:in not in
身份运算:is is not
位运算:& | ^ ~ >> <<
-
文件操作
文件打开方式:
python中打开文件有两种方式,即:open(...) 和 file(...),推荐使用open(...)
文件打开模式:
r 【只读方式(默认)】
w 【打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件】
a 【打开一个文件用于追加写入。新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入】
w+ 【写读:打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件(没人用)】
“+” 【表示可以同时读写某个文件】
r+ 【可读;可写;可追加】
a+ 【等同于a】
“U”表示在读取时,可以将 自动换成 【与 r 或 r+ 模式同使用】
rU
r+U
“b”表示处理二进制文件【如:FTP发送上传ISO镜像文件,linux可以忽略,windows处理二进制文件时需要标注】
rb
wb
ab
【向test.log覆盖写入test input】
f = open("test.log","w") f.write("test input ") f.write("test input ") f.write("test input ") f.write("test input ") f.colse
f = open("test.log","r")
print(f.read()) 【读文件里所有内容】 f = open("test.log","r") print(f.readline()) 【一次只读一行】 f = open("test.log","r") print(f.readlines()) 【以列表形式全读出来】
-
python格式化打印
name = input("name:") age = input("age:") job = input("job:")
【方法一:】 msg = ''' Infomation of %s: name:%s age:%s job:%s '''%(name,name,age,job) print(msg)
【方法二:】 print("Infomation of %s name:%s age:%s job:%s"%(name,name,age,job))
-
流程控制
使用while实现猜数字小游戏:
【无限次数猜】
locky_num = 19 input_num = -1 while locky_num != input_num: input_num=int(input("Please input number:")) if input_num > locky_num: print("tai gao le....") elif input_num < locky_num: print("tai di le .....") print("Bingo")
【只能猜三次】 guess_count=0 lucky_num=19 while guess_count < 3: # print("guess_count:",guess_count) input_num=int(input("Plese input num:")) if input_num > lucky_num: print("tai gao le.....") elif input_num < lucky_num: print("tai xiao le.....") else: print("Bingo....") break guess_count += 1 else: print("too may number 33333....")
使用for实现猜数字小游戏:
lucky_num=19 input_num=-1 for i in range(3): input_num=int(input("Please input number:")) if input_num > lucky_num: print("tai gao le ....") elif input_num < lucky_num: print("tai di le .....") else: print("Bingo") break else: print("too may 333333")
-
嵌套循环
【例1:】 count = 0 while True: print(count) count += 1 if count > 5: break 【例2:】 for j in range(5): for i in range(10): if i <5: continue if i > 8: break print(i)