目录

  • 基本语法
  • 控制台打印
  • 简单的加减运算
  • 求一个数的N次方
  • 定义变量
  • 字符串的定义
  • 注释
  • 查看变量当前的类型
  • 查看变量指向的物理地址
  • 获取函数的描述信息
  • 判断一个变量是否为指定类型
  • 逻辑判断
  • 字符串操作
  • 获取字符串长度
  • 字符串拼接
  • 字符串分隔
  • 去掉字符串两边的空格和回车符
  • 字符串大小写转化
  • 字符串更改
  • 循环
  • for循环
  • while循环
  • if操作
  • 三元表达式
  • 数据结构
  • list
  • 定义列表
  • list的切片
  • list浅拷贝
  • list 常用操作
  • tuple
  • tuple定义
  • tuple分片
  • set
  • set定义
  • set中添加一个list 或 tuple 或set
  • 删除指定元素
  • 从set中取出最后一个元素
  • 判断两个集合是否相等
  • 判断是否是子集
  • 求两个集合之间的交集
  • 求两个集合之间的并集
  • 求差集
  • 异或
  • frozenset
  • 定义frozenset
  • dict
  • 定义一个dict
  • 获取所有的key
  • 获取所有的value
  • 获取所有的item
  • 添加一个item
  • 通过key获取value
  • 判断key是否存在
  • 删除一个变量


基本语法

控制台打印

print("python hello")

简单的加减运算

(5*2+3-1)/2

求一个数的N次方

# 求2的100次方
2**100

# 求3的3次方
3**3

定义变量

# 定义变量,不需要向其它语言一样声明类型或者使用val、var等关键字声明变量,直接使用一个变量名即可
# 多变量复值
a,b,c = '定义变量',1,6.6
print(a)
print(b)
print(c)

字符串的定义

# python 字符串定义
# 1、单引号
print('"单引号字符串定义",单引号内部可以直接使用双引号,而不用转义')
# 2、双引号
print("'双引号定义,双引号内部可以直接使用单引号,而不用转义")
# 3、多行字符串
print('''\
第一行
'',多行字符串中可以包含单引号,不需要转义
"",多行字符串中可以包含双引号,不需要转义
第四行
第五行
第六行\
''')

注释

# 就是一个单行注释
# 通常使用一个多行字符的当做代码注释,如下:
'''\
作者:菜鸟
时间:2019-09-05 \
'''

查看变量当前的类型

# 查看变量类型
a = 1
print(type(a))
a= "菜鸟"
print(type(a))

查看变量指向的物理地址

print(id(a))

获取函数的描述信息

help(id)
help(type)
help(help)

判断一个变量是否为指定类型

# 判断变量a是否为str类型
isinstance(a,str)

逻辑判断

print(not ((20<30 or 20>30) and 10>2))

字符串操作

获取字符串长度

c = "菜鸟"
len(c)

字符串切片

c = "hello python"
print(c[2])
print(c[-2])
print(c[2:])
print(c[-2:])
print(c[:3])
print(c[1:3])
print(c[:])
print(c[::])
print(c[::2])
# 字符串翻转
print(c[::-1])

字符串拼接

a,b = "this", "is 菜鸟"
print(a*20)
print(a+ "\t" +b)
print(" {0}---{1}".format(a,b))
print(" {a}---{b}".format(a="this",b="is 菜鸟"))
print(" %s....%s"%(a,b))

字符串分隔

# 将一个字符串按都好分隔为一个list
a = "a,b,c,d".split(",")
print(a)
# 将一个list转为一个字符串,元素之间以点分隔
print(".".join(a))

去掉字符串两边的空格和回车符

# 去掉左右两边的
print(" \tabcd\n \t".strip())
print("--"*20)
# 去左边的
print(" \tabcd\n \t".lstrip())
print("--"*20)
# 去掉右边的
print(" \tabcd\n \t".rstrip())

字符串大小写转化

# 转大写
print("aDDbb".upper())
# 转小写
print("aDDbb".lower())

字符串更改

# 字符串本身是不支持修改的,如 a[1]='w' 是会直接报错的
# 但是可以借助字符串的切片和字符串拼接功能,模拟需改
a = "hello word!"
print(a[:5]+"-"+a[6:])

# 还可以将字符串转为一个list,修改list元素,然后在将list转为字符串
a = "hello word"
l = list(a)
l[5]="--"
print("".join(l))

循环

for循环

# 循环
for i in range(5):
    if i < 3:
        print(i)
else:
    print("循环结束")
    
print("--"*20)
for i in range(5):
    if i < 3:
        print(i)
    else:
       #break 后,不会执行 循环后面的else语句
        break
else:
    print("循环结束")

print("--"*20)

# 优雅的遍历一个字符串
str = "我想有个女朋友"
for index,element in enumerate(str):
    print("{0},{1}".format(element,index))

