某某茶叶有限公司欢迎您!
金沙棋牌在线 > 金沙棋牌在线 > Python零基础入门看完这一篇就够了: 零基础入门笔记

Python零基础入门看完这一篇就够了: 零基础入门笔记

时间:2019-12-01 12:44

时间:2018年9月4日 22:54:49     #请各位读者注意时效性   以下Python学习笔记基于Python3

学习python有一年多了,希望通过这篇两万字的学习笔记来复习了,也能让后来者少走一点弯路。在慕课网课程笔记的同时加入了一部分自己的经验补充。

注:所有代码部分均为连续的,“结果”为在jupyter分步运行结果
代码部分

Python入门和基础,Python入门基础

懒得改格式了,将就一下

  • [√] 慕课网Python开发环境搭建: 配开发环境
  • [√] 廖雪峰老师在慕课网的课程: Python入门
class human:  #类 定义
    #类的属性
    name = 'someone' 
    age = 100
    #类的方法
    def my_name(self):
        print('my name is',self.name)
    def my_age(self):
        print('my age is',self.age)
    def eat(self):
        print('eat')
    def think(self,a,b):
        print(a+b)

person1 = human() #创建一个person1的对象

person1.name

Python应用领域

Python可以应用于众多领域,如:数据分析、组件集成、网络服务、图像处理、数值计算和科学计算等众多领域。目前业内几乎所有大中型互联网企业都在使用Python,如:Youtube、Dropbox、BT、Quora(中国知乎)、豆瓣、知乎、Google、Yahoo!、Facebook、NASA、百度、腾讯、汽车之家、美团等。互联网公司广泛使用Python来做的事一般有:自动化运维、自动化测试、大数据分析、爬虫、Web 等。

Python学习笔记
1.Python源于1989年圣诞期间,作者:Guido van Rossum
2.任何语言都有缺点,Python也不例外。如:运行速度慢、代码不能加密
3.优点:可以跨平台。
4.命令行写Python好处是可以直接得到结果,坏处是没办法保存。文本编辑器写代码可以保存。
5.print()是输出方法,如果是输出字符串需要添加引号'',遇到逗号(,)会空格一行。
6.input()是输入方法,它会把用户输入的东西变成字符串,并存放到一个变量里。括号里的东西能让用户看到提示。
7.Python的语法比较简单,采用缩进方式。不像传统的语言有中括号。
8.注释用#符号,注释是给人看的,可以是任意内容,解释器会忽略掉注释。
9.数据类型:整数、浮点数、字符串、布尔值、列表、字典等。
10.转义字符:
11.布尔值可以用and、or或not运算。
12.变量名必须是大小写英文、数字和_的组合,且不能用数字开头。
13.变量本身类型不固定的语言称之为动态语言,固定类型的称之静态语言,常量是一个不能变的变量。
14.ord()函数获取字符的整数表示,chr()函数把编码转换为对应的字符。
15.len()函数计算的是str的字符数。
16.在Python中,采用的格式化方式和C语言是一致的,用%实现,举例如下:(%d整数 %s字符串 %f浮点型)
  s = 100
  print('get %d' %s)
  get 100

Mark之前别忘了点个赞哦。
推荐前往我的个人博客进行阅读:http://blog.mtianyan.cn/
分章目录,超宽代码显示区。更爽哦。
知识点标注ctrl + f 搜索知识点查看。重要及较难编程题采用天涯标注。

结果:
'someone'

为什么是Python而不是其他语言?

C 和 Python、Java、C#等

    C语言: 代码编译得到 机器码 ,机器码在处理器上直接执行,每一条指令控制CPU工作

其他语言: 代码编译得到 字节码 ,虚拟机执行字节码并转换成机器码再后在处理器上执行

Python 和 C  Python这门语言是由C开发而来

  对于使用:Python的类库齐全并且使用简洁,如果要实现同样的功能,Python 10行代码可以解决,C可能就需要100行甚至更多.
  对于速度:Python的运行速度相较与C,绝逼是慢了

