python 学习第二天 (下)

继续上次的笔记

####判断一个元素是否在列表中

9 in name

print(9 in name) 会返回一个True 或 False 的结果

if 9 in name: #判断一个元素是否在列表中
    print("9 is in name")

####判断一个元素出现的次数 count()方法

name =["Alex","Jack","Rain",9,4,3,5,634,34,89,"Eric","Monica","Fiona",3,65,3,2,6,8,2,4,7]
if 9 in name:
    print("9 is in name ")
    if 9 in name:
        num_of_ele = name.count(9)
        print("[%s] 3 is/are in name" % num_of_ele)

####找到某个元素的索引 index() 方法

name = ["Alex","Jack","Rain",9,4,3,5,634,34,89,"Eric","Monica","Fiona",3,65,3,2,6,8,2,4,7]

if 9 in name:
    num_of_ele = name.count(9)
    posistion_of_ele = name.index(9)   #只匹配查找到的一个元素就返回
    name[posistion_of_ele] = 999
    print("[%s] 9 is/are in name,posistion:[%s]" % (num_of_ele,posistion_of_ele))

for i in range(name.count(9)):
    ele_index = name.index(9)
    name[ele_index] = 999
print(name)

####列表扩展 extend

name.extend(name2) 将列表name2 复制到列表name1 后面,可以有重复的元素,复制后列表name2 依然存在。

name = ["Alex","Jack","Rain",9,4,3,5,634,34,89,"Eric","Monica","Fiona",3,65,3,2,6,8,2,4,7]
name2 = [‘zhangsan‘,‘LiSi‘,‘ZhaoSha‘,634]

name.extend(name2)
print(name)
print(name2)

执行结果:

[‘Alex‘, ‘Jack‘, ‘Rain‘, 999, 4, 3, 5, 634, 34, 89, ‘Eric‘, ‘Monica‘, ‘Fiona‘, 3, 65, 3, 2, 6, 8, 2, 4, 7, ‘zhangsan‘, ‘LiSi‘, ‘ZhaoSha‘, 634]
[‘zhangsan‘,‘LiSi‘,‘ZhaoSha‘,634]

####列表反转 reverse() 方法

name2 = [‘zhangsan‘,‘LiSi‘,‘ZhaoSha‘,‘634‘]
name2.reverse()
print(name2)

*执行结果*

[‘634‘, ‘ZhaoSha‘, ‘LiSi‘, ‘zhangsan‘]

####列表排序 sort()

**python 2.7 排序。3.0中字符串不能和数字一起排序会报错。**

>>> name = ["Alex","Jack","Rain",9,4,3,5,634,34,89,"Eric","Monica","Fiona",3,65,3,2,6,8,2,4,7]
>>> name.sort()
>>> print(name)
[2, 2, 3, 3, 3, 4, 4, 5, 6, 7, 8, 9, 34, 65, 89, 634, ‘Alex‘, ‘Eric‘, ‘Fiona‘, ‘Jack‘, ‘Monica‘, ‘Rain‘]

**3.0 排序** 将数字转换成字符

name2 = [‘zhangsan‘,‘LiSi‘,‘ZhaoSha‘,‘634‘]
name2.sort()
print(name2)

*执行结果*

[‘634‘, ‘LiSi‘, ‘ZhaoSha‘, ‘zhangsan‘]

#### 按下标删除元素,并返回 pop()

 

####列表拷贝 copy()方法

name = [‘zhangsan‘,‘LiSi‘,‘ZhaoSha‘,[1,2,3,4],‘634‘]
name2 = name.copy()
print(name)
print(name2)

*执行结果:*

[‘zhangsan‘, ‘LiSi‘, ‘ZhaoSha‘, [1, 2, 3, 4], ‘634‘]
[‘zhangsan‘, ‘LiSi‘, ‘ZhaoSha‘, [1, 2, 3, 4], ‘634‘]

####列表嵌套

