Python(二)python简介、变量、数值类型、操作符、I/O、判断|循环语句

来源:互联网 发布:英雄联盟官方代练 知乎 编辑:程序博客网 时间:2024/06/06 07:31

一、简介

1.Python和shell一样,是解释型的编程语言

2.Python解释器

- cpython
- ipython:上一章介绍过
- pypy
- jython
- IronPython: 常用于.Net

3.Python脚本

查看python命令的位置:

[root@python mnt]# which python
/usr/bin/python

编码格式:

ASCII码: 只能识别英文,70多个,一个数字对应一个字符;   1Byte = 8bit  2^8=255
Unicode: 2^16=65536, 可以识别各种语言,但是每两个字节代表一个字符.
utf-8:可变长字符编码,英文一个字节存储, 其他语言3个字节存储.
GB2312:

写一个python脚本:

[root@python mnt]# vim hello.py

#!/usr/bin/python  #指定python解释器,也可以使用#!/usr/bin/env python增强代码可移植性#coding:utf-8      #指定编码格式,指定后脚本才能识别中文,否则执行报错print "你好,python"   #脚本内容为输出你好,Python
执行python脚本:

方法一:python+脚本名
[root@python mnt]# python hello.py
你好,python
方法二:增加可执行权限

[root@python mnt]# chmod +x hello.py
[root@python mnt]# ./hello.py
你好,python
方法三:将脚本加到命令行
[root@python mnt]# chmod +x hello.py
[root@python mnt]# cp hello.py /bin       #复制脚本到系统/bin目录
[root@python mnt]# cd                              #退出到家目录
[root@python ~]# hello.py                         #现在hello.py就可以像系统命令一样去使用
你好,python

二、变量

- 变量是内存中的一块区域。
- 变量的命名: 变量名由字母,数字,下划线组成,不能以数字开头。

python中地址变量与c语言刚好相反,一条数据包含包含多个标签:

可以看到,a和b的id是一样的

三、数值类型

注:查看变量类型可以使用type(),括号中填变量名

1.python支持的数值类型: int(整型), long(长整型), float(浮点型), bool(波尔类型), complex(复数类型,python中特有的类型)

int:

In [15]: a=111

In [16]: type(a)
Out[16]: int

long:强制定义为长整型: num = 999L

In [17]: b=111L

In [18]: type(b)
Out[18]: long

float:1.2e10代表的数值为1.2的10次方

In [19]: pi=3.1415926

In [20]: type(pi)
Out[20]: float

In [21]: c=1.2e10

In [22]: type(c)
Out[22]: float

bool:只包含True|False两种,注意开头字母大写,不识别小写。

In [9]: a=True

In [10]: type(a)
Out[10]: bool

In [11]: b=False

In [12]: type(b)
Out[12]: bool

complex:python对复数提供内嵌支持,eg: 3.14j, 8.32e-36j

In [23]: d=1+1j

In [24]: type(d)
Out[24]: complex

2.python类型转换的工厂函数: int('1'), long(1), float(1), bool(-1), bool(0), complex(1)

In [56]: a=3

In [57]: type(a)
Out[57]: int

In [58]: b=long(a)

In [59]: type(b)
Out[59]: long

bool:

In [62]: a=1

In [63]: bool(a)
Out[63]: True

In [64]: not bool(a)
Out[64]: False
   
In [65]: bool(-1)
Out[65]: True

In [66]: bool(1)
Out[66]: True

In [67]: bool(0)
Out[67]: False

3.BIF: built-in function(cmp, type, str)内置函数

cmp:比较大小

In [37]: cmp(1,2)
Out[37]: -1

In [38]: cmp(2,1)
Out[38]: 1

In [39]: cmp(1,1)
Out[39]: 0

type(变量名):查看变量类型

In [42]: a=1

In [43]: type(a)
Out[43]: int

str:转换为字符串

In [40]: str(1)
Out[40]: '1'

4.不同进制转换: hex(16), oct(8)

hex转换为16进制

oct转换为8进值

In [47]: hex(1)
Out[47]: '0x1'

In [48]: oct(1)
Out[48]: '01'

5.ASCII码转换: ord('A'), chr(97)

ord‘A’)将A转换为对应的ASDII码  

chr反向查询ASDII对应的字符


四、操作符

算术操作符: +, -, *, /, **, //  (注意: /在python2和python3中作用不同)

In [25]: 5/2
Out[25]: 2

In [26]: 5//2
      #两种方式的结果都是5除以2等于2
Out[26]: 2

In [27]: from __future__ import division
  #使用这条指令将当前2.x环境转换为3.0版本python的精确计算方式