Python 和 Java、C#等

  对于使用:Linux原装Python,其他语言没有;以上几门语言都有非常丰富的类库支持
  对于速度:Python在速度上可能稍显逊色

所以,Python和其他语言没有什么本质区别,其他区别在于:擅长某领域、人才丰富、先入为主。

  补充:如果你不太确定应该用什么,%s永远起作用,它会把任何数据类型转换为字符串。如果要输出'%'字符,可用%%代替
17.练习:小明的成绩从去年的72分提升到了今年的85分,请计算小明成绩提升的百分点,并用字符串格式化显示出'xx.x%',只保留小数点后1位。示例:
  s1 = 72
  s2 = 85
  s3 = (s2-s1)/72*100
  print('%.1f%%' %s3) #输出为18.1%

Python开发环境搭建

搭建环境分为两个版本:

  • 基础版,供初学者快速安装体验。
  • 进阶版, 供对于数据科学,机器学习有兴趣者安装。

推荐:安装进阶版,一步到位。

person1.name = 'zhangsan' #修改
print(person1.name)

Python的种类

  • Cpython

Python的官方版本,使用C语言实现,使用最为广泛,CPython实现会将源文件(py文件)转换成字节码文件(pyc文件),然后运行在Python虚拟机上。

  • Jyhton

Python的Java实现,Jython会将Python代码动态编译成Java字节码,然后在JVM上运行。

  • IronPython

Python的C#实现,IronPython将Python代码编译成C#字节码,然后在CLR上运行。(与Jython类似)

  • PyPy(特殊)

Python实现的Python,将Python的字节码字节码再编译成机器码。
RubyPython、Brython ...

 

基础版:Windows下安装python环境(2.7 | 3.x)

官网: https://www.python.org/

结果:
zhangsan

Python环境 

  • Windows

1``、下载安装包

``https:``/``/``www.python.org``/``downloads``/ 2``、安装 ``默认安装路径:C:python27 3``、配置环境变量 ``【右键计算机】``-``-``》【属性】``-``-``》【高级系统设置】``-``-``》【高级】``-``-``》【环境变量】``-``-``》【在第二个内容框中找到 变量名为Path 的一行,双击】 ``-``-``> 【Python安装目录追加到变值值中,用 ; 分割】 ``如:原来的值;C:python27,切记前面有分号

  • linux:

Linux的yum依赖自带Python,为防止错误,此处更新其实就是再安装一个Python 金沙棋牌在线 1

 1 查看默认Python版本
 2 python -V
 3  
 4 1、安装gcc,用于编译Python源码
 5     yum install gcc
 6 2、下载源码包,https://www.python.org/ftp/python/
 7 3、解压并进入源码文件
 8 4、编译安装
 9     ./configure
10     make all
11     make install
12 5、查看版本
13     /usr/local/bin/python2.7 -V
14 6、修改默认Python版本
15     mv /usr/bin/python /usr/bin/python2.6
16     ln -s /usr/local/bin/python2.7 /usr/bin/python
17 7、防止yum执行异常,修改yum使用的Python版本
18     vi /usr/bin/yum
19     将头部 #!/usr/bin/python 修改为 #!/usr/bin/python2.6

View Code

 

未完待续。。。(一周一更)

安装包下载。

选择download下的windows。点击进入。

金沙棋牌在线 2

download下的windows

下图中红框为64位版本。32位版本可以选择Windows x86 executable installer

金沙棋牌在线 3

选择3.7下的executable installer

2.7版本的安装包下载:

金沙棋牌在线 4

2.7版本

person1.eat()

基础知识

 

安装python。

点击下一步下一步进行默认安装即可。(跟平常装个qq啥的没两样)

结果
eat

>>在linux上直接用python执行shell命令

1 import os
2 os.system('df -h')

金沙棋牌在线 5

  • 获取到linux上的命令执行的结果
1 cmd_res = os.popen('df -h').read()
  • 打印系统环境变量