**注意:嵌套的列表只是保存了列表的内存入口地址在外层列表中**

如果使用copy()方法 默认只COPY了列表的第一层

name = [‘zhangsan‘,‘LiSi‘,‘ZhaoSha‘,[1,2,3,4],‘634‘]
name2 = name.copy()
name[0] = "Zhangsan"
name[3][2] = 33333333333333
print(name)
print(name2)

*执行结果:*

[‘Zhangsan‘, ‘LiSi‘, ‘ZhaoSha‘, [1, 2, 33333333333333, 4], ‘634‘]
[‘zhangsan‘, ‘LiSi‘, ‘ZhaoSha‘, [1, 2, 33333333333333, 4], ‘634‘]

**需要完全克隆,需要借助一个标准库copy库来实现**

import copy
name = [‘zhangsan‘,‘LiSi‘,‘ZhaoSha‘,[1,2,3,4],‘634‘]
name2 = name.copy()
name3 = copy.deepcopy(name)
name[3][2] = 33333333333333
print(name)
print(name2)
print("name3",name3)

*执行结果:*

[‘zhangsan‘, ‘LiSi‘, ‘ZhaoSha‘, [1, 2, 33333333333333, 4], ‘634‘]
[‘zhangsan‘, ‘LiSi‘, ‘ZhaoSha‘, [1, 2, 33333333333333, 4], ‘634‘]
name3 [‘zhangsan‘, ‘LiSi‘, ‘ZhaoSha‘, [1, 2, 3, 4], ‘634‘]

####查看列表长度

len(name4)

**课堂练习**

name = [‘Alex‘,‘jack‘,‘Rain‘,[9,4,3,5,9],634,34,89,9,34]

找出有多少个9,把它改成9999
同时找出所有的34,把它删除

##元租

元组可以理解为只读列表

创建元组

>>> r = (1,2,3,4,5)
>>> type(r)
<type ‘tuple‘>

两个方法count() index()

##字符串

**常用功能:**

* 移除空白
* 分割
* 长度
* 索引
* 切片

####1 移除空白 strip()

username = input("user:")
if username.strip() == ‘alex‘:
print("Welcome")

####2 分割

names = "alex,jack,rain"
name2 = names.split(",")
print(name2)

*执行结果:*

[‘alex‘, ‘jack‘, ‘rain‘]

####字符串合并

names = "alex,jack,rain"
name2 = names.split(",")
print("|".jion(name2))

*执行结果:*

alex|jack|rain

####判断空格

name = "Alex Li"

print(‘‘ in name)

首字母大写

name = "alex Li"

print(name.capitalize()) #首字母大写

字符串格式化

msg = "Hello, {name},it‘s been along {age} since last time sopke..."

msg2 = msg.format(name=‘MingHu‘,age=333)
print(msg2)

*执行结果:*

Hello, MingHu,it‘s been along 333 since last time sopke...

另一写法

msg2 = "hahah{0},dddd{1}"
print(msg2.format(‘Alex‘,33))

切片

name = "alex li"
print(name[2:4])

*执行结果:*

ex

 

center用法

print(name.center(40,‘-‘))

*执行结果:*

----------------alex li-----------------

find() 方法

name = "alex li"
print(name .find(‘l‘)) #找到值返回下标
print(name .find(‘sdfs‘)) #没找到对应值 返回 -1

*执行结果:*

1
-1

判断用户输入是否为数字

age = input("your age:")
if age.isdigit():
age = int(age)
print(age)
else:
print("invalid data type")

*执行结果:*

your age:33
33
your age:a
invalid data type

**判断字符串中是否有特殊字符 isalnum()**

ame = ‘alex3*sdf‘
print(name.isalnum())

False

name = ‘alex3sdf‘
print(name.isalnum())

True

**判断字符串以什么开始和结束**

startswith()

endswith()

**大小写转换**

upper() 大写

lower() 小写

**数字运算**

% 返回余数的用法:最简单的求奇偶数的一个用法

