python_DAY02

一  数字

1、整型int

作用:年纪,等级,身份证号,qq号等整型数字相关

定义:

age = 10 #本质 age = int(10)

2、浮点型float

作用:薪资、身高、体重、体质参数等浮点数相关

salary = 11.2 #本质 salary =float(11.2)

二  字符串‘‘

作用:名字、性别、国籍、地址等描述信息

定义:在单引号/双引号/三引号内,由一串字符组成

例子:name = ‘Jose’

1、索引取值(正反取值)

#!/usr/bin/env python
#coding:utf-8
name=‘Jose‘
print(name)  #打印出名称
print(name[0]) #正向取第一个字母
print(name[-2])#反向去倒数第二个字母

#运行结果如下

2、切片(顾头不顾尾,步长)

name=‘Jose‘
print(name[0:2])#切出前两位
print(name[1:2])#切出第二位
print(name[0:3:1]) #1表示步长
print(name[0:3:2])#2表示步长

#运行结果如下

Ps:切片股头不顾尾。

3、长度len

#len长度
msg=‘my name is Jose‘
print(len(msg))

#运行结果如下

Ps:数字没有长度,字符串有,len统计字符串的个数

4、成员运算in和not in

#in 和 not in
msg = ‘hello Jose‘
print(‘Jose‘ in msg)
print(‘dxc‘ in msg)
print(‘o‘ in msg)

#运行结果如下

5、移除空白strip

#移除空白strip
password=‘alex123    ‘
print(password.strip())

#运行结果如下

Ps:strip移除,默认是空格

6、切分split

#切分split
user_info=‘nginx:x:1012:1012::/home/nginx:/sbin/nologin‘
print(user_info.split(‘:‘)) #以冒号为分隔符进行切分
print(user_info.split(‘:‘)[0])#以冒号为分隔符进行切分,并取出第一个值
print(user_info.split(‘:‘,2))#以冒号为分隔符进行切分,2表示切两次

#运行结果如下

Ps:切分要与切片记住,切分是split定义分隔符
7、循环

三 列表[]

作用:多个装备,多个爱好,多门课程等

定义:[ ]可以有多个任意类型的键值,逗号分隔

例子:my_friends=[‘alex‘,‘engo‘,‘oldboy‘,4,5]

#本质my_friends=list([….])

#优先掌握的操作:

按索引存取值(正向存取+反向存取):即可存也可以取     

切片(顾头不顾尾,步长)

长度

成员运算in和not in

追加

删除

循环

四 元组()

作用:存多个值,对比列表来说,元组不可变(是可以当做字典的key的),主要是用来读

定义:与列表类型比,只不过[]换成()

age=(11,22,33,44,55)本质age=tuple((11,22,33,44,55))

#优先掌握的操作:

按索引取值(正向取+反向取):只能取

切片(顾头不顾尾,步长)

长度

成员运算in和not in

五 字典{}

作用:存多个值,key-value存取,取值速度快

定义:key必须是不可变类型,value可以是任意类型

info={‘name‘:‘egon‘,‘age‘:18,‘sex‘:‘male‘}#本质info=dict({....})

info=dict(name=‘egon‘,age=18,sex=‘male‘)

info=dict([[‘name‘,‘egon‘],(‘age‘,18)])

{}.fromkeys((‘name‘,‘age‘,‘sex‘),None)

#优先掌握的操作:

按key存取值:可存可取

长度len

成员运算in和not in

删除

键keys(),值values(),键值对items()

循环

六  集合

作用:去重,关系运算

定义集合: 可以包含多个元素,用逗号分割

集合的元素遵循三个原则:

1:每个元素必须是不可变类型(可hash,可作为字典的key)

2:没有重复的元素

3:无序

注意集合的目的是将不同的值存放到一起,不同的集合间用来做关系运算,无需纠结于集合中单个值

#优先掌握的操作:

长度len

成员运算in和not in

|合集

&交集

-差集

^对称差集

==

>,>= ,<,<= 父集,子集

待练习…….

后面的待总结

七  数据类型总结

按存储空间的占用分(从低到高)

数字

字符串

集合:无序,即无序存索引相关信息

元组:有序,需要存索引相关信息,不可变

列表:有序,需要存索引相关信息,可变,需要处理数据的增删改

字典:无序,需要存key与value映射的相关信息,可变,需要处理数据的增删

八  运算符

http://www.cnblogs.com/linhaifeng/articles/5935801.html#_label34

九  字符编码

http://www.cnblogs.com/linhaifeng/articles/5950339.html

十  文件处理

http://www.cnblogs.com/linhaifeng/articles/5984922.html

十一 课后练习

第一题

# 写代码,有如下变量,请按照要求实现每个功能 (共6分,每小题各0.5分)

name = " aleX"

# 1)   移除 name 变量对应的值两边的空格,并输出处理结果

答题思路:移除用strip,答案如下

name =‘ aleX‘
print(name)
print(name.strip())