金沙棋牌在线 6

  • 数据类型

>>列表
name = [1,2,3,4,5,6]
name.insert(1,0)
name.append(7)
name.remove(4)
del name[2:4]
--修改步长
name[::2]
--判断是否在列表中
print(5 in name)
--判断次数
print (name.count(5))
--查找位置
name.index(5)
--扩展一个新的列表
name.extend(new_list)
--翻转
name.reverse()
--复制(浅拷贝,深拷贝需要用到copy模块)
name.copy()
--按照某分隔符将列表合并成字符串
'|'.join(mylist)

>>字符串
--移出空白
strip()
--切片
str.split(',')
--格式化
msg = 'hello {0},age,{1}'
msg2 = msg.formate('majh',22)

--填充
msg = 'hello'
msg.center(40,'-')
--判断是否有特殊字符
str.isalnum()

>>数据运算
>>字典
--查看
dic['name']
--添加(提供一个不存在的key即可)
dic['new_name']=123
--删除
dic.pop(key)
dic.keys()
dic.values()
--循环遍历(效率低)
for k,v in dic.items():
print(k,v)

--效率高
for key in dic:
print(key,dic[key])

>>Set 集合
无序,不重复序列
--创建
s = {1,2,3,4,5}
s = set((1,2,3,4,5))
# s1.symmetric_difference_update()
#取出s1中存在s2中不存在的,然后更新到s1中
s1.difference_update(s2)
print(s1)
#取出s1中存在s2中不存在的,s2中存在s1中不存在的,然后更新到s1中
s1.symmetric_difference_update(s2)
print(s1)

--存在就删除,不存在不报错
s.discard(111)
--存在就删除,不存在就报错
s.remove(111)
--添加
s.add(111)
--批量添加
s.update(set)

 

安装完成的测试。

win(即徽标键) + R 输入cmd
打开命令行。输入python不报错的进入python控制台下。

person1.my_age()

函数

1.在Python中如果不指定return返回值,默认返回None
2.函数参数
1.普通参数
2.默认参数(必须要放在参数的最后)
3.指定参数
4.* 默认将传入的参数,全部放入到元组中
5.**默认将传入的参数,全部放入到字典中
3.如果参数带*,那调用函数时会吧参数转换成元组

4.三元运算
username = 'Meek' if 1 == 2 else 'Alex'

5.内置函数
chr() #将数值转换为ascii
ord() #将ascii转换为数值

compile()
eval() #将字符串转换为Python可识别的特殊代码,然后执行
exec()
divmod(x, y) #得到x/y商和余数

isinstance('Meek', str) # 判断对象是否是某个类的实例

filter()
map()
#print(list(filter(lambda x: x > 10, range(20))))

>>文件操作
f = open('db','r') #只读
f = open('db','w') #只写,先清空
f = open('db','x') #存在报错,不存在创建一个新的
f = open('db','a') #追加
f = open('db','rb') #只读 打开的时候以二进制打开

>>装饰器:在不改变原函数功能的前提下额外的给函数增加功能
如果在某个函数上面一行加上@装饰器名称,则执行该函数时会完成以下功能:
1.将函数名作为参数传递给装饰器函数执行装饰器函数
2.将装饰器函数的返回值重新赋值给该函数
通俗理解:将该行重新赋值给装饰器的内层函数

进阶版:Windows下Anaconda2(Python2)和Anaconda3(Python3)的共存

转载

原文地址:http://blog.csdn.net/infin1te/article/details/50445217

Anaconda是一个Python的科学计算发行版,包含了超过300个流行的用于科学、数学、工程和数据分析的Python Packages。由于Python有2和3两个版本,因此Anaconda也在Python2和Python3的基础上推出了两个发行版,即Anaconda2和Anaconda3。

以上文字摘自转载博客。通俗讲就是一个python的各种科学计算包的大合集版本。省去了自己安装大量基本包的过程。

Tips: 3.x版本建议选择Python 3.5.1 |Anaconda 4.1.0 (64-bit)