**比较运算符**


**赋值运算**

**逻辑运算**

**成员运算**

**身份运算符**

**is 用法**

 >>> a = [1,2,3,4]
 >>> type(a)
 <type ‘list‘>
 >>> type(a) is list
 True

**位运算符**

###优先级


###死循环

count =0
while True:
    print("你是风儿我是沙,缠缠绵绵到天涯",count)
    count +=1
    if count == 100:
        print("去你妈的风和沙,你们这些脱了裤子是人,穿上裤子是鬼的臭男人..")
        break

在第50次到60次循环之间不打印

count =0
while True:
    count +=1
    if count > 50 and count <60:
        continue
    print("你是风儿我是沙,缠缠绵绵到天涯",count)

    if count == 100:
        print("去你妈的风和沙,你们这些脱了裤子是人,穿上裤子是鬼的臭男人..")
        break

##字典

列表不具备去重的功能,而且操作复杂

字典格式 key:value 结构

id_db = {
371471199306143632:{
‘name‘:"Alex LI",
‘age‘:20,
‘addr‘:‘shanDong‘,
},
220435493306143632: {
‘name‘: "ShanPao",
‘age‘: 24,
‘addr‘: ‘DongBei‘,
},
220435493306143632: {
‘name‘: "DaShanPao",
‘age‘: 24,
‘addr‘: ‘DongBei‘,
},
}

显示字典内容

print(id_db)

打印某条记录

print(id_db[371471199306143632] )

修改key值

id_db[371471199306143632][‘name‘] = "WangMingHu" #修改已经存在的值
id_db[371471199306143632][‘qq_of_wife‘] = 3823354 #添加一个没有的 key-value
id_db[371471199306143632].pop("qq_of_wife") #删除一个key-value

###get() 方法 获取一个key的值

v = id_db .get(371471199306143632)
print(v)

*执行结果:*

{‘age‘: 20, ‘addr‘: ‘shanDong‘, ‘name‘: ‘Alex LI‘}

**注意**

print(id_db[371471199306143632])和 id_db .get(371471199306143632) 如果该键值不存在 直接打印会导致程序报错,而get方法会返回 None

###update 方法

用另一个字段覆盖一个字典

dic2 = {
‘name‘: ‘adasdasdasd‘,
220435493306143632: {
‘name‘: "WangWang",

},
}

id_db.update(dic2) #用dic2 覆盖 id_db 覆盖已经存在的key 添加不存在的key
print(id_db)

*执行结果:*

{220435493306143631: {‘age‘: 24, ‘addr‘: ‘DongBei‘, ‘name‘: ‘ShanPao‘}, 220435493306143632: {‘name‘: ‘WangWang‘}, 371471199306143632: {‘age‘: 20, ‘addr‘: ‘shanDong‘, ‘name‘: ‘Alex LI‘}, ‘name‘: ‘adasdasdasd‘}

items()方法 将字段转换成元组 或 列表 在字典数据量很多的情况下不要这么操作 很耗时

###setdefault()方法

