第一章:Python数据类型及其常用操作

Python标准的数据类型:

Numbers(数字):整型,浮点型
String(字符串)
bool(布尔):True、False
List(列表)
Tuple(元组):只读的列表
Dictionary(字典)

a = 100
a = 100
b = 1000000000000000000
c = 12.345
d = 1 + 5j
e = 'A'
f = 'hello, world'
g = True
list = [ 'runoob', 786 , 2.23, 'john', 70.2 ]
tuple = ( 'runoob', 786 , 2.23, 'john', 70.2 )
tinydict = {'name': 'john','code':6734, 'dept': 'sales'}

print(type(a)) #<class 'int'>
print(type(b))#<class 'int'>
print(type(c))#<class 'float'>
print(type(d))#<class 'complex'>
print(type(e))#<class 'str'>
print(type(f))#<class 'str'>
print(type(g))#<class 'bool'>
print(type(list))#<class 'list'>
print(type(tuple))#<class 'tuple'>
print(type(tinydict))#<class 'dict'>
View Code

 

Python字符串

字符串切片(从指定的开始索引到指定的结束索引)
print(str2[2:5]) # c12
print(str2[2:]) # c123456
print(str2[2::2]) # c246
print(str2[::2]) # ac246
print(str2[::-1]) # 654321cba
print(str2[-3:-1]) # 45
str + "TEST" # 连接的字符串

字符串函数方法
str1 = 'hello, world!'
print('字符串的长度是:', len(str1)) #13
print('单词首字母大写: ', str1.title()) #Hello, World!
print('字符串变大写: ', str1.upper()) #HELLO, WORLD!
print('字符串是不是大写: ', str1.isupper())#False
print('字符串是不是以hello开头: ', str1.startswith('hello'))#True
print('字符串是不是以hello结尾: ', str1.endswith('hello'))#False
print('字符串是不是以感叹号开头: ', str1.startswith('!'))#False
print('字符串是不是一感叹号结尾: ', str1.endswith('!'))#True

字符串格式化
print ("My name is %s and weight is %d kg!" % (Zara, 21))
%c 格式化字符及其ASCII码
%s 格式化字符串
%d 格式化整数
%u 格式化无符号整型
%f 格式化浮点数字,可指定小数点后的精度

三引号
python中三引号可以将复杂的字符串进行复制:三引号让程序员从引号和特殊字符串的泥潭里面解脱出来,自始至终保持一小块字符串的格式是所谓的WYSIWYG(所见即所得)格式的。
info="""
--------begin-------
name= %s
age= %s
job= %s
home= %s
--------end---------
"""%(name,age,job,home)
print(info)
print("The length of %s is %d" % (s,x))
print("---NAME",name,"-----")#采用逗号拼接

errHTML = '''
<HTML><HEAD><TITLE>
Friends CGI Demo</TITLE></HEAD>
<BODY><H3>ERROR</H3>
<B>%s</B><P>
<FORM><INPUT TYPE=button VALUE=Back
ONCLICK="window.history.back()"></FORM>
</BODY></HTML>
'''

编码
字符串前加 u 声明后面的字符串使用unicode编码,,一般用在中文字符串前面,防止因为源码储存格式问题,导致再次使用时出现乱码。
python3中,字符串的存储方式都是以Unicode字符来存储的,所以前缀带不带u,其实都一样
str1= u'\u4f60\u597d\uff0c\u4e2d\u56fd' #u表示unicode,中文不乱码
print(str1)#你好,中国

字符串前加 r 声明后面的字符串是普通字符串
r"\n\n\n\n\n\n” #不会转码为换行符

Python 列表


fruits = ['grape', '@pple', 'strawberry', 'waxberry']
print(fruits)
print(fruits[0])
print(fruits[-1])
print(fruits[:2])


fruits[2]='apple'


fruits.append('Google') ## append() 在列表末尾添加元素
fruits.insert(1, 'banana') ##在第1个元素的位置插入
fruits.extend(list2) #在末尾把list2列表的元素加入


del fruits[1]
fruits.pop() #移除最后一个元素
fruits.pop(0) #移除第一个元素
fruits.remove('apple') #移除和某个值匹配的项

