python入门基础(一)列表

1、简介
python是一种面向对象的解释型计算机程序设计语言。
2、变量
2.1、变量赋值

a=1  #将1的值赋给变量a
b=2
a=3  #将3的值赋给变量a
print(a)   #输出a的值为3

代码都是从上到下一次执行的,可以看到,第一步是给变量a赋值,第三部再次给变量a赋值,此时a=3,输出a时,显示a=3;
2.2、变量的命名
a、变量名只能包含字母、数字、下划线。可以以字母或下划线打头,但不能以数字打头。例如变量可以命名为student_1,但不可以命名为1_student;
b、变量名不能包含空格,但可以使用下划线来分隔其中的单词;
c、不要将python的关键字和函数名用作变量名;
d、变量名应该既短又具有描述性
e、慎用小写字母l和大写字母o,因为可能被错认为1和0;
3、简单数据类型
3.1、数字
a、整数

a=12

b、浮点数

b=2.2

3.2、字符串

age=18   #定义了一个整型
message='happy'+age+'rd birthday'  #定义了一串字符串
print(message)   #理想状态下是输出 happy 23rd birthday ,但是执行后报错了

需要注意的是,上述是一个类型错误,整型和字符串混合在一起,这时需要调用函数str(),将非字符串的整型23转换为字符串

age=18
message='happy'+str(age)+'birthday'  #类型转换后,就不会再报错了

3.3、列表
列表是由一系列按特定顺序排列的元素组成。
a、增加元素

name = ['朝朝','小明','王芳','郭霞'] 
name.append('白云')    #方法append是在元素末尾增加元素
#如果想在列表的指定位置增加元素,用.insert方法
name.insert(0,'郭振')  #0,代表在下标为0的位置,添加元素'郭振'

b、删除元素

#用del语句删除元素
name = ['朝朝','小明','王芳','郭霞']
del name[3]      #删除name列表里下标为3的元素,也就是删除元素'郭霞'
#根据元素值来删除元素   如果不知道元素的位置,只知道要删除的元素的值
name.remove('王芳')   #删除元素值为王芳的元素 如果列表里有多个
                       #相同的元素只会删除第一个
#使用方法.pop删除元素
name.pop()  #方法pop是删除列表末尾的元素,并且能够接着使用这个元素
      #pop的方法又叫弹出,可以理解为,列表就像一个栈,而删除末尾元素相当于
      #弹出栈顶元素;
#用pop方法删除指定位置的元素
name.pop(2)  #弹出下标为2的元素
#注意:del和pop的区别是,del删除元素,并且不再以任何方式使用它;如果想要
#在删除元素后还想要继续使用它,就用pop方法

c、修改元素

name = ['朝朝','小明','王芳','郭霞']
name[0]='朝阳'  #修改可以理解为重新赋值,将'朝朝'改为'朝阳'

d、查找元素

name = ['朝朝','小明','王芳','郭霞']
print(name[0])  #根据下标查找元素
print(name.count('小明')) #查找某个元素在列表中的出现次数 可以应用在
                           #注册界面,看看用户是否已经注册
print(name.index('王芳'))  #查找元素的下标

name.reverse    #reverse是反转列表,但是reverse是没有返回值的,
print(name)                     #需要再输出一下才能看到结果
name.clear   #清空列表

name.sort
print(name)   对列表进行永久性排序,升序排列,同样没有返回值
name.sort(reverse=ture)   #如果reverse=ture,,则是降序排列
print(name)

len(name)   #查找列表的长度

name = ['朝朝','小明','王芳','郭霞']
name2 = ['王敬','张毅','章程','小南']
name.extend(name)  #把列表name的值添加到name2列表里,
print(name2)   #name2 = ['王敬','张毅','章程','小南','朝朝','小明','王芳','郭霞']

name3=name+name2  #将name和name2的值合并到一个name3的列表里