以后如果要使用python进行TensorFlow windows版的配置可以省下时间。

这是博主自入python坑以来找到的最好的共存方法,没有出过问任何题!!!

这是博主自入python坑以来找到的最好的共存方法,没有出过问任何题!!!

这是博主自入python坑以来找到的最好的共存方法,没有出过问任何题!!!

金沙棋牌在线 7

最终实现

结果
my age is 100

字符串格式化

1、字符串格式化
>> 百分号格式化
s = '%(name)s age is %(age)d,购买金额为 %(fee).2f' %
{'name': 'Meek', 'age': 20, 'fee':232.2323}
print(s)
>>当格式化字符串中出现了百分号占位符,要显示百分号,要用两个百分号标识一个
tpl = "i am %s" % "alex"
 
tpl = "i am %s age %d" % ("alex", 18)
 
tpl = "i am %(name)s age %(age)d" % {"name": "alex", "age": 18}
 
tpl = "percent %.2f" % 99.97623
 
tpl = "i am %(pp).2f" % {"pp": 123.425556, }
 
tpl = "i am %.2f %%" % {"pp": 123.425556, }

2.format格式化
tpl = "i am {}, age {}, {}".format("seven", 18, 'alex')
  
tpl = "i am {}, age {}, {}".format(*["seven", 18, 'alex'])
  
tpl = "i am {0}, age {1}, really {0}".format("seven", 18)
  
tpl = "i am {0}, age {1}, really {0}".format(*["seven", 18])
  
tpl = "i am {name}, age {age}, really {name}".format(name="seven", age=18)
  
tpl = "i am {name}, age {age}, really {name}".format(**{"name": "seven", "age": 18})
  
tpl = "i am {0[0]}, age {0[1]}, really {0[2]}".format([1, 2, 3], [11, 22, 33])
  
tpl = "i am {:s}, age {:d}, money {:f}".format("seven", 18, 88888.1)
  
tpl = "i am {:s}, age {:d}".format(*["seven", 18])
  
tpl = "i am {name:s}, age {age:d}".format(name="seven", age=18)
  
tpl = "i am {name:s}, age {age:d}".format(**{"name": "seven", "age": 18})
 
tpl = "numbers: {:b},{:o},{:d},{:x},{:X}, {:%}".format(15, 15, 15, 15, 15, 15.87623, 2)
 
tpl = "numbers: {:b},{:o},{:d},{:x},{:X}, {:%}".format(15, 15, 15, 15, 15, 15.87623, 2)
 
tpl = "numbers: {0:b},{0:o},{0:d},{0:x},{0:X}, {0:%}".format(15)
 
tpl = "numbers: {num:b},{num:o},{num:d},{num:x},{num:X}, {num:%}".format(num=15)

Linux下的python使用。

  • Linux 默认安装python,建议安装IPython;
  • sudo apt-get install ipython安装Ipython(支持Tab键自动补齐)
  • 使用Vim来创建.py文件
  • 输入python即可查看当前版本

IPython是Python的交互式Shell,提供了代码自动补完,自动缩进,高亮显示,执行Shell命令等非常有用的特性。特别是它的代码补完功能.

person1.think(10,23)

模块

好处:
便于分类管理;
提高代码重用性;

模块导入时寻找路径依据:sys.path
自定义搜索模块:sys.path.appen('xxxx')

第三方安装:
1.pip安装
python2.7需要安装pip,然后pip install moudle_name
对于python3,自带了pip3,
2.源码安装
>下载源码
>解压,cd到压缩位置,python3 setup.py install

》》序列化--将python可识别的数据类型转换为字符串
JOSN
使用dumps和loads函数
dumps:是将python类型转换为字符串
loads:将字符串转换为python类型
注意:通过loads反序列化时必须使用双引号

》》
dump:将字符串序列化后写入到文件中
loads:从文件中读取数据然后转换为python类型
pickle

》》比较
json:跨平台,只支持基本数据类型
pickle:只支持python,支持各种类型的序列化