复制
复制有四种方式,其中有写是指向相同内存地址,有些是重新开辟空间
浅复制:重新开辟空间,但是假如列表中含有列表[a,[b,c],d],[b,c]还是指向同一个栈
import copy
names = ["小明", "小红", "小黑", "小黄", "小白"]
# 浅copy 1.
names1 = copy.copy(names)
# 浅copy 2.
names2 = names[:]
# 浅copy 3. 工厂函数
names3 = list(names)

深复制:列表中,包含列表也能完全复制
import copy
# 深复制
names = ["小明", "小红", "小黑", ["粉色"], "小黄", "小白"]
deep_names = copy.deepcopy(names)


列表常用函数
len(list) 列表元素个数
cmp(list1, list2) 比较两个列表的元素
max(list) 返回列表元素最大值
min(list) 返回列表元素最小值
list(seq) 将元组转换为列表

列表常用方法
list.append(obj)在列表末尾添加新的对象
2 list.count(obj)统计某个元素在列表中出现的次数
3 list.extend(seq)在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
4 list.index(obj)从列表中找出某个值第一个匹配项的索引位置
5 list.insert(index, obj)将对象插入列表
6 list.pop([index=-1])移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
7 list.remove(obj)移除列表中某个值的第一个匹配项
8 list.reverse()反向列表中元素
9 list.sort(cmp=None, key=None, reverse=False) 对原列表进行排序
10 list.clear() 清空列表

遍历列表元素
for fruit in fruits:
print(fruit.title(), end=' ')
print()

生成列表
list1 = [x * x for x in range(1, 11)]
list2 = [m + n for m in 'ABCDEFG' for n in '12345'] #['A1', 'A2', 'A3', 'A4', 'A5', 'B1'...]
range(10) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
range(1, 11) # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
range(0, 30, 5) # [0, 5, 10, 15, 20, 25]


enumerate() 函数
用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列
>>>seasons = ['Spring', 'Summer', 'Fall', 'Winter']
>>> list(enumerate(seasons))
[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]

seq = ['one', 'two', 'three']
for i, element in enumerate(seq):
print(i)
print(element)

Python列表脚本操作符
len([1, 2, 3]) #3长度
[1, 2, 3] + [4, 5, 6] #[1, 2, 3, 4, 5, 6]组合
['Hi!'] * 4 #['Hi!', 'Hi!', 'Hi!', 'Hi!'] 重复
3 in [1, 2, 3] #True 元素是否存在于列表中

元组

元组是不可修改的列表
t = ('a', 38, c, 'd')
print(t)
t[0]
t[:2]

遍历元组元素
for x in (1, 2, 3):
print(x)

元组内置函数
cmp(tuple1, tuple2)比较两个元组元素
len(tuple) 计算元组元素个数
max(tuple) 返回元组中元素最大值
min(tuple) 返回元组中元素最小值
tuple(seq) 将列表转换为元组
list(seq) 将元组转换为列表

元组运算符
与字符串一样,元组之间可以使用 + 号和 * 号进行运算。这就意味着他们可以组合和复制,运算后会生成一个新的元组。
len((1, 2, 3)) #3计算元素个数
(1, 2, 3) + (4, 5, 6) #(1, 2, 3, 4, 5, 6)连接
('Hi!',) * 4 #('Hi!', 'Hi!', 'Hi!', 'Hi!')复制
3 in (1, 2, 3) #True元素是否存在

字典

由键值对组成,不允许同一个键出现两次。键必须不可变,所以可以用数字,字符串或元组充当,而用列表就不行
dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}


dict['Name']
dict['Age']
dict.keys() # 输出所有键,['Name', 'Age', 'Class']
dict.values() # 输出所有值,['Runoob', 7, 'First']


dict['Age'] = 8


dict['School'] = "菜鸟教程" # 添加信息


del dict['Name'] # 删除键 'Name'
dict.clear() # 清空字典
del dict # 删除字典

遍历字典
for key in dict: #key只是个字符,无特殊意义
print(key, scores[key])