学完列表,做一个小练习题,校验用户是否注册
name=[‘zhenxw’,’gan’,’nn’] 假设这是数据库中的用户名列表

for i in range(5):
    username=input('用户名:')
    if username=name.count>0:   #方法count判断用户是否在数据库列表中
        print('用户名已注册')
    else :
        print('用户未注册')
        name.append(username)

for i in range(5):
    username=input('用户名:')
    if username in name:   #也可以用 not in 来判断用户是否已经注册
        print('用户已注册')
    else :
        print('用户未注册')
        name.append(username)

e、多维数组
list可以分为一维数组,也可以有二维,多维数组

nums1=[1,2,3]          #一维数组
nums2=[1,2,3,[4,56]]     #二维数组    #想要取出num2里的56,该怎么办?
print(nums2[-1][-1])    #多维数组取值需要先确定一共有几层数组,下标的
                      #负数代表从右往左数,-1代表最后一个           
nums=[1,2,3,4,['a','b','c','d','e',['一','二','三']],['四','五']  
                      #这是一个三维数组
print(nums[4][5][1])   #值为二

f、遍历循环列表

passwords=['123456','123123','7891234','password'] 
for i in passwords:
    print(i)        #python仅用2行代码实现了循环列表;


#如果想要给数组中的每个值加上'abc'头缀
index=0
for i in passwords:
    password[index]='abc'+i
    index+=1
    print(i)
#更简单的一种方法
passwords=['123456','123123','7891234','password']
for index,p in enumerate(passwords):
    print(index,p)  #使用枚举函数,自动计算出下标和元素显示出来
    passwords[index]='abc'+p
print(passwords)

想一道题:

l=[1,1,1,2,3,4,5]  #筛选出这个列表里的偶数
#  0,1,2,3,4,5,6   这个代表下标

for i in l:
    if i%2!=0:
        l.remove(i)#运行一下这个代码,[1, 2, 4],会发现有奇数混在里面
#原因在于,在循环的时候,把下标0的值删除后,列表内的下标就有了变化,
#下标为1的值此时为下标为0,下次循环会接着从下标1的值开始循环,因此,会漏掉
#一部分的值,所以不能在循环的时候删除列表
#有几种解决方案:
1、重新定义一个和l的值一样的变量
l2=[1,1,1,2,3,4,5]  #这个时候在内存里l和l2指定不同的内存
2、浅拷贝
l=[1,1,1,2,3,4,5]
l2=l #这是浅拷贝,查询一下l和l2的id,发现指向一个地址,所以改变一个,另一个也改变
print(id(l))
print(id(l2))  #显示结果一样
3、深拷贝
import copy
l2=copy.deepcopy(l)  #深拷贝,在内存地址里重新划分了一个地方给l2,此时
#l和l2指向不同的地址,操作l而不会对l2产生影响

g、切片
切片就是取列表中的部分元素。

list = ['a','b','c','d','e','j','k','l','m','n','o']  
print(list[2:5])  #顾头不顾尾,所以结果是取下标2到4的值
  #结果是['c', 'd', 'e']
print(list[:5])   #代表从头开始取
print(list[2:])   #代表从下标为2取到最后;
print(list[::3])   #代表步长是3,每隔三个取一个
   #['a', 'd', 'k', 'n'] 

#如果取1到100之间的所有奇数或者偶数,该怎么写呢?
num=list(range(1,101))
print(list[::2])  #取奇数
print(list[1::2])  #取偶数
print(list[::-1])  
#步长是整数,代表从左往右取数,如果是负数,代表从右往左数

word='十一放假快乐'
print(word[::-1])   #切片也适用于字符串

#写一个验证是否是回文的小程序
#'上海自来水来自海上'  回文就是正着反着都是一句话

for i in range(10):
    message=input('请输入一串字符串:')  
    if len(message)<2: #避免像输入1,也会返回是回文
        print('字符串必须大于1')
    elif message==message[::-1]:
        print('是回文')
    else:
        print('不是回文')   
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值