Python简介

Python是一种解释型,面向对象,动态数据类型的高级程序设计

Python,第一个公开发行版本于1991

Python的创始人:吉多.范罗苏姆

像Perl语言一样Python源代码同样遵循GPL(GNU General Public License)协议

1.编译型语言和解释型语言的区别

编译型语言--通过编译器--最终可执行文件 跨平台性较差,可执行性差

解释型语言,是在运行的时候将程序翻译成机器语言,所以运行速度相对于编c/c++等都是编译型语言,而java,C#等都是解释型语言

2.设计初衷:简单,可读性强,执行效率高,代码量少,专事专做

@1解释型语言,开发过程没有了编译这个环节

@2python是一个交互性语言

@3python是面向对象语言:这意味着Python支持面向对象的风格或代码封装在对象的编程

3.面向过程和面向对象

4.ASCII码不够用 gb2312 unclode

5.python 语法:没有缩进

6.python环境的搭建

安装ipython:安装包和Pycharm

安装要在普通管理员下进行,如果安装错误。ls -a 删除 .PyCharmCE2016.3

解压安装包:tar zxf pycharm-community-2016.3.2.tar.gz

cd 目录的bin下,ls,找到这个pycharm,然后sh pycharm.sh

对python中字体修改:

File-->setings-->Editor-->Color&Fonts-->Font-->Primary front(字体格式)  size(字体大小)-->ok 设置成功

格式:ctrl+Alt+L 这个可以让格式编程python默认格式

添加默认信息:

File-->setings-->Editor-->Code Style--> File and Code Templates-->Python Script-->中添加:

# _*_ coding:utf-8 _*_
"""
file: ${NAME}.py
date: ${YEAR}-${MONTH}-${DAY} ${TIME}
author: westos-dd
desc:
"""

添加这些是为了在每次新建一个python自动添加注释内容

7.python中的注释

单行注释# 这是一个单行注释

多行注释

"""
这是一个多行注释
"""

8.程序的执行

在说这个问题之前,我们先来说两个概念,PyCodeObject和pyc文件。

我们在硬盘上看到的pyc自然不必多说,而其实PyCodeObject则是Python编译器真正编译成的结果。我们先简单知道就可以了,继续向下看。

当python程序运行时,编译的结果则是保存在位于内存中的PyCodeObject中,当Python程序运行结束时,Python解释器则将PyCodeObject写回到pyc文件中。

当python程序第二次运行时,首先程序会在硬盘中寻找pyc文件,如果找到,则直接载入,否则就重复上面的过程。

所以我们应该这样来定位PyCodeObject和pyc文件,我们说pyc文件其实是PyCodeObject的一种持久化保存方式。

python3和ipython3区别 python和ipython的区别_Python

9.python中变量的定义和使用:

我在python中定义了一个qq_number的变量,使用时直接用变量名使用:

# 定义一个qq号码
qq_number = '1234'
print qq_number

10.变量类型的说明

# 变量不需要指定类型python会根据你定义的格式自己匹配类型
# string表示字符串型
name = '徐英'
print name
# int表示整型
age = 18
print age
# bool类型:默认情况下True为1,可以进行加减运算,False为0

gender = True
print gender
# int表示整型
height = 165
print height
#float表示浮点型
weight = 60.0
print weight

注意单步调试可以看到类型

Ipython用type()也可以看到

11.用户输入获取变量,并且要改为可以计算的类型字符串类型不能进行运算。

price = float(raw_input('水果的单价'))
weight = float(raw_input('水果的重量'))
money=price*weight
print money

python3和ipython3区别 python和ipython的区别_python_02

12.在python中可以使用print函数将信息输出到控制台,如果希望输出文字信息的同时,一起输出数据,就需要用到格式化操作符

%被称为格式化操作符,专门用于处理字符串中的格式,%和不同的字符连用,不同类型的数据,需要使用不同的格式字符

格式化字符串 含义

%s 字符串

%d 有符号十进制整数,%06d表示输出的整数显示位数字不足时用0填充

%f 浮点数,%.02f表示小数点后只显示两位

%% 输出%

语法格式:

Print ‘格式化字符串’ %变量1

Printf ‘格式化字符串’ %{变量1,变量2...}#用格式化字符串把需要填写变量的地方先占上

#0输出水果单价金额