for key, value in dict.items():
print(key, scores[key])

for c in user_0.keys():
print(c)
for d in user_0.values():
print(d)

#键数组
alien_0 = {'color': 'green', 'points': 5}
alien_1 = {'color': 'yellow', 'points': 10}
alien_2 = {'color': 'red', 'points': 15}
aliens = [alien_0, alien_1, alien_2]
for alien in aliens:
for a,b in alien.items():
print(a)
print(b)


#两个数组合并为字典
a=["green","blue","yellow","red","black"]
b=[11,12,14,15,18]
al={}
for i in range(5):
al[a[i]]=b[i]
print(al)

字典常用函数
len(dict) #计算字典元素个数,即键的总数。
str(dict) #输出字典,以可打印的字符串表示
type(variable) #<class 'dict'>
key in dict #如果键在字典dict里返回true,否则返回false

集合

集合(set)是一个无序的不重复元素序列。
可以使用大括号 { } 或者 set() 函数创建集合
>>>basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}
>>> print(basket) # 这里演示的是去重功能
{'orange', 'banana', 'pear', 'apple'}
>>> 'orange' in basket # 快速判断元素是否在集合内
True
>>> 'crabgrass' in basket
False

>>> # 下面展示两个集合间的运算.
...
>>> a = set('a','b','r','a','c','a','d','a','b','r','a')
>>> b = set('a','l','a','c','a','z','a','m')
>>> a
{'a', 'r', 'b', 'c', 'd'}
>>> a - b # 集合a中包含而集合b中不包含的元素
{'r', 'd', 'b'}
>>> a | b # 集合a或b中包含的所有元素
{'a', 'c', 'r', 'd', 'b', 'm', 'z', 'l'}
>>> a & b # 集合a和b中都包含了的元素
{'a', 'c'}
>>> a ^ b # 不同时包含于a和b的元素
{'r', 'd', 'b', 'm', 'z', 'l'}

 

三级菜单demo

menu = {
    '北京':{
        '海淀':{
            '五道口':{
                'soho':{},
                '网易':{},
                'google':{}
            },
            '中关村':{
                '爱奇艺':{},
                '汽车之家':{},
                'youku':{},
            },
            '上地':{
                '百度':{},
            },
        },
        '昌平':{
            '沙河':{
                '老男孩':{},
                '北航':{},
            },
            '天通苑':{},
            '回龙观':{},
        },
        '朝阳':{},
        '东城':{},
    },
    '上海':{
        '闵行':{
            "人民广场":{
                '炸鸡店':{},
            }
        },
        '闸北':{
            '火车战':{
                '携程':{},
            }
        },
        '浦东':{},
    },
    '山东':{},
}

Flag = True
while Flag:
    for i in menu:
        print(i)
    choice = input("请输入选择[b回退,q退出]:").strip()
    while Flag:
        if choice in menu:
            for k in menu[choice]:
                print(k)
            choice2 = input("请输入选择[b回退,q退出]:").strip()
            if choice2 in menu[choice]:
                while Flag:
                    for j in menu[choice][choice2]:
                        print(j)
                    choice3 = input("请输入选择[b回退,q退出]:").strip()
                    if choice3 in menu[choice][choice2]:
                        while Flag:
                            for m in menu[choice][choice2][choice3]:
                                print(m)
                            choice4 = input("请输入选择[b回退,q退出]:").strip()
                            if choice4 == 'b':
                                break
                            elif choice4 == 'q':
                                print('goodbye')
                                Flag = False
                            else:
                                print('input err plsase again')
                    elif choice3 == 'b':
                        break
                    elif choice3 == 'q':
                        print('goodbye')
                        Flag = False
                    else:
                        print("input err please again")
            elif choice2 == 'b':
                break
            elif choice2 == 'q':
                print('goodbye')
                Flag = False
            else:
                print("input err please again")
        elif choice == 'b':
            print('on top')
            break
        elif choice == 'q':
            print('goodbye')
            Flag = False
        else:
            print('input err please again')
            break
View Code

 

posted on 2019-05-30 10:42  资深接班人 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/xzwndy/p/10948191.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值