数据类型
一、Python支持的数据类型
1.变量
变量是内存中的一块区域
变量的命名:由字母、数字、下划线组成并且开头不能时数字
python中地址变量与c语言刚好相反,一条数据包含多个标签:
>>> a=1>>> b=1>>> id(a)34909288>>> id(b)349092882.整型
注:type()可以查看数据类型
>>> num1=123>>> type(num1)<type 'int'>3.长整型
#强制定义为长整型:num3=999L
>>> num2=9999999999999999999>>> type(num2)<type 'long'>
>>> num3=999L>>> type(num3)<type 'long'>4.浮点型
#1.2e10代表的数值为1.2的10次方;#12e9代表的数值为12的9次方;
>>> f1=12.0>>> type(f1)<type 'float'>>>> f2=1.2e10>>> type(f2)<type 'float'>
5.波尔类型
#只包含True|False两种,注意开头字母大写,不识别小写
In [9]: a=True
In [10]: type(a)Out[10]: boolIn [11]: b=FalseIn [12]: type(b)Out[12]: bool注:如果括号里面有数值,返回True,否则False。0也返回Flase
>>> a=123
>>> bool(a)True>>> b="">>> bool(b)False>>> bool(-1)True>>> bool(1)True>>> bool(0)False6.复数类型
#python对复数提供内嵌支持,eg: 3.14j, 8.32e-36j
>>> c=3.14j>>> type(c)<type 'complex'>
二、python类型转换的工厂函数
int('1'), long(1), float(1), bool(-1), bool(0), complex(1)
#将a从整型转换为长整型:
>>> a=123
>>> type(a)<type 'int'>>>> a=long(a)>>> type(a)<type 'long'>>>> a123L三、BIF: built-in function内置函数(*只介绍一部分)
cmp:比较大小
In [37]: cmp(1,2)
Out[37]: -1In [38]: cmp(2,1)Out[38]: 1In [39]: cmp(1,1)Out[39]: 0type(变量名):查看变量类型In [42]: a=1
In [43]: type(a)Out[43]: intstr:转换为字符串In [40]: str(1)
Out[40]: '1'四、进制转换
不同进制转换: hex(16), oct(8)
ASCII码转换: ord('A'), chr(97)hex转换为16进制
oct转换为8进值
In [47]: hex(1)Out[47]: '0x1'In [48]: oct(1)Out[48]: '01'
ord(‘A’)将A转换为对应的ASDII码
chr(97)反向查询97这个ASDII码对应的字符
操作符
一、算术运算符:+, -, *, /,**, %, //
>>> 2**38>>> 5%21
注:在2.x版本和3.0版本python中“/”的结果是不同的:
In [25]: 5/2Out[25]: 2In [26]: 5//2 #两种方式的结果都是5除以2等于2Out[26]: 2In [27]: from __future__ import division #使用这条指令将当前2.x环境转换为3.0版本python的精确计算方式In [28]: 5/2Out[28]: 2.5 #现在执行5除以2得到的是2.5而不是2In [29]: 5//2 #5//2才会只取整数位Out[29]: 2
>>> a=1111>>> b=111111L>>> a+b112222L二、赋值运算符: +=, -=, *=...... (注意: a+=2 实质上是a=a+2; python中不支持a++,但支持++a)
三、比较运算符: >, >=, <, <=, !=, ==(注意: 结果是bool类型,只能是True或者False)
>>> 1>2
False注:==除了会判断是否相等,还会判断是否同一类型,如'1' == 1就会返回False错误(字符串和数值不相等)
三、逻辑运算符:逻辑与and, 逻辑或or, 逻辑非not
#如果为空,not+变量的返回值就为True
>>> warn = "">>> not warnTrue>>> a="hello">>> not aFalse>>> not ""True
输入输出
Input:(python2和python3中不同:2.0版本中使用raw_input和input来区分字符串和数值;3.0中使用input可以自动区分数值还是字符串)
raw_input("提示信息:") # 返回值是字符串 input("提示信息") # 返回值是数值类型In [68]: raw_input("输入Name:")
输入Name:vaonOut[68]: 'vaon'Output:
print "显示%d条信息:%s" %(1, "占位符的内容") print """ 按照三引号之间的格式输出; """In [69]: print "vaon Is %d years old" %(18) #%d表示占用一个位置,类型为数值类型。如果是字符串类型用%s代替
vaon Is 18 years oldIn [70]: print """
....: 主机信息 ....: 1.3一uyu6q7hh%&j ....: 2.--qeoids23230- ....: 3.jfhuyer-=-09== ....: """ 主机信息1.3一uyu6q7hh%&j2.--qeoids23230-3.jfhuyer-=-09==判断语句
注:python中不支持case语句,可以通过if...elif...elif...else实现
if ...
if ... else ....if ... elif ... elif ... else ....#python中不支持三目运算符:a>b?a:b
#但要实现三目运算符功能可以:a if a<b else b ,如果a<b就输出a,a>b就输出b
循环语句
一、for循环
for .... (注意: range(start, stop, step))
for .... if语句嵌套
for .... for语句嵌套二、while循环
while实现无限循环:
while True:
...
或者:
while 1:
...
break和continue:
break:遇到break,跳出循环
continue:跳过此次循环,回到循环继续执行
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]注:python中特有的while...else...语句:
如果满足while后面的语句,执行while循环的程序,如果不满足,执行else里面的程序
其实if语句同样有if...else...语句
题目1:
用户输入年龄,如果大于18,显示是成年人,否则显示不是成年人
解答:
#!/usr/bin/env python
#coding:utf-8age=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-8hostname=raw_input("输入主机名:")IP=raw_input("输入IP:")used_year=input("输入已使用时间:")CPU=raw_input("CPU信息:")Memory=raw_input("内存大小:")if used_year > 10: print "该服务器使用年限太久!"else: print """ 主机信息主机名:%sip:%s使用年限:%dCPU:%sMemory:%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-8for 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-8import time #调用time函数start = time.time() #开始时间,计时sum=0for m in range(1,10001): sum+=mprint "求和结果:%d" %(sum)stop = time.time() #结束时间,计时print "脚本运行时间:%s" %(stop - start) #结束时间减开始时间题目6:
1.系统中用户名密码为admin和redhat
2.用户登陆时,为防止暴力破解,仅有三次机会
3.如果登陆成功,显示登陆成功
解答:
#!/usr/bin/env python
# coding:utf-8n=0while n < 3: name=raw_input("输入用户名:") passwd=raw_input("输入密码:") if name == "admin" and passwd == "redhat": print "登陆成功" break else: print "输入正确的用户名或密码" n+=1else: print "输入超过3次,请稍后再试"