天气url:

》》时间模块
import time
import datetime

# 返回自1970年1月1号到现在的时间戳
print(time.time())
# 返回当前时间
print(time.ctime())
# 返回时间列表
t = time.gmtime()
print(t.tm_year, t.tm_mon, t.tm_mday)
print(time.localtime())
# 把时间对象转换为时间戳
print(time.mktime(time.localtime()))
# 时间格式化
print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()))
# 时间反格式化
print(time.strptime('2016-10-12', '%Y-%m-%d'))

print('-------datetime--------')
print(datetime.date.today())
# 输出当前时间
print(datetime.datetime.now())
# 获取10天前时间
now = datetime.datetime.now()
day = datetime.timedelta(days=-10, hours=-10, minutes=10, seconds=10)
print(now)
print(day)
print(now+day)

常用的时间计算

金沙棋牌在线 8

 1 # 返回自1970年1月1号到现在的时间戳
 2 print(time.time())
 3 # 返回当前时间
 4 print(time.ctime())
 5 # 返回时间列表
 6 t = time.gmtime()
 7 print(t.tm_year, t.tm_mon, t.tm_mday)
 8 print(time.localtime())
 9 # 把时间对象转换为时间戳
10 print(time.mktime(time.localtime()))
11 # 时间格式化
12 print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()))
13 # 时间反格式化
14 print(time.strptime('2016-10-12', '%Y-%m-%d'))
15 
16 print('-------datetime--------')
17 print(datetime.date.today())
18 # 输出当前时间
19 print(datetime.datetime.now())
20 # 获取10天前时间
21 now = datetime.datetime.now()
22 day = datetime.timedelta(days=-10, hours=-10, minutes=10, seconds=10)
23 print(now)
24 print(day)
25 print(now+day)
26 # 时间快速加减法
27 print(datetime.datetime.now().replace(2015,1,1))
28 t1 = datetime.datetime.now().replace(2015,1,1)
29 t2 = datetime.datetime.now()
30 print(t2-t1)

View Code

 

----------------------未完待续-------------------------------

Python应用领域 Python可以应用于众多领域,如:数据分析、组件集成、网络服务、图像处理、数值计算和科...

python文件类型(常识)

python执行过程:

.py文件 --> python解释器 --> 字节码文件 --> python解释器 --> 二进制文件 --> 内存、运行 --> 打印结果

字节码文件:

  • .pyc
    转换方式: python -m py_compile xxx.py
    作用:提高程序的加载速度

  • .pyo(优化编译的.pyc文件)
    转换方式: python -O -m py_compile xxx.py
    作用:提高程序的运行速度

结果
33

eclipse下的python环境安装。

添加python开发环境到eclipse:

  • 点击help——install New Software
  • 点击add,弹出新窗口:
  • Name:填PyDev
  • Location:填 http://pydev.org/updates
  • 确认后会出现 PyDev,勾选Pydev。
  • pydev for eclipse--> next--> accept-->finish
  • file--> new--> project -->Pydev下 pydevProject

python的dev下载地址:http://pydev.org/updates

金沙棋牌在线 9

mark

class human:  #类 定义
    def __init__(self,name,age):#初始化,创建对象时会执行
        self.name = name #由类的外部传进来
        self.age = age        #由类的外部传进来

    #类的方法
    def my_name(self):
        print('my name is',self.name)
    def my_age(self):
        print('my age is',self.age)
    def eat(self):
        print('eat')
    def think(self,a,b):
        print(a+b)

person2 = human()#没有传入参数,所以报错

Python的初次体验

结果

TypeError Traceback (most recent call last)
<ipython-input-10-f36437239922> in <module>()
----> 1 person2 = human()

TypeError: init() missing 2 required positional arguments: 'name' and 'age'

person2 = human('xiaoming',10)#正确创建方法

person2.name

结果
'xiaoming'

person2.my_age()

结果
my age is 10