In [28]: 5/2
Out[28]: 2.5
     #现在执行5除以2得到的是2.5而不是2

In [29]: 5//2
      #5//2才会只取整数位
Out[29]: 2


赋值运算符: +=, -=, *=...... (注意: a+=2 实质上是a=a+2; python中不支持a++,支持++a);
比较运算符: >, < , >=, <=, ==, != (注意: 结果是bool类型,只能是True或者False);
逻辑运算符: and(逻辑与), or(逻辑或), not(逻辑非) (and,全真则真; or,全假为假)

In [30]: not 1>2 and 2<3    #表示1<2取反 and 2<3
Out[30]: True

In [31]: warn=""

In [32]: not warn
     #如果warn为空则为真
Out[32]: True

In [33]: warn=123

In [34]: not warn
    #由于warn不为空,返回False
Out[34]: False

In [35]: not ""
          #not后面跟的值为空,所以返回True
Out[35]: True

五、I/O

Input:(python2和python3中不同)
    raw_input("提示信息:")            # 返回值是字符串
    input("提示信息")                                        # 返回值是数值类型

In [68]: raw_input("输入Name:")
输入Name:vaon
Out[68]: 'vaon'

Output:
    print "显示%d条信息:%s" %(1, "占位符的内容")
    print """
        按照三引号之间的格式输出;
    """   

In [69]: print "vaon Is %d years old" %(18)      #%d表示占用一个位置,类型为数值类型。如果是字符串类型用%s代替
vaon Is 18 years old


In [70]: print """
   ....:         主机信息
   ....: 1.3一uyu6q7hh%&j
   ....: 2.--qeoids23230-
   ....: 3.jfhuyer-=-09==
   ....: """

        主机信息
1.3一uyu6q7hh%&j
2.--qeoids23230-
3.jfhuyer-=-09==

六、判断语句

#python中不支持case语句,可以通过if...elif...elif...else显现

if ...
if ...  else ....
if ...  elif ... elif ... else ....

七、循环语句

for .... (注意: range(start, stop, step))
for .... if语句嵌套
for .... for语句嵌套

八、python中不支持三目运算符:a>b?a:b

        但要实现三目运算符功能可以:a if a<b else b        #如果a<b就输出a,a>b就输出b

九、range

range(start,stop,step):返回一个别表,从start开始,stop-1结束,步长为step

打印出1-10:

In [10]: range(1,11)
Out[10]: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

打印出1-10的奇数:
In [11]: range(1,11,2)
Out[11]: [1, 3, 5, 7, 9]

题目1

用户输入年龄,如果大于18,显示是成年人,否则显示不是成年人

解答:

#!/usr/bin/env python
#coding:utf-8
age=input("输入年龄:")
if age > 18:
    print "Age Is %d,You Are Adult" %(age)
else:
    print "Age Is %d,Not Adult" %(age)

题目2:


解答:

#!/usr/bin/python
#coding:utf-8
hostname=raw_input("输入主机名:")
IP=raw_input("输入IP:")
used_year=input("输入已使用时间:")
CPU=raw_input("CPU信息:")
Memory=raw_input("内存大小:")
if used_year > 10:
    print "该服务器使用年限太久!"
else:
    print """
    主机信息
主机名:%s
ip:%s
使用年限:%d
CPU:%s
Memory:%s
"""%(hostname,IP,used_year,CPU,Memory)
题目3:

判断是否闰年

#!/usr/bin/python
#coding:utf-8
"""
判断是否闰年的方法:
    1.能被4整除但不能被100整除
    2.或者满足能被400整除
"""

year = input("Year:")
if (year%4 == 0 and year%100 != 0) or year%100 ==0:
    print "%d Is Leap" %(year)
题目4:

打印九九乘法表

1*1=1

1*2=2  2*2=4

1*3=3  2*3=6  3*3=9

        ...

解答:

#!/usr/bin/env python
# coding:utf-8
for n in range(1,10):
    for m in range(1,n+1):
        print "%d*%d=%d" %(m,n,m*n),       #如果打印时不想换行,在print最后面加逗号即可
    print                                                             #打印空行
题目5:

计算1+2+3+...+10000的和,并输出脚本运行时间

解答:

#!/usr/bin/env python
# coding:utf-8
import time                                 #调用time函数
start = time.time()                      #开始时间,计时
sum=0
for m in range(1,10001):
    sum+=m
print "求和结果:%d" %(sum)
stop = time.time()                      #结束时间,计时
print "脚本运行时间:%s" %(stop - start)    #结束时间减开始时间






















原创粉丝点击