id_db .setdefault() 方法 判断一个key 是否存在于字典中,如过存在就返回,如果不存在就在字典里生成这个key,默认值为None(可以自己指定语法为setdefault(key,"value")

print(id_db .setdefault(371471199306143632))

*执行结果:*

{‘age‘: 20, ‘addr‘: ‘shanDong‘, ‘name‘: ‘Alex LI‘}
print(id_db .setdefault(37147119930614363200))
print(id_db)

*执行结果:*

None
{220435493306143631: {‘addr‘: ‘DongBei‘, ‘age‘: 24, ‘name‘: ‘ShanPao‘}, 220435493306143632: {‘addr‘: ‘DongBei‘, ‘age‘: 24, ‘name‘: ‘DaShanPao‘}, 371471199306143632: {‘addr‘: ‘shanDong‘, ‘age‘: 20, ‘name‘: ‘Alex LI‘}, 37147119930614363200: None}

###fromkeys() 方法

把列表的里每个值拿出来当成字典里的一个key

print(dict .fromkeys([1,2,34,4,5,6],‘dddd‘))

*执行结果:*

{1: ‘dddd‘, 2: ‘dddd‘, 4: ‘dddd‘, 5: ‘dddd‘, 6: ‘dddd‘, 34: ‘dddd‘}

###popitem()方法

随机删掉个key 并返回这个key的值

print(id_db.popitem())

*执行结果:*

(220435493306143631, {‘addr‘: ‘DongBei‘, ‘age‘: 24, ‘name‘: ‘ShanPao‘})

###字典用于循环

方法1:

for k,v in id_db .items(): #效率低,因为要有一个dict to list的转换过程
print(k,v)

方法2:
for key in id_db: #建议使用
print(key,id_db[key])

###购物车练习

# -*- coding:utf-8 -*-
#Author:Koala W

#shop mall program exercises

salary = input("Please input your salary:")
if salary.isdigit():
    salary = int(salary)
else:
    print("invald data!")
    exit()
welcome_msg = ‘Welcome to Alex Shopping mall‘.center(50,‘-‘)

exit_flag = False

print(welcome_msg)
product_list = [
    (‘iphone7‘,5888),
    (‘MAC pro‘,9888),
    (‘MAC air‘,7888),
    (‘XIAOMI 5‘,2499),
    (‘可口可乐‘,2),
    (‘IPAD mini‘,3299),
    (‘Alex Li‘,19.9),
    (‘Bike‘,700),
    (‘TOMMIY‘,200),
    (‘宝马汽车‘,316000),]
shop_car = []
while exit_flag is not True:
    print("product list".center(50,‘-‘))
    for item in enumerate(product_list):
        index = item[0]
        p_name = item[1][0]
        p_price = item[1][1]
        print(index, ‘.‘, p_name, p_price)
    user_choice = input("[q=quit,c=check]What do you want to buy?:")
    if user_choice.isdigit():  #输入数字字符必定是选择商品
        user_choice = int(user_choice)
        if user_choice < len(product_list):
            p_item = product_list[user_choice]
            if p_item[1]<= salary: #余额是否买得起商品
                shop_car.append(p_item) # 放入购物车
                salary -= p_item[1]   #从余额中扣除商品费用
                print("Add [%s] into shop car,you current balance is \033[31;1m[%s]\033[0m" %(p_item,salary))
            else:
                print("Your balance is [%s],cannot afford this.." % salary)
    else:
        if user_choice == ‘q‘ or user_choice == ‘quit‘:
            print("purchased products as below".center(40, ‘*‘))
            for item in shop_car:
                print(item)
                print("END".center(40, ‘*‘))
                print("Your balance is [%s]" % salary)
                print("Bye!")
                exit_flag = True
        elif user_choice == ‘c‘ or user_choice == ‘check‘:
            print("purchased products as below".center(40, ‘*‘))
            for item in shop_car:
                print(item)
                print("END".center(40, ‘*‘))
                print("Your balance is \033[41;1m[%s]\033[0m" % salary)
时间: 2024-10-09 11:44:13

python 学习第二天 (下)的相关文章

python学习第二天

python学习的第二天就是个灾难啊,这天被打击了,自己写的作业被否认了,不说了,写博客还是个好习惯的,要坚持下去,就不知道能坚持到什么时候.呵呵!!! 这天教的知识和第一天的知识相差不大,区别在于比第一天讲的更细了(我们是两个老师教的,风格是不一样的),这次也写那些比较细的知识点. python的简介 (1)你的程序一定要有个主文件. (2)对于python,一切事物都是对象,对象基于类创建.#似懂非懂,不过有那么点似懂. 知识点 #__divmod__ 会把两个数字相除的商和余数以元组的方式

python学习第二讲,pythonIDE介绍以及配置使用

目录 python学习第二讲,pythonIDE介绍以及配置使用 一丶集成开发环境IDE简介,以及配置 1.简介 2.PyCharm 介绍 3.pycharm 的安装 二丶IDE 开发Python,以及配置IDE 1.初始化IDE 2.打开python项目. 3.pycharm设置python的默认解释器版本. 4.pycharm设置为所有用户可以使用,以及启动pycharm 5.设置pycharm启动图标(快捷方式) 6.卸载之前的pycharm python学习第二讲,pythonIDE介绍

python学习第二天:数字与字符串转换及逻辑值

1.数字与字符串的转化 #1.数字转字符,使用格式化字符串: *1.demo = ‘%d’  %  source *2.%d整型:%f 浮点型 :%e科学计数  *3.int('source') #转化为int型 #2.字符串转化为数字 *1.导入string :import string *2.demo = atoi(source)  #转换为整型’ atof()    #转为浮点型 2.逻辑值: and  #与 or  #或 not #非 python学习第二天:数字与字符串转换及逻辑值

Python学习第二天数组

1:Python定义数组:a=[0,1,2,3,4] ;   打印数组list(a); 这时:a[0]=0, a[1]=1, a[[2]=2...... 1.1:如果想定义一个很长的数组可以用到python函数range a=range(1000)生成1000个元素的一维数组, list(a) 打印数组显示 1.2:给生成的数组赋初始值:a = [0 for x in range(0, 1000)] 0表示初始值  x表示数组中的元素 range(995,1000)表示从995开始生成到1000

Python学习-第二天-字符串和常用数据结构

Python学习-第二天-字符串和常用数据结构 字符串的基本操作 def main(): str1 = 'hello, world!' # 通过len函数计算字符串的长度 print(len(str1)) # 13 # 获得字符串首字母大写的拷贝 print(str1.capitalize()) # Hello, world! # 获得字符串变大写后的拷贝 print(str1.upper()) # HELLO, WORLD! # 从字符串中查找子串所在位置 print(str1.find('o

python 学习第二天 (上)

##课前思想 ###GENTLEMEN CODE 1 * 着装得体 * 每天洗澡 * 适当用香水 * 女士优先 * 不随地吐痰.不乱扔垃圾.不在人群众抽烟 * 不大声喧哗 * 不插队.碰到别人要说抱歉 * 不在地铁上吃东西 * 尊重别人的职业和劳动 * 尊重别人隐私.不随便打听别人工资 * 与人保持安全距离(1米) * 不要随便评价别人 ###GENTLEMEN CODE 2 * 多去旅行,一年至少一个国家 * 多看数,电影,一年15本书,50+部电影 * 学好英语 * 保持不甘心.保持正能量

python学习第二周(数据类型、字符串、列表、元祖、字典)

一.模块.库 Python的强大之处在于他有非常丰富和强大的标准库和第三方库,几乎你想实现的任何功能都有相应的Python库支持. 模块初始化:模块就是库,库可以是标准库或者是第三方库. sys模块 os模块 Sys.path 导入模块的时候,先从当前目录下面查找. 我们起名字时候不能和导入的模块名字相同. Python的第三方库 E:\\python_path\\base\\lib\\site-packages Python的标准库位置 E:\\python_path\\base Sys.ar

PYTHON学习第二模块 python内置模块介绍

1 >>> import time 2 >>> time.time() 3 1491064723.808669 4 >>> # time.time()返回当前时间的时间戳timestamp(定义为从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数)的方法,无参数 5 >>> time.asctime() 6 'Sun Apr 2 00:39:32 2017' 7 >>> # time.asctim

Python 学习第二十三天 django 知识(五)

一,django 的model操作 1,字段 AutoField(Field) - int自增列,必须填入参数 primary_key=True BigAutoField(AutoField) - bigint自增列,必须填入参数 primary_key=True 注:当model中如果没有自增列,则自动会创建一个列名为id的列 from django.db import models class UserInfo(models.Model): # 自动创建一个列名为id的且为自增的整数列 us