class human:  #类 
    def __init__(self,name='someone',age=10):#创建对象时会执行 
        self.name = name
        self.age = age

    #类的方法
    def my_name(self):
        print('my name is',self.name)
    def my_age(self):
        print('my age is',self.age)
    def eat(self):
        print('eat')
    def think(self,a,b):
        print(a+b)

person3 = human()#因为类定义时候默认定义了初始化参数的值,所以正确创建了对象

person3.my_name()

结果
my name is someone

person3 = human(name='xiaohong',age=20) #正确创建对象

person3.my_name()

结果
my name is xiaohong //因为创建对象时候赋值了,所以name()改变了

python语言介绍

全世界有几百种编程语言,但是流行的只有十几种,python就是其中一种。荷兰人龟叔于1989年圣诞节创立。

特点:优雅,明确,简单

适合的领域:

  • web网站和各种网络服务;
  • 系统工具和脚本;

作为胶水语言把其他语言开发的模块包装起来方便使用。

Python是一门高级语言,所以不适合贴近硬件的代码:

  • 比如驱动程序(首选C)
  • 移动开发,有各自的语言,(objectC,swift/java)
  • 游戏开发(首选C/C++)。

Python实际应用:

YouTube,豆瓣,搜狐邮箱;Openstack开源云计算平台。Google,Yahoo,NASA。

语言之间的对比:

C编译为机器码;JAVA编译为字节码;python为解释执行。

金沙棋牌在线 10

python与其他语言对比

缺点: 运行慢,Python源码不能加密。

Python版本的选择

博主建议选择安装环境篇的进阶版:2.7版本与3.x版本共存。

3.x版本建议选择Python 3.5.1 |Anaconda 4.1.0 (64-bit)
以后如果要使用python进行TensorFlow windows版的配置可以省下时间。

windows下安装python

参考:搭建Python开发环境

第一个python程序

cmd下输入python。进入交互式环境。

  • 命令行模式启动python:
    python

  • 命令行模式执行python文件
    python 目录/xxx.py

  • 命令行模式关闭python:
    exit()

注意:不要使用word,或者windows下自带的记事本来进行代码编写。

推荐使用:

  • 轻量级:sublime Text 或 editplus
  • 重量级(较大工程) : pycharm Professional

2.7版本专属:

print 'hello,world!'

3.x版本(2.7版本也可以正常运行):

print ("hello,world!")

Python变量和数据类型

讲解Python基本的数据类型.包括整数、浮点数、字符串和布尔类型,以及变量的概念和基本的数据运算。

数据类型

整数

在Python程序中,整数的表示方法和数学上的写法一模一样.

例如:1,100,-8080,0,等等。十六进制0x前缀和0-9a-f表示.

例如:0xff00,0xa5b4c3d2,等等。

浮点数

浮点数也就是小数,之所以称为浮点数: 因为按照科学记数法表示时,一个浮点数的小数点位置是可变的

比如,1.23x109和12.3x108是相等的。

浮点数可以用数学写法: 如1.23,3.14,-9.01,等等。但是对于很大或很小的浮点数,就必须用科学计数法表示,把10用e替代,1.23x10^9就是1.23e9,或者12.3e8,0.000012可以写成1.2e-5,等等。

整数和浮点数在计算机内部存储的方式是不同的,整数运算永远是精确的(除法难道也是精确的?是的!),而浮点数运算则可能会有四舍五入的误差。

知识点:python2与3不同整除

python2.7下:///金沙棋牌在线, 都是整数除法。

例: 1/2结果为0.后面小数部分会直接去除掉。

python3.x下:

  • / 为浮点数除法(如:1/2=0.5)
  • //为整数除法(如: 1//2 = 0
a = 1   
b = 2
print a+b
#python2.7下想要浮点数除法就得使用类型转换。
print float(a)/b

字符串

字符串是以''或""括起来的任意文本,比如'abc',"xyz"等等。请注意,''或""本身只是一种表示方式,不是字符串的一部分.

因此,字符串'abc'只有a,b,c这3个字符。

