0_HelloWorld
对于一个程序员来说,学习任何一门语言都要从HelloWorld开始
Python的HelloWorld相对于其他语言比如C++,Java来说简直简单到爆
只需要一行就可以搞定
>>> print("HelloWorld")
HelloWorld
当然,代码最终还是要写在文件中的
我们可以在IDE或者文本编辑器中输入
print("HelloWorld")
然后
- 保存文件
- 切换到文件所在目录
- 打开命令行 输入 python 文件名.py 后回车
这样就可以看到该文件的执行结果
1_Python基础语法
1.1_缩进格式
python中没有{},所有代码都是通过缩进来控制代码格式的
比如
一段js代码
function A(){
console.log(1);
}
一段python代码
def A():
print(1)
从某些角度上来看,python的缩进更适合手敲代码,而不适合复制粘贴
还有python语句一行结束后不需要加上分号
但是比如if while for…语句结束都要加上冒号
for i in range(1,10):
print(i)
1.2_注释
一般来说大部分的语言
单行注释: //注释内容
多行注释: /*注释内容*/
文档注释:
/**
* 文档注释
*内容
*/
而python不一样
单行注释: #
多行注释:
"""
注释内容
"""
三引号如果没有赋值给变量的话,那么就是多行注释或者文档注释
1.3_字面常量
比如 1 2 4 或者”a”,”b”,”abc”
这样数字或者字符串,它们的值是不能被修改的
1.4_标识符
Identifiers
标识符一般可以包括
- 变量名
- 函数名(类之外) / 方法名(类中)
- 类名
在python中定义标识符需要遵守以下规则
- 标识符是由 大小写字母(a-zA-Z),数字(0-9),下划线(_)组成 [php,js,java还可以使用$,但是python不行]
- 数字不能作为开头
- 区分大小写
- 不能使用关键字作为标识符,最好不要使用内置的东西
- 见名知意
python标识符的规范
- abc_def
- abcDef
- AbcDef
1.5_运算符
算术运算符
+
-
*
/ 浮点除法
// 整数除法
** 幂 还有pow()方法也可以进行幂运算
赋值运算符
=
算术运算符 加上 = (比如 += -=)
位运算符 加上 = (比如 &= |=)
a = a + 1 # 两步运算
a += 1 # 一步运算
比较运算符
==
!=
<
>
<=
>=
带有比较运算符和逻辑运算符的表达式值的类型为布尔值
比如1==1 的值是True
逻辑运算符
and
or
not
# 注意
'a' and 'b' -> 'b'
'a' or 'b' -> 'a'
not '0' ->False
In [21]: 1 and 0
Out[21]: 0
In [22]: 2 and 1
Out[22]: 1
In [23]: '' and 1
Out[23]: ''
python中的and是短路与
or是短路或
成员运算符
in
not in
# 判断元素是否在容器中(比如序列 集合 字典等)
# 注意
字典的成员运算是判断 变量的值是否能在字典中找到对应的key
而不是找value
身份运算符
is
is not
就是比较内存地址
比如
a = {1,2,3}
b = {2,1,3}
a == b # True
a is b # False
位运算符
把数字当做二进制数进行计算
>> << >>>
a = 5&6 #按位与
b = 5|6 #按位或
c = 5^6 #按位异或
d = 5^6^6 #按位异或两次相同的值
e = ~5 #按位取反
print(a)
print(b)
print(c)
print(d)
print(e)
# 运行结果
4
7
3
5
-6
关于二进制运算的深入会在之后补充
另外要注意的是
还有python是没有 ++/–
可以通过()来控制运算符的优先级
三元运算符
变量 = value1 if 条件表达式 else value2
# 条件表达式为True 变量=value1
# 反之 变量= value2
1.6_表达式
2+3 这就是一个表达式 值为5
上面提过的1==1 是一个表达式 这个表达式是布尔表达式 值为True
可以将表达式看成是一个值
1.7_中文输入
py3中字符串都是unicode格式的,py3默认支持utf-8格式的编码
而py2是支持ascii码的
如果想要在python2中使用中文的话
# -*- coding:utf-8 -*-
还有
另外linux中python文件还要加一行
#!/usr/bin/env python
这行是python解释器的路径
来执行python文件(在windows下有没有这个无所谓 因为已经设置了环境变量了)
1.8_帮助
查看帮助可以使用help()
type() 可以查看对象的数据类型
id() 可以查看对象的内存地址
查看关键字
n [57]: keyword.kwlist
判断某字符的内容知否为关键字
In [58]: keyword.iskeyword('def')
Out[58]: True
In [59]: keyword.iskeyword('class')
Out[59]: True
In [60]: keyword.iskeyword('True')
Out[60]: True
In [61]: keyword.iskeyword('main')
Out[61]: False
通过dir() 可以查看模块中可以使用的所有变量和函数
dir(__builtins__)
可以查看python内置的函数/变量
查看类的所有属性名
class A:
pass
print(dir(A))
# ['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__']
查看类的属性dict
class A:
pass
{
'__module__': '__main__',
'__dict__': <attribute '__dict__' of 'A' objects>,
'__weakref__': <attribute '__weakref__' of 'A' objects>,
'__doc__': None
}
1.9_一切皆为对象
python中一切皆为对象
不仅类的实例 函数也可以看做对象
dir(函数名) 也能看到许多属性或方法
python中 一个简单的数字也是一个对象 字符串也是一个对象
在内存中 标识符指向对象,如果给标识符重新赋值的话,那么标识符就会指向其他的对象
In [7]: a = 1
In [8]: id(a)
Out[8]: 1810325664
In [9]: a = 2
In [10]: id(a)
Out[10]: 1810325696
还可以这样
In [79]: a = [1,1,1,1,1,1]
In [80]: id(a[0]) == id(a[1])
Out[80]: True
In [81]: id(a[1]) == id(a[2])
Out[81]: True
In [82]: id(a[3]) == id(a[4])
Out[82]: True
In [83]: id(a[4]) == id(a[5])
Out[83]: True
In [86]: id(a[5]) == id(a[0])
Out[86]: True