Edit the > 2018/6/15 11:26:53
1认识Python
人生苦短,我用python
- 优雅,明确,简单 是python设计哲学
- python的设计目标之一, 是让代码具备高度的可阅读性
- python 被广泛用于web程序,GUI开发,操作系统,科学计算,人工智能,游戏等领域;
python的特点
- 是一种动态语言
- 被设计成可扩充的
- 是一种完全面向对象的语言
- 语法简洁,开发效率高,维护成本低
- 跨平台,功能强大
2python的版本与选择
- python2.x与python3.x
- python核心团队计划在2020年停止支持python2
- python2.7是最后一个python2.x版本
- 建议使用pytho3.6.x进行学习
3安装python开发环境
下载pythonhttps://www.python.org/downloads/release/python-365/
- windows环境
-
- macos环境:python下是默认python2的. 所以要切换python 很简单. 直接敲python3 即可
- linux环境
- 关于IDE的选择:PyCharm
4基本语法规则
4.1选择编译
#!/use/bin/python3
#在mac和linux环境下要加#!/use/bin/python3 注明解释器要用这个编译
4.2注释
# 单行注释
'''
多行注释
'''
"""
多行注释
"""
4.3代码块
# python是用空格来代表代码块的 不像js 和java 等于语言里面的 {}
if True:
print("true")
else:
print("false")
4.4数据结构
- Number
- int(x [,base ]) 将x转换为一个整数
- long(x [,base ]) 将x转换为一个长整数
- float(x ) 将x转换到一个浮点数
- complex(real [,imag ]) 创建一个复数 *
- str(x ) 将对象 x 转换为字符串
- repr(x ) 将对象 x 转换为表达式字符串
- eval(str ) 用来计算在字符串中的有效Python表达式,并返回一个对象
- tuple(s ) 将序列 s 转换为一个元组
- list(s ) 将序列 s 转换为一个列表
- chr(x ) 将一个整数转换为一个字符
- unichr(x ) 将一个整数转换为Unicode字符
- ord(x ) 将一个字符转换为它的整数值
- hex(x ) 将一个整数转换为一个十六进制字符串
- oct(x ) 将一个整数转换为一个八进制字符串
- String
- List(列表)
- Tuple(元组)
- Sets(集合)
Dictionary(字典)
a = 10
b = 2.3
c = True
d = 3 + 4j # 复数 j复数单位
print(a)
print(b)
print(c)
print(d)print(type(a))
print(type(b))
print(type(c))
print(type(d))
4.5变量
# 变量
'''
声明时不付值是不会被使用的
第一个字符必须是字母或_开头
'''
a1 = 200
b1 = c1 = d1 = e1 = 1 # 多变量赋值
a2, b2, c2 = 1, 2.3, "我" # 分别赋值
print(b1, c1, d1, e1)
print(a2, b2, c2)
del a1 # 删 对象
4.6运算符
4.6.1算术运算符
print(5 ** 3) # 幂运算 5的3次方
print(7 // 3) # 不要余数 取整商
4.6.2比较运算符
和其他语言相同
4.6.3赋值运算符
和其他语言相同
4.6.4逻辑运算符
and or not 与或非 #python
&& || ! 其他编程语言
4.6.5位运算符
按照二进制位 来运算的
& 与
| 或
^ 亦或
~ 按类取反
移位 >>右 <<左
4.6.6成员运算符
in 在
not in 不在
在一个集合里有还是没有 该值
4.6.7身份运算符
表示对象的存储单元的
is
is not
是不是引致一个对象
4.6.8运算符优先级
指数>位运算>乘除摸加减等
4.7string类型操作
# python中没有字符类型
#拼接
a = 'asdf'
b = "asdfasd"
c = """
多行
字符
串
"""
print(a + b + c)
# 在cd之间插入其他字符
str1 = "abcdefg"
print(str1[:3] + "123" + str1[3:])
# 截取
print(str1[2:5])
# 格式化
print('ABCD%d' %(123))
print('%x' %(100))
print("name:%s,age:%d" %("Tom",21))
4.7函数
def hello(str):
print("hello: %s" % (str))
hello("tom")
def fun01(a, b):
return a + b
print(fun01(1, 2))
def fun02(a=2, b=4):
return a + b
print(fun02(2, 2))
print(fun02())
4.8变量的作用域
'''
L (local) 局部作用域
E (Enclosing) 闭包函数外的函数中
G (Clobal) 全局作用域
B (Built-in) 内建作用域
'''
x = int(32) # 建内作用域
g_a = 0 # 全局作用域
def function03():
o_c = 1 # 闭包作用域
def function04():
i_b = 3 # 局部作用域
.
#空函数 pass占位符
def function05():
pass
4.9模块
4.10流程控制
# 循环语句
n = 100
sum = 0
counter = 1
while counter <= n:
sum += counter
counter += 1
print(sum)
# 嵌套
if True:
if True:
pass
else:
pass
else:
pass
# 循环输入;
while True:
mun = int(input("请输出一个数字"))
print("输出的数字的是", mun)
counter = 0
while counter < 3:
print("counter:", counter)
counter += 1
else:
print("counter", counter)
# 在python 后面是可以添加else 语句的
counter = 0
while counter < 3:
print("counter:", counter)
counter += 1
else:
print("else-counter", counter)
# for 循环语句 后面是可以添加else 语句的
for a in [1, 2, 2.51, 5]:
print(a)
else:
print("haha")
for a in range(0,5):
print(a)
for a in range(3,5):
print(a)
for a in range(1,5,2):
print(a)
4.11 内置数据结构
# 列表为例
list=["abcd",123,3.14,True]
print(list*3)#连续输出3次
print(list[0])
print(list[3])
list2=["haha",100]
#加号拼接
print(list+list2)
#截取片段
list[0]="ABCD"
list[1:3]=[321,99.99]
# 集合
set1 = {"tom", "marry", "jack", "rose", "tom"}
set2 = set("asdfqwer")
print(set1) # 重复的tom 被去掉了
# 判断里面是不是有这个集合元素
if "jeck" in set1:
print("zai")
else:
print("bu zai")
set3 = set('adsa12345')
print(set2)
print(set3)
# 集合的差集
print(set2 - set3)
# 集合的并集
print(set2 | set3)
# 集合的交集
print(set2 & set3)
# 不同是存在的
print(set2 ^ set3)
- List(列表)
可以看成数组
[var1,var2,var3,…] - Tuple(元祖)
可以看成数组.但是里面的元素不能修改.只读的列表
(var1,var2,var3,…) - Sets(集合)
可以看成数组.但是里面的元素不能重复
{var1,var2,var3,…} - Dictionary(字典)
以键值对成堆出现的
{key1:var1,key2:var2,key3:var3,…}
strint ,元祖 ,列表 都属于序列 所以都是for循环