python_DAY02

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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、成员运算innot 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())

#运行结果如下

技术分享

Psstrip移除,默认是空格

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))

#优先掌握的操作:

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

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

长度

成员运算innot 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

成员运算innot in

 

删除

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

循环

 

  集合

作用:去重,关系运算

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

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

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

2:没有重复的元素

3:无序

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

#优先掌握的操作:

长度len

成员运算innot 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)       #打印选购的商品及个数





 

 

 

 

 

 

 

 

 

 

 

 

 


以上是关于python_DAY02的主要内容,如果未能解决你的问题,请参考以下文章

python_day02 学习知识点

Python_day02_2018.7.3

Python_Day_02 str内部方法总结

python_day1作业

python_day5

python_day12_html