Python学习第二天

来源:互联网 发布:仿真软件multisim 编辑:程序博客网 时间:2024/04/29 18:16
# 2.1Phthon 数据类型
'''
1. Booleans[布尔型] 或为 True[真] 或为 False[假]
2. Numbers[数值型] 可以是 Integers[整数](1 和 2)、Floats[浮点数](1.1 和 1.2)、Fractions[分数](1/2 和
   2/3);甚至是 Complex Number[复数]
3. Strings[字符串型] 是 Unicode 字符序列,例如: 一份 H T M L 文档
4. Bytes[字节] 和 Byte Arrays[字节数组], 例如: 一份 J P E G 图像文件
5. Lists[列表] 是值的有序序列
6. Tuples[元组] 是有序而不可变的值序列
7. Sets[集合] 是装满无序值的包裹
8. Dictionaries[字典] 是键值对的无序包裹


'''
# 2.2 布尔类型


size=0
print (size>1)          # False
print (size<1)          # True
print (True + True)       # 2
print (False + False)     # 0


# 2.3 数值类型


print (type(1))             # <class 'int'>, type() 函数来检测任何值或变量的类型
print (isinstance(1,int))   # True,使用 isinstance() 函数判断某个值或变量是否为给定某个类型
print (type(2.0))           # <class 'float'>
print (isinstance(1,float)) # True
print (type(1+1.0))         # <class 'float'>


'''类型转换


函数                         描述
int(x [,base ])              将x转换为一个整数
long(x [,base ])             将x转换为一个长整数
float(x )                    将x转换到一个浮点数
complex(real [,imag ])       创建一个复数
str(x )                      将对象 x 转换为字符串
repr(x )                     将对象 x 转换为表达式字符串
eval(str )                   用来计算在字符串中的有效Python表达式,并返回一个对象
tuple(s )                    将序列 s 转换为一个元组
list(s )                     将序列 s 转换为一个列表
chr(x )                      将一个整数转换为一个字符
unichr(x )                   将一个整数转换为Unicode字符
ord(x )                      将一个字符转换为它的整数值
hex(x )                      将一个整数转换为一个十六进制字符串
oct(x )                      将一个整数转换为一个八进制字符串 


'''
#2.3.2 常见数值运算


'''
http://www.yiibai.com/python/python_basic_operators.html
http://blog.163.com/zhulp0372@yeah/blog/static/11589447920117124348435/
'''
print(5/2)           # 除法,执行浮点除法
print(5//2)          # 2,整数除法,返回不大于结果的一个最大的整数
print(-5//2)         # -3
print(-4.5//2)       # -3.0,如果分子或者分母是float类型,实际返回的值将会是float类型


#分数 fraction [f'rækʃnz]


import fractions
x=fractions.Fraction(1,2)
print (x)                # 1/2
print (2 * x)            # 1
print (3 * x)            # 3/2
print (x ** 2)           # 1/4,** 幂运算
print (x ** 3)           # 1/8,** 幂运算


#三角函数


import math
print (math.pi)          # 3.141592653589793,15位小数
print (math.sin(math.pi/6)) # 0.49999999999999994,而不是0.5,不支持无限精度
print (math.tan(math.pi / 4)) # 0.9999999999999999


#列表_元素的有序集合,列表元素不唯一


a_list = [1,2,'a','b','c']  # 创建列表,使用中括号包裹一系列以逗号分割的值
print ("a_list列表长度:",len(a_list))   # a_list列表长度:5
print (a_list)              # 打印列表,[1, 2, 'a', 'b', 'c']
print (a_list[0])           # 1
print (a_list[4])           # c
print (a_list[-1])           # c,使用负索引值可从列表的尾部向前计数访问元素。任何非空列表的最后一个元素总是 a_list[‐1]
print (a_list[-5])           #  a_list[‐n] == a_list[len(a_list) ‐ n]


#列表切片
print ("列表切片")
print (a_list[:])           # [1, 2, 'a', 'b', 'c']
print (a_list[0:4])         # [1, 2, 'a', 'b'],不包含索引为4的元素,即a_list[4]=c
print (a_list[:3])          # [1, 2, 'a'],左索引为空=0
print (a_list[2:])          # ['a', 'b', 'c'],右索引为空=列表的长度
print (a_list[2:3])         # ['a']


#向列表中添加新项
#关于append 和 extend 的区别:http://stackoverflow.com/questions/252703/append-vs-extend  ,均只接受一个参数
print ("向列表中添加新项")
a_list =a_list + ['d','e']   # 1、串联,连接然后赋值 — 当处理大型列表时,该操作可能(暂时)消耗大量内存
print (a_list)
a_list.append(True)          # 2、append() 方法向列表的尾部添加一个新的元素
print (a_list)
a_list.extend(['FGH'])       # 3、extend() 方法只接受一个列表作为参数,并将该参数的每个元素都添加到原有的列表中
print (a_list)
a_list.extend('FGH')         # 注意这个跟上一个的区别
print (a_list)
a_list.insert(0,'QQ')        # 4、insert() 方法将单个元素插入到列表中
print (a_list)


#在列表中检索值
print ("字母a出现的次数:",a_list.count('a'))    #  count() 方法返回了列表中某个特定值出现的次数
print ("检查某元素xx是否在列表中:",'xx' in a_list)  # 只知道在不在,比count()快
print ("检索某元素x的索引值",a_list.index('a',0,6))    # index() 方法将只返回第一次出现的位置索引值。
                                                       # 注意找不到会引发异常,-1是合法的列表索引值
#从列表中删除元素
del a_list[0]                # 1、通过索引删除
print (a_list)
a_list.remove(1)             # 2、通过值删除    注意,找不到会引发异常
print (a_list)              
a_list.pop()                 # 3、 如果不带参数调用, pop() 列表方法将删除列表中最后的元素,并返回所删除的值
print (a_list)  
a_list.pop(6)                # 4、 如果带参数调用, pop() 将删除列表中指定位置的元素
print (a_list) 
0 0