By standing on the shoulders of giants, you’ll find out that you don’t always have to reinvent the wheel.
Python 是一种面向对象的解释型语言,编写的代码无需编译,直接可以执行,所以python程序只要发布那么就是开放源码的。
python的语法简洁,没有其他语言的花括号来包裹代码的形式,这也是我喜欢python的一个主要原因,它主要通过缩进来控制执行的级别
我的主要开发环境为ubuntu 16.04 编辑器为 vim 和 IDLE之前也学过一点python的基本语法 这次从头细致的学习一遍并每天通过写博客的形式复习,之前每次说写博客都没有坚持,这次一定要坚持下去。如果由同样喜欢python的小伙伴可以评论我们可以互相交流,共同成长,小白一枚~
下面就来讲python的一些基本概念
1.数字和表达式
python的数值运算和其他语言的差别不大,调几个特别的写下
例如:
fir_var = 1.0
sec_var = 2.0
print fir_var / sec_var result:0.5
如果两个变量分别为 1,2 那么 result:0
如果两个数都为整数相除那么得到的结果直接取整数没有四舍五入
如果其中一个数为小数那么得到的结果也为小数
还有一个运算符为 //
称作地板除 ,无论两边的数字是否为小数都会取整数
python 可以方便的进行乘方运算
例如:
fir_var = 2
print fir_var**2 result:4
相当于: 2^2
幂运算符要比一元运算符优先级高所以求负数的幂的时候一定要加括号
(-2)**2 result:4 不加括号的result:-4
python 中定义变量例如fir_var = 2 那么就是这个变量名fir_var 指向了 2 这个值
再次定义fir_var = 3 时 fir_var 指向了 3这个值
使用变量前一定要对其进行初始化,否则会报:NameError: name 'fir_var' is not defined 错误 提示没有定义 fir_var 这个变量名
变量名可以包括字母、数字、下划线,但不能以数字开头
2.函数
调用函数可以实现很多小功能
puthon 有很多bulid-in函数:
例如:
abs() 取绝对值
round()四舍五入
input() 获得用户输入等
同时我们也可以自己编写函数来实现一些特定的功能
3.模块
模块用来增强python的功能,将模块导入到python中就能使用其特有的函数
例如:
import math //导入math这个模块
那么就可以使用math.sqrt(4) //求4的平方根
也可以这样是用:
from math import sqrt
这样就不必使用math来调用sqrt了,可以直接使用sqrt(4),但是这种方式要注意如果两个模块中出现同名的函数就会出现错误。
4.保存并运行脚本
在一个编辑器中编写代码 print "i like python" //此处不写helloworld了
保存到文件 pythonlikeme.py
然后切换到当前目录执行 python2 pythonlikeme.py
就可以看到输出 i like python
要像普通程序一样执行的话需要在行头加
#!/usr/bin/env python
同时必须使python文件对于当前用户有可执行权限,如果没有,那么可以用chmod命令添加即可
5.注释
python程序有两种注释
单行用
#要注释的行
多行用
"""
要注释的
多行
"""
注释要用在合理的地方,一些一看就知道意思的就不需要注释了,多行一般用于模块,函数,类的描述
5.字符串
python中定义字符串:
helloworld = "helloword" 也可以用单引号包裹,但是 'hello" 这样是错的
结合上面讲的函数:
input_str = raw_input("input ur name:")
先讲下 input() 和raw_input()的异同点:
他们同样是获得用户输入的数据,input()读取的是表达式如果输入字符串必须用引号包裹否则会报 name error ,而raw_input() 可以取得任何输入,会自动转化为字符串的形式,如果输入 1 那么取得后得到的值为 '1'
我们可以通过helloworld[0] 的形式获得单个字符,从0开始分别获得字符串中的第一位....
但是这种形式不能超过字符串的长度-1,否则会报IndexError: string index out of range
python中也可以helloworld[-1]这样访问
0 1 2 3 4 5 6 7 8 9
h e l l o w o r l d
-10 -9 -8 -7 -6 -5 -4 -3 -2 -1
我们可以对字符串自行切片
helloworld[:] //得到一份原字符串的拷贝
helloworld[:7] // 0-7 不包括7 result:hellowo
helloworld[:-5] //result: hello
helloworld[3:] //result:loworld 包括3
helloworld[3:6]//result:low
python判断一个字符串是否是回文数:
word = "madman"
is_palindrome = word.find(word[::-1])
这里的关注点是:切片的第三个参数是step,如果word[::-1]写的话会返回倒序的字符串序列
>>> word ="AshinLee"
>>> word[::-1]
>>> 'eeLnihsA'
在Java中字符串与数字相加的结果为字符串,但是在python中字符串与数字是不能相加的
在交互式解释器中输入 print "!"+3 会报如下错误:TypeError: cannot concatenate 'str' and 'int' objects
但是却可以相乘 print "!"*3 result:"!!!"
如果在输出的字符串中包含转移字符,那么可以这么输出:print r"i like \n python" 或者 print "i like \\n python"
r 表示以原始字符串输出
以上是对《Beginning Python》和 udacity上第一单元所学的总结,如有错误欢迎指出。