price = float(raw_input('水果的单价'))
weight = float(raw_input('水果的重量'))
money = price * weight
print '水果的单价为%2f 您购买了%2f 总金额为%4f' % (price, weight, money)

python3和ipython3区别 python和ipython的区别_python3和ipython3区别_03

# 1定义一个字符串name,输出:我的名字是,请多多关照
name = 'lily'
print '我的名字叫 %s, 请多多关照' % name

python3和ipython3区别 python和ipython的区别_闰年_04

# 2定义整数变量student——num,输出:我的学号是000005
# %06d:不到六位就补0,如果是六位,该是多少就是多少
student_num = 5
print '我的学号是%06d' %student_num

python3和ipython3区别 python和ipython的区别_python3和ipython3区别_05

# 3定义一个小数scale,输出:数据的比例是 %
scale = 0.1
print '数据的比例是%.2f' %scale*10
print '数据的比例是%.2f%%' % (scale * 1)

python3和ipython3区别 python和ipython的区别_字符串_06

练习一:

Name = raw_input('请输入学生姓名:')
print Name
Chineae = float(raw_input('请输入语文成绩:'))
Math = float(raw_input('请输入数学成绩:'))
English = float(raw_input('请输入英语成绩:'))
Ava_grade = (Chineae + Math + English) / 3
print '平均成绩是%.01f' % Ava_grade
Pren_chinese = Chineae / (Chineae + Math + English)
print '语文占总成绩的百分比为%.f%%' %(Pren_chinese*100)

python3和ipython3区别 python和ipython的区别_闰年_07

13.变量名的定义

名字要:见名知意
        可以由字母,下划线饥饿数字组成
        不能以数字开始
        不能和关键字重合
调用工具查看python关键字:
        import keyword
        print keyword.kwlist
驼峰命名法
    1大驼峰:每个单词的首字母都大写
    FirstName
    2小驼峰:第一个单词字母小写,之后的大写
    firstName

14.和电脑玩石头剪刀布游戏

import random

player = int(raw_input('输入玩家出拳:(石头/1剪刀/2布/3)'))
print player
computer = random.randint(1, 3)
print computer
if ((player == 1 and computer==2)
    or(player == 2 and computer==3) \
        or(player == 3 and computer == 1)):
    print '玩家获胜'
elif(player==computer):
    print '平局'
else:
    print '玩家输'

注意:@1在python中要使用随机数,首先需要导入随机数模块--‘工具包‘

导入模块后,可以直接在模块名称后面敲一个,然后Tab键,会提示该模块中包含的所有函数

random,randint (a,b),返回[a,b]之间的整数,包含a和b

eg:random.randint(12,20):生成随机数n:12<=n<=20

random.randint(20,20):结果永远是20

random.randint(20,12):结果会报错:下限必须小于上限

#1导入随机工具包

#2注意,在导入工具包的时候,应该将导入的语句,放在文件顶部

#3因为,这样可以方便下方的代码,在任何需要的时候,使用工具包中的工具

15.if判断的条件:    elif的用法
        条件成立的时候,要做的事情
        ...
elif 条件2:
        ...
else:
        条件不成立的时候,要做的事情
        ...
elif和else都必须和if联合使用,不能单独使用
"""
 

book_name = raw_input('输入选择')
if book_name=='1':
    print '数学'
elif book_name=='2':
    print '英语'
elif book_name=='3':
    print '化学'
else:
    print '其他'

16.逻辑运算:and or not

17.判断闰年

python3和ipython3区别 python和ipython的区别_python3和ipython3区别_08

Year = int(raw_input('输入要判断的年份'))
if ((Year % 4 == 0) and (not Year % 100 == 0)) or (Year % 400 == 0):
    print '%d是闰年' % Year
else:
    print '不是闰年'

18.输出月份

python3和ipython3区别 python和ipython的区别_python_09

Year = int(raw_input('输入要判断的年份'))
Month = int(raw_input('输入要判断的月份'))
if Month==(1 or 3 or 5 or 7 or 8 or 12):
    print '本月31天'
elif Month==(4 or 6 or 9 or 10 or 11 ):
    print '本月30天'
elif(((Year % 4 == 0) and (not Year % 100 == 0)) or (Year % 400 == 0))and Month==2 :
    print '本月是29天'
else:
    print '本月是28天'