布尔值

布尔值和布尔代数的表示完全一致,一个布尔值只有True、False两种值,要么是True,要么是False,在Python中,可以直接用True、False表示布尔值(请注意大小写),也可以通过布尔运算计算出来。

布尔值可以用andornot运算。

and运算是与运算,只有所有都为 True,and运算结果才是 True。

or运算是或运算,只要其中有一个为 True,or 运算结果就是 True。

not运算是非运算,它是一个单目运算符,把 True 变成 False,False 变成 True。

空值

空值是Python里一个特殊的值,用None表示。

None不能理解为0,因为0是有意义的,而None是一个特殊的空值。

编程小任务:

  1. 计算十进制整数 45678 和十六进制整数 0x12fd2 之和。
  2. 请用字符串表示出Learn Python in imooc。
  3. 请计算以下表达式的布尔值(注意==表示判断是否相等):
100 < 99
0xff == 255

题目答案:

print 45678+0x12fd2
print "Learn Python in imooc" 
print 100<99 
print 0xff == 255

运行结果:

123456
Learn Python in imooc
False
True

print语句

print语句可以向屏幕上输出指定的文字。比如输出'hello, world',用代码实现如下:

print 'hello, world'

注意:

  • 当我们在Python交互式环境下编写代码时,>>>是Python解释器的提示符,不是代码的一部分。

  • 当我们在文本编辑器中编写代码时,千万不要自己添加 >>>。

print语句也可以跟上多个字符串,用逗号,隔开,就可以连成一串输出:

print 'The quick brown fox', 'jumps over', 'the lazy dog'

运行结果:

The quick brown fox jumps over the lazy dog

print会依次打印每个字符串,知识点:遇到逗号,会输出一个空格.

print也可以打印整数,或者计算结果:

>>> print 300
300    #运行结果
>>> print 100 + 200
300    #运行结果

漂亮做法:

>>> print '100 + 200 =', 100 + 200
100 + 200 = 300     #运行结果

注意: 对于100 + 200,Python解释器自动计算出结果300.
但是,'100 + 200 ='是字符串而非数学公式,Python把它视为字符串.

编程任务:请用两种方式打印出 hello, python.

实现代码:

#input code
print 'hello, python.'
print 'hello,','python.'

运行结果:

hello, python.
hello, python.

注释

Python的注释以#开头,后面的文字直到行尾都算注释

# 这一行全部都是注释...
print 'hello' # 这也是注释

# 暂时不想运行下面一行代码:
# print 'hello, python.'

注释还有一个巧妙的用途,就是一些代码我们不想运行,但又不想删除,就可以用注释暂时屏蔽掉:

编程任务:

将代码编辑器中的 "print 'hello'" 语句修改成注释语句

实现代码:

# print 'hello'

注释:多行注释

'''
下面是一行被注释代码
下面是两行被注释代码
'''

什么是变量

在Python中,变量的概念基本上和初中代数的方程变量是一致的。

例如,对于方程式y=x*xx就是变量。

x=2时,计算结果是4。当x=5时,计算结果是25

只是在计算机程序中,变量不仅可以是数字,还可以是任意数据类型。

在Python程序中,变量是用一个变量名表示。

知识点:变量名必须是大小写英文、数字和下划线 _ 的组合,且不能用数字开头。比如:

a = 1
t_007 = 'T007'

变量a是一个整数。变量t_007是一个字符串。

在Python中,等号=是赋值语句,可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量,例如:

a = 123    # a是整数
print a
a = 'imooc'   # a变为字符串
print a

知识点: 这种变量本身类型不固定的语言称之为动态语言,与之对应的是静态语言。