while循环

# while循环
count = 0
while count < 3:
    print(count)
    count+=1
else:
    print("有限循环")

if操作

# if 操作
if 30 > 40:
    print("30 > 40")
elif 50 < 30 :
    print("50 > 30")
else:
    print("其它")

三元表达式

a = 2
b = 3
x = a if a > b else b
print(x)

数据结构

list

定义列表

# 列表定义
my_list = ["秦时明月","天行九歌","武庚纪","斗罗大陆","一人之下",66,True]
print(my_list)

list的切片

# 与字符串的切片相似
my_list = ["秦时明月","天行九歌","武庚纪","斗罗大陆","一人之下",66,True]
print(my_list[1])
print(my_list[1:])
print(my_list[:3])
print(my_list[1:3])
print(my_list[0:6:2])
print(my_list[::])
print(my_list[::-1])

list浅拷贝

my_list1 = my_list.copy()
print(id(my_list1),id(my_list))
my_list1[6]=True
print(my_list1,my_list)
print(id(my_list1),id(my_list))

list 常用操作

# list 追加
M = ['秦时明月', '天行九歌']
M.append("武庚纪")
print(M)

# list取出最后一个数据
print(M.pop())
print(M)

# 将两个list结合为一个list
M.extend(["秦时明月","一人之下","斗罗大陆"])
print(M)

# 删除指定元素,如果包含多个相同的元素,只会删除第一元素。删除元素不存在时会报错
M.remove("秦时明月")
print(M)

# list 乘法
print(M*2)
# list 加法
print(M+M)
print(M)

# 查看list 是否包含指定元素
print("一人之下" in M)

tuple

tuple 与 list作用和操作差不多。只是list可以修改,tuple一旦创建就不可以修改

tuple定义

t = ('天行九歌', '秦时明月', '一人之下', '斗罗大陆',True)
print(type(t))

tuple分片

t = ('天行九歌', '秦时明月', '一人之下', '斗罗大陆',True)
print(t+t)
print(t*2)
print(t[1:])

set

set 中不会出现相同元素,set 不支持切片

set定义

s = {'天行九歌', '秦时明月', '一人之下', '斗罗大陆', True}
print(type(s))

set中添加一个list 或 tuple 或set

s.update(["斗破苍穹"])
s.update(("武庚纪","火影忍者"))
s.update({"海贼王"})
print(s)

删除指定元素

# 删除指定元素,元素不存在时报错
s.remove("海贼王")

从set中取出最后一个元素

print(s.pop())

判断两个集合是否相等

s = {'天行九歌', '秦时明月', '一人之下', '斗罗大陆', True} 
ss = s.copy()
print(id(ss),id(s))
print(ss == s)

判断是否是子集

#判断是否子集
s = {'天行九歌', '秦时明月', '一人之下', '斗罗大陆', True}
ss = {'天行九歌', '秦时明月', '一人之下', '斗罗大陆'}
print(s > ss)

求两个集合之间的交集

s = {'天行九歌', '秦时明月', '一人之下', '斗罗大陆', True}
ss = {'天行九歌', '秦时明月', '一人之下', }
print(s & ss)

求两个集合之间的并集

s = {'天行九歌', '秦时明月', '一人之下', '斗罗大陆', True}
ss = {'天行九歌', '秦时明月', '一人之下','斗破苍穹' }
print(s | ss)

求差集

#求差集
s = {'天行九歌', '秦时明月', '一人之下', '斗罗大陆', True}
ss = {'天行九歌', '秦时明月', '一人之下','斗破苍穹' }
print(s - ss)

异或

s = {'天行九歌', '秦时明月', '一人之下', '斗罗大陆', True}
ss = {'天行九歌', '秦时明月', '一人之下','斗破苍穹' }
print(ss ^ s)

frozenset

一个不可变的set

定义frozenset

s = {'天行九歌', '秦时明月', '一人之下', '斗罗大陆', True} 
#  frozenset(s) 可以传入一个set、list、tople、frozenset
ss = frozenset(s)
print(id(s),type(s),s)
print(id(ss),type(ss),ss)

dict

定义一个dict

student = {"name":"张三","age":18,12:"我就看看"}
print(type(student),student)

获取所有的key

print(student.keys())

获取所有的value

print(student.values())

获取所有的item

# 及获取所有的(key,value)
print(student.items())

添加一个item

# key 不存在为新增,key 存在时则修改
student[12]="随便测试下,看看key的类型是否必须一致"
print(student[12])

通过key获取value

# student["name"] 这种方式取值,key不存在时报错
print(student[name])

# 通过get获取数据。不存在时,返回为 None 。也添加默认值,当key不存在时,返回添加的默认值
print(student.get(name,"不存在就给个默认值"))

判断key是否存在

print("name" in student)

删除一个变量

# 是直接从物理地址删除的
del a