#运行结果如下

# 2)   判断 name 变量对应的值是否以 "al" 开头,并输出结果

答题思路:判断值的开头用startswith

name =‘  aleX‘print(name.startswith(‘al‘))

# 3)   判断 name 变量对应的值是否以 "X" 结尾,并输出结果

答题思路:判断值的结尾用endswith

name =‘  aleX‘print(name.endswith(‘X‘))
#运行结果如下

# 4)   将 name 变量对应的值中的 “l” 替换为 “p”,并输出结果

答题思路:替换用replace
name =‘  aleX‘
print(name.replace(‘l‘,‘p‘))

#运行结果如下:

# 5)   将 name 变量对应的值根据 “l” 分割,并输出结果。

答题思路:分割用split

name =‘  aleX‘print(name.split(‘l‘))
#运行结果如下

# 6)   将 name 变量对应的值变大写,并输出结果

答题思路:变大写用upper

name =‘  aleX‘print(name.upper())

#运行结果如下

# 7)   将 name 变量对应的值变小写,并输出结果

答题思路:变小写用capitalize
name =‘  aleX‘print(name.capitalize())

#运行结果如下

# 8)   请输出 name 变量对应的值的第 2 个字符?

name =‘  aleX‘print(name[1])
#运行结果如下,第二个字符是空格

# 9)   请输出 name 变量对应的值的前 3 个字符?

name =‘  aleX‘print(name[0:3])

#运行结果如下

# 10)   请输出 name 变量对应的值的后 2 个字符?

name =‘  aleX‘print(name[-2:])

#运行结果如下

# 11)   请输出 name 变量对应的值中 “e” 所在索引位置?

name =‘  aleX‘print(name.index(‘e‘))

#运行结果如下

# 12)   获取子序列,去掉最后一个字符。如: oldboy 则获取 oldbo.

name =‘  aleX‘a=name[:-1]print(a)

#运行结果如下

第二题

1. 有列表data=[‘alex‘,49,[1900,3,18]],分别取出列表中的名字,年龄,出生的年,月,日赋值给不同的变量

data=[‘alex‘,49,[1900,3,18]]
name=data[0]
age=data[1]
bir=data[2]
print(name)
print(age)
print(bir)

#运行结果

2. 用列表模拟队列 先进先出

#append() 方法用于在列表末尾添加新的对像
l1=[]
l1.append(‘first‘)
l1.append(‘second‘)
l1.append(‘third‘)
print(l1)
print(l1.pop(0))
print(l1.pop(0))
print(l1.pop(0))

执行结果如下

3. 用列表模拟堆栈先进后出

#insert() 函数用于将指定对象插入列表的指定位置

l1=[]
l1.insert(0,‘first‘)
l1.insert(0,‘second‘)
l1.insert(0,‘third‘)
print(l1)
print(l1.pop(0))
print(l1.pop(0))
print(l1.pop(0))

执行结果如下

4. 有如下列表,请按照年龄排序(涉及到匿名函数)

l=[

{‘name‘:‘alex‘,‘age‘:84},

{‘name‘:‘oldboy‘,‘age‘:73},

{‘name‘:‘egon‘,‘age‘:18},

]

答案:

l.sort(key=lambda item:item[‘age‘])

print(l)

第三题

#简单购物车,要求如下:

实现打印商品详细信息,用户输入商品名和购买个数,则将商品名,价格,购买个数加入购物列表,如果输入为空或其他非法输入则要求用户重新输入

#!/usr/bin/env python
#coding:utf-8

#定义一个字典
msg_dic={
‘apple‘:10,
‘tesla‘:100000,
‘mac‘:3000,
‘lenovo‘:30000,
‘chicken‘:10,
}
shopping_list = [] #商品列表
while True:      #循环使用
   
for key in msg_dic:
        print(key,msg_dic[key])
    choice = input(请输入你想要的商品>>:‘).strip()
    if choicenot in msg_dic:  #判断,你输入的内容是否存在
       
print(该商品不存在。。。‘)
        continue               #跳出本次循环
   
count = input(请输入你想要的个数>>:‘).strip()
    if not count.isdigit():    #判断,你输入的是否是整数
       
print(‘<<<<<<<<<请输入整数>>>>>>>>>‘)
        continue              #跳出本次循环
   
shopping_list.append((choice,msg_dic[choice],int(count)))  #添加选购的商品及个数
   
print(shopping_list)       #打印选购的商品及个数

#运行结果如下

第四题

1 有如下值集合[11,22,33,44,55,66,77,88,99,90...],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中

即: {‘k1‘: 大于66的所有值, ‘k2‘: 小于66的所有值}

#!/usr/bin/env python
#coding:utf-8

a={‘k1‘:[],‘k2‘:[]}
b=[11,22,33,44,55,66,77,88]
for i in b:
    if i< 66:
        a[‘k1‘].append(i)
    else:
        a[‘k2‘].append(i)
print(a)

