#:单行注释
'''
'''
注释:上面三个单引号/双引号,下面三个单引号/双引号 是多行注释
vi xxx.py:可以用来写Python代码
python xxxx.py:执行Python代码(使用python2版本执行代码),如果代码中有中文注释需要在代码的第行写#-*- coding:utf-8 -*-
python3 xxx.py:使用Python3版本执行代码
-------------------------------变量------------------------
格式:变量名=变量值
变量类型:
Number(数字)类型有: int(有符号整型) long(长整型) float(浮点) complex(复数)
布尔类型有: True False
String(字符串)
List(列表)
Tuple(元组)
Dictionary(字典)
定义变量:
x=100
type(x): 该方法返回x的变量类型
name=input("请输入姓名"):键盘录入功能提示语是"请输入姓名",用户的输入
注释:input()获取的所有的内容都是字符串类型
age=input("请输入年龄")
age_num=int(age):把字符串age转换成int类型
print("yangge"):用户的输出/打印
age=18
print("age的值是%d"%age):整数需要和字符串拼接时需要在字符串里面加%d外面加%
name="杨哥"
print("姓名是:%s"%name):字符串要和字符串拼接,需要在字符串里面加%s外面加%
a=input("请输入:"):当在Python2中调用input命令 那么当你输入1+2后a=3;当在Python3中调用input命令那么a='1+2'
注释:如果想在Python2中获取Python3中的功能需要用raw_input("请输入:")
------------------------------if判断------------------------
格式:
if 条件:
满足条件后要执行的代码
if (条件1 and 条件2 ):
满足条件1并且满足条件2后要执行的代码
if (条件1 or 条件2):
满足条件1或者满足条件2后要执行的代码
if not 条件:
满足相反条件后要执行的代码
if 条件1 :
执行那个满足条件1的代码
else if 条件2:
执行满足条件2的代码
else:
执行都不满足上面条件的代码
-----------------------------------------------for-------------------------------------
格式:
for 变量 in 字符串/列表/字典
满足条件要执行的代码
-----------------------------------------------while-----------------------------------
格式:
while 条件:
满足条件要执行的代码
break:当while循环里面有break后会里面跳出while循环
continue:当while循环里面有continue后会跳出本次循环,继续执行下次循环
例:
x=0
while x<5:
print(x)
if(x==3)
break
x=x+1
输出结果是 0,1,2,
例2
x=0
while x<5:
print(x)
if(x==3)
continue
x=x+1
输出结果是:0,1,2,4,
-----------------------------------------复合运算符------------------------------------------------
+=:加法赋值运算符 例如:c+=a等效于c=c+a
-=:减法赋值运算符 例如:c-=a等效于c=c-a
*=:乘法赋值运算符 例如:c*=a等效于c=c*a
/=:除法赋值运算符 例如:c/=a等效于c=c/a
%=:取模赋值运算符 例如c%=a等效于c=c%a
**=:幂赋值运算符 例如c**=a等效于c=c**a
//=:取整除赋值运算符 例如c//=a等效于c=c//a
------------------------------------------------------数据类型转换----------------------------------------
x=100
str(x) :将整数x转换成字符串,结果是"100"
y="100"
int(y):将字符串转换成整数100
字符串的拼接:
a="ni"
b="hao"
d=a+b:输出结果是"nihao"
"---%s---"%(a+b):输出结果是:---nihao---,其中%s是字符串的占位符
------------------------------------角标---------------------------------------
格式:[起始位置:终止位置+1]
d="nihao"
d[3]:输出结果是a,每个字符串都有角标,角标是从0开始
len(d):返回的是字符串的长度,nihao的长度是5
d[2:4]:切片 把"nihao"这个字符串的第二个角标(h)开始到第四个角标(o)之间的字符获取到包左不包右结果是:ha
d[2:]:结果是从第二个角标开始到最后一个角标位置的内容:hao
d[2:len(d)-1]:结果同上
d[2:-1]:从第二个角标开始到倒数第二个角标之间的内容:ha
d[-1:]:获取最后一位字符:o
d[0:4:2]:从0角标开始到4角标步长是2,步长是每隔步长-1(2-1=1)个取一次数据结果是:nho
注释:默认步长是1,如果步常正数那么代表从左往右取数据,如果步常是负数代表从右往左取数据
d[:]:从左往右获取全部数据,结果是:nihao
d[::-1]:从右往左获取全部数据,结果是oahin
-------------------------------------字符串的常见操作-----------------------------
name="a b c d e f g h"
name.find("cd"):从左往右查找该字符串是否存在如果存在那么返回给字符串的角标,如果不存在则返回-1
name.rfind("cd"):从右往左找该字符串是否存在如果存在返回给字符串的角标,不存在返回-1
name.index("xyz"):同上存在则返回角标,不存在则报异常
name.rindex("xyz"):同上存在则返回角标,不存在则报异常
name.count("de"):返回所查找字符串出现的次数,没有返回0
name.replace("旧字符串","新字符串");把name中旧字符串替换成新字符串
name.replace("旧字符串","新字符串",个数):把name中旧字符串替换成新字符串如果个数是1那么只替换1次
name.split(" "):把name中的字符按" "进行切割然后存到数组中 结果:[a,b,c,d,e,f,g,h]
name.splitline():按照每一行切割一个元素
name.capitalize():把该字符串的第一个字符转换成大写
name.title():把字符串的每个单词的首字母转换成大写
name.startwith("a"):字符串是否是以指定字符开头,如果是返回true,不是返回false
name.endwith("h"):字符串是否已指定字符结尾如果是则返回true,不是则返回false
name.lower():把字符串中的所有字符转换成小写
name.upper():把字符串中的所有字符转换成大写
name.lstrip():把字符串的左边去掉空格
name.rstrip():把字符串的右边空格删除
naem.strip():把字符串的两边空格去掉
name.partiton("d"):从左往右以指定字符为中心返回一个元组 结果是:("a b c ","d","e f g h")
name.rpartiton("d"):从右往左,同上
name.isalpha():判断name是否是纯字符串如果是返回true
name.isdigit():判断name是否是纯数字如果是返回true,否则返回false
name.isalnum():判断name里面是否既有数字又有字母 如果是返回true 否则返回false
name.isspace():判断name是否是纯空格如果是返回true,否则返回false
b=["aaa","bbb","ccc"]
c="-"
c.join(b):把b里面的元素用c连接起来 结果是:aaa-bbb-ccc
----------------------------------列表-------------------------------------
格式:
names=["张三","李四","王五"]
特点:列表可以存储不同的数据类型
names.append("赵四"):添加元素,添加到列表末尾
names.insert(角标,元素):把元素添加到指定位置
列表3=列表1+列表2;把列表1里面的元素和列表2里面的元素都添加到列表3里面
列表1.extend(列表2):把列表2里面的数据都添加到列表1里面
names.pop():把列表的最后一个元素删除
names.remove(元素):删除指定元素,从左往右删除第一次出现的元素
names[角标]:根据角标获取指定元素
naem[角标1,角标2]:切片,获取角标1和角标2之间的元素,包左不包右
del name[角标]:删除指定角标位置的元素
name[角标位置]=元素:把指定角标位置的元素修改成新的元素
元素 in 列表:查找该元素是否在列表中,如果在返回true,否则返回false 例如: "张三" in name 结果是true
元素 not in 列表:查找该元素是否不再列表里面,如果不再返回true,否则返回false
列表的遍历 格式: for 元素 in 列表名称
例如:
for x in names:
print(x)
--------------------------------------------字典--------------------------------------------------
字典格式:
字典名称 ={键1:值1,键2:值2}
特点:字典可以存储不同的数据类型,以key和value的形式存在,它和列表的区别在于列表通过角标获取数据,字典根据key获取value
注释:其中键(key)是唯一的,值(value)可以重复
例如: info = {"name":"张三","年龄":13}
info["name"]:获取键是name的值,结果是:"张三"
info.get("name"):同上
注释:以上两种方式都可以获取一个值,区别用第一种方式去获取时如果键不存在那么程序直接崩溃,第二种键不存在程序不会崩溃
infor["sex"]="男":给info字典添加/修改一个键值对元素
del info["name"]:删除一个元素
len(字典名称):获取字典长度 例如:len(info):返回的结果 2
info.keys;返回一个info字典里面所有的key的列表 结果:python2版本是['name','年龄'],Python3是dict_keys(['name','年龄'])
info.values;返回一个info字典里面所有value的列表 结果是['张三',13]
info.items() :把info字典里面的 键值对 当做一个元组存储到列表里面 结果是[('naem','张三'),('年龄',13)],python3显示结果同上
字典的遍历
遍历所有key
for x in info.keys():
print(x)
输出结果是:name 年龄
遍历所有value
for y in info.values():
print(y)
输出结果是: 张三 13
同时遍历key和value方式一
for z in info.items():
print(z[0])
输出结果是:name,年龄其中 z是元组("name","张三"),("age",18)
同时遍历key和value方式二
for x,y in info.items():
print("key=%s value=%s"%(x,y))
输出结果是:key=name value=张三 , key=age value=18;
列表嵌套字典:[{"name":"张三","age":18},{"name":"李四","age":28}]
----------------------------------------------元组---------------------------------------------
元组格式:
元组名称 = (元素1,元素2,元素3,元素4)
元组特点:可以存储不同的数据类型 和 列表差不多 区别是元素不能修改已经存储的数据,其他都一样
name = ("张三","李四","王五","赵六")
name[0]:获取数据 结果是张三
name.append