静态语言在定义变量时必须指定变量类型,如果赋值的时候类型不匹配,就会报错。例如Java是静态语言,赋值语句如下(// 表示注释):

//这些是java代码
int a = 123; // a是整数类型变量
a = "mooc"; // 错误:不能把字符串赋给整型变量

和静态语言相比,动态语言更灵活,就是这个原因。
请不要把赋值语句的等号等同于数学的等号。比如下面的代码:

x = 10
x = x + 2

如果从数学上理解x = x + 2那无论如何是不成立的.

在程序中,赋值语句先计算右侧的表达式x + 2,得到结果12,再赋给变量x。由于x之前的值是10,重新赋值后,x的值变成12。

最后,知识点: 理解变量在计算机内存中的表示也非常重要。当我们写:a = 'ABC'时,Python解释器干了两件事情:

  1. 在内存中创建了一个'ABC'的字符串;

  2. 在内存中创建了一个名为a的变量,并把它指向'ABC'。

也可以把一个变量a赋值给另一个变量b,这个操作实际上是把变量b指向变量a所指向的数据,例如下面的代码:

a = 'ABC'
b = a
a = 'XYZ'
print b

最后一行打印出变量b的内容到底是'ABC'呢还是'XYZ'?如果从数学意义上理解,就会错误地得出b和a相同,也应该是'XYZ',但实际上b的值是'ABC',让我们一行一行地执行代码,就可以看到到底发生了什么事:

  • 执行a = 'ABC',解释器创建了字符串 'ABC'和变量 a,并把a指向 'ABC'

金沙棋牌在线 11

示意图

执行b = a,解释器创建了变量 b,并把b指向 a 指向的字符串'ABC'

金沙棋牌在线 12

图2

执行a = 'XYZ',解释器创建了字符串'XYZ',并把a的指向改为'XYZ',但b并没有更改:

金沙棋牌在线 13

图3

所以,最后打印变量b的结果自然是'ABC'了。

编程任务:

等差数列可以定义为每一项与它的前一项的差等于一个常数,可以用变量 x1 表示等差数列的第一项,用 d 表示公差,请计算数列

1 4 7 10 13 16 19 ...

前 100 项的和。

实现代码:

x1 = 1
d = 3
n = 100
x100 = x1+(100-1)*d
s2 = (x1+x100)*100/2
s = n*x1+n*(n-1)*d/2
print s,s2

等差数列公式:

  • (首项+尾项)*项数/2
  • 项数*首项+项数*(项数-1)*公差/2

运行结果:

14950 14950

定义字符串

字符串可以用''或者""括起来表示。

如果字符串本身包含'怎么办?比如我们要表示字符串 I'm OK,这时,可以用" "括起来表示:

"I'm OK"
'Learn "Python" in imooc'

类似的,知识点: 如果字符串包含",我们就可以用' '括起来表示:

如果字符串既包含'又包含"怎么办?

知识点:转义

这个时候,就需要对字符串的某些特殊字符进行转义,Python字符串用进行转义。

要表示字符串 Bob said "I'm OK".
由于 '"会引起歧义,因此,我们在它前面插入一个表示这是一个普通字符,不代表字符串的起始,因此,这个字符串又可以表示为

'Bob said "I'm OK".'
# 在要保留原状的字符串前面加上右斜杠

注意:转义字符 不计入字符串的内容中。

常用的转义字符还有:

  • n表示换行
  • t 表示一个制表符
  • \ 表示 字符本身

编程任务:

请将下面两行内容用Python的字符串表示并打印出来:

  Python was started in 1989 by "Guido".
  Python is free and easy to learn.

s = 'Python was started in 1989 by"Guido".nPython is free and easy to learn.'
print s

raw字符串与多行字符串

如果一个字符串包含很多需要转义的字符,对每一个字符都进行转义会很麻烦。为了避免这种情况,我们可以在字符串前面加个前缀 r ,表示这是一个 raw 字符串,里面的字符就不需要转义了。例如:

r'(~_~)/ (~_~)/'

金沙棋牌在线 14

mark

解释:

这个例子举得不是很好。
可以看出raw加上之后。可能产生误会的被修改为\(\ 表示 字符本身)

  • 不加上r 只有(并没有合成转义字符。
  • 加上r。需要被转义,经过转义后显示出来还是自己。