第五题

统计s=‘hello alex alex say hello sb sb‘中每个单词的个数

结果如:{‘hello‘: 2, ‘alex‘: 2, ‘say‘: 1, ‘sb‘: 2}

方法一:

#!/usr/bin/env python
#coding:utf-8

s=‘hello alex alex sayhello sb sb‘
l=s.split()
dic={}
for item in l:
    if itemin dic:
        dic[item]+=1
    else:
        dic[item]=1
print(dic)

方法二:

#!/usr/bin/env python
#coding:utf-8
s=‘hello alex alex sayhello sb sb‘
dic={}
words=s.split()
print(words)
for word in words:#word=‘alex‘
   
dic[word]=s.count(word)
print(dic)

十一 课后作业

要求:写出一个三级菜单

思路逻辑如下:

F:\python19\Scripts\python.exeF:/untitled/19/day02/三级菜单.py

北京

上海

山东

请输入要选择的城市>>北京

海淀

昌平

朝阳

东城

请输入要选择的城区>>昌平

沙河

天通苑

回龙观

请输入要选择的站口>>沙河

老男孩

北航

最后一层,按b返回>>b

沙河

天通苑

回龙观

请输入要选择的站口>>b

海淀

昌平

朝阳

东城

请输入要选择的城区>>

北京

上海

山东

请输入要选择的城市>>

#!/usr/bin/env python
#coding:utf-8
menu = {
    北京‘:{
        海淀‘:{
            五道口‘:{
                ‘soho‘:{},
                网易‘:{},
                ‘google‘:{}
            },
            中关村‘:{
                爱奇艺‘:{},
                汽车之家‘:{},
                ‘youku‘:{},
            },
            上地‘:{
                百度‘:{},
            },
        },
        昌平‘:{
            沙河‘:{
                老男孩‘:{},
                北航‘:{},
            },
            天通苑‘:{},
            回龙观‘:{},
        },
        朝阳‘:{},
        东城‘:{},
    },
    上海‘:{
        闵行‘:{
            "人民广场":{
                炸鸡店‘:{}
            }
        },
        闸北‘:{
            火车战‘:{
                携程‘:{}
            }
        },
        浦东‘:{},
    },
    山东‘:{},
}
while True:
    for i in menu:
        print(i)
    choice = input(请输入要选择的城市>>‘)
    if choicein menu:
        while True:
            for i2 in menu[choice]:
                print(i2)
            choice2 = input(请输入要选择的城区>>‘)
            if choice2in menu[choice]:
                while True:
                    for i3 in menu[choice][choice2]:
                        print(i3)
                    choice3 = input(请输入要选择的站口>>‘)
                    if choice3 in menu[choice][choice2]:
                        while True:
                            for i4 in menu[choice][choice2][choice3]:
                                print(i4)
                            choice4 = input(最后一层,按b返回>>‘)
                            if choice4 == ‘b‘:
                                break
                    if
choice3 == ‘b‘:
                        break
            if 
choice2== ‘b‘:
                break

第七题 购物车

待完善。。。。。。。。。

思路:

F:\python19\Scripts\python.exeF:/untitled/19/day02/购物车.py

apple 10

tesla 100000

mac 3000

lenovo 30000

chicken 10

请输入你想要的商品>>:apple

请输入你想要的个数>>:10

[(‘apple‘, 10, 10)]

apple 10

tesla 100000

mac 3000

lenovo 30000

chicken 10

#!/usr/bin/env python
#coding:utf-8

#定义一个字典
msg_dic={
‘apple‘:10,
‘tesla‘:100000,
‘mac‘:3000,
‘lenovo‘:30000,
‘chicken‘:10,
}
shopping_list = [] #商品列表
while True:      #循环使用
   
for key in msg_dic:
        print(key,msg_dic[key])
    choice = input(请输入你想要的商品>>:‘).strip()
    if choicenot in msg_dic:  #判断,你输入的内容是否存在
       
print(该商品不存在。。。‘)
        continue              #跳出本次循环
   
count = input(请输入你想要的个数>>:‘).strip()
    if not count.isdigit():    #判断,你输入的是否是整数
       
print(‘<<<<<<<<<请输入整数>>>>>>>>>‘)
        continue              #跳出本次循环
   
shopping_list.append((choice,msg_dic[choice],int(count)))  #添加选购的商品及个数
   
print(shopping_list)       #打印选购的商品及个数

 

时间: 2024-10-13 00:02:28

python_DAY02的相关文章

python_day02 学习知识点

当天要学习知识点: 1.基本数据类型 2.字符编码 4.文件处理 1.基本数据类型 字符串str: str='hello nice to meet you Name:{name},Age:{age} ' print(str[0]) #取值 # 字符串str的常用操作 print(str[1:9:2]) #切片 步长为2 print(str.strip()) #去掉字符串前后空格 print(str.split()) #分割 可指定分割符为*或| print(len(str)) #长度 # 字符串