Python_03_字符串_数据类型_for循环_列表操作

个人笔记,仅作学习记录,如有错误烦请指正

字符串:

str1 = "这是一个字符串"
str2 = ‘这也是一个字符串‘

一般字符串都需要用双引号或单引号引起来

在Python中双引号和单引号是一样的,但必须成对出现

msg = "i‘m liming"
# 此处因为字符串中包含单引号,所以外边用双引号引起来表示字符串内容
msg = """收到消息"i‘m liming"."""
# 此处因为字符串中既包含了单引号,又包含了双引号,所以外边用三引号引起来表示字符串内容
str3 = """这是
一个
包含
换行格式
的字符串
"""

Python中的字符串除了用双引号或单引号引起来表示之外
还可以将字符串前后用三个单引号或双引号引起来,这样可以保留多行文本的输出格式
(多行注释其实就是一个没有被任何变量引用的字符串)

格式化输出:
%s: s = string 字符串占位符
%d: d = digit 整形数值占位符
%f: f = float 浮点类型占位符

判断一个字符串是不是数字组成的:
str.isdigit() # 支持普通数字,二进制数字、罗马数字,不支持汉字数字的判断
str.isnumeric()# 支持判断普通数字、罗马数字、汉字数字,但不支持二进制数字判断

数据类型:

整数: int(integer)
在Python3上已不区分整形和长整型,统一为整形
注:Python中存在小整数池-5~257

浮点型:float
大多数情况下用来表示小数,但并不表示浮点型只表示小数

复数:(不讨论)

布尔型:bool
True、False 两种状态

字符串:string
Python中每次创建字符串时需要在内存中开辟一块连续的空间
并且一旦需要修改字符串的话,就需要再次开辟空间,万恶的
加号每出现一次就会在内存中重新开辟一块空间

循环:loop
有限循环:次数限制
无限循环:死循环

for循环的格式:(与常见编译型语言的语法不同)

for i in range(1,10,2):
    pass

range(x)在Python3中返回的是一个迭代器,Python2中返回的是一个列表
range(x)的参数最多为3个,第1个或2个表示返回的迭代器取值范围,如只有一个参数,表示从0到参数值前一个的迭代器
当有三个参数时,第三个参数表示迭代器的步长

_user = "TyQuan"
_passwd = "abc123"

# for i in range(3):
#     username = input("Username:")
#     password = input("Password:")
#     if username == _user and password == _passwd:
#         print("Welcome %s login..." % _user)
#         break # break 跳出、中断循环
#     else:
#         print("Invalid username or password!")

# passed_authentication = False
# for i in range(3):
#     username = input("Username:")
#     password = input("Password:")
#     if username == _user and password == _passwd:
#         print("Welcome %s login..." % _user)
#         passed_authentication = True
#         break
#     else:
#         print("Invalid username or password!")
#
# if not passed_authentication:
#     print("失败多次,账户已被锁定")

for i in range(3):
    username = input("Username:")
    password = input("Password:")
    if username == _user and password == _passwd:
        print("Welcome %s login..." % _user)
        break
    else:
        print("Invalid username or password!")
else:
# 只要for循环正常执行完毕,中间没有被break打断,就会执行else语句
    print("失败多次,账户已被锁定")

counter = 0
while counter<3:
    username = input("Username:")
    password = input("Password:")
    if username == _user and password == _passwd:
        print("Welcome %s login..." % _user)
        break
    else:
        print("Invalid username or password!")
     counter += 1
else:
#只要while循环正常执行完毕,中间没有被break打断,就会执行else语句
    print("失败多次,账户已被锁定")

continue:结束本次循环,进行下一次循环
break:跳出当前整个循环

利用标记跳出多层循环的方法:

flag = False
for i in range(x):
    ......
    for i in range(x):
        ......
        if xxx:
            flag = True
            break
    if flag:
        break

2017年9月2日18:35:23
列表:

ist = [0, 1, 2, 3, 4, 5, 6]

切片(截取列表中的元素):

list[x:y:z]

首先z表示步长(正数表示从左往右, 负数表示从右往左), 如果没有第三个参数默认步长为1
此处的x表示起始位置(包含), y表示终止位置(不包含)
当z为正数时
  如果x值不写,默认从列表第一个元素开始往后取
  如果y值不写,默认取到列表末尾(包含列表最后一个元素)
当z为负数时
  如果x值不写,默认从列表最后一个元素开始往前取
  如果y值不写,默认取到列表开头(包含列表第一个元素)
切片同样适用于字符串,且方法一致

添加:append(), insert()

list.append(x)# 往末尾追加元素,x为要追加的元素
list.insert(index, x)
# 在下标为index的地方插入元素x

修改:
列表的修改可以通过下标直接进行赋值

list[0] = 1

也可以通过切片修改一部分值(不建议, 易产生混淆)

list[0:3] = [11, 22, 33]

此处如果切片的个数大于欲指定值的个数,切片内容多余部分直接丢弃
此处如果切片的个数小于预指定值的个数,预指定值多余部分直接插入

删除:remove(), pop, del

list.remove(x or list[index])# 删除列表中list[index]的值或删除列表中为x的值
list.pop(index)# 删除列表中下标为index所在位置的值,并返回该位置上原有的值
del x# 删除当前程序中存在的变量, 如:del a[0]del a[0:3]del a

查找:index()

list.index(x)# 查找x在该列表中的位置,返回值为该值在列表中的下标,不存在报ValueError错误
list = [1, 2, 3, 2, 4, 2]
first_index = list.index(2)
second_index = list[first_index+1 : ].index(2) + first_index + 1
third_index = list[second_index+1 : ].index(2) + second_index + 1......# 当列表中包含多个重复元素时,无法通过index得到全部重复元素的位置

list.index(x)只能取到第一个,不过可以通过切片的方式进行逐个获取(不推荐上面的方式, 可以尝试循环来处理)
如:查询次数少

indexs = []
index_temp = 0
list_temp = list
temp = 0
# for i in range(len(list)):
#     if value in list_temp:
#         index_temp = list_temp.index(value)
#         indexs.append(index_temp + temp)
#         temp += index_temp+1
#         if temp<len(list):
#             list_temp = list[temp: ]
#         else:
#             break
#     else:
#         break
for i in range(list.count(value)):
    index_temp = list_temp.index(value)
    indexs.append(index_temp + temp)
    temp += index_temp+1
    list_temp = list[temp: ]

或:查询次数多

indexs = []
for i in range(len(list)):
    if value == list[i]:
        indexs.append(i)

此处得到的indexs列表,就是包含所有重复元素的位置的列表

身份判断:is
>>> type(list) is list
True
>>>

列表的其他操作:

list.count(x)
# 统计某个x元素在列表中出现的次数
list.extend(x)
# 可以在列表的末尾一次性追加另一个x序列中的多个值(x为序列,元祖或列表等)

用"+"(加号)也可以实现将一个列表中的多个元素与另一个列表合并, 相当于追加多个元素到末尾
extend与"+"的区别:extend方法修改了被扩展的列表,而原始的连接操作"+"则不然,它返回一个全新的列表

list.reverse()
# 将当前列进行倒序排列
list.sort()
# 将当前列表进行升序排列(想得到降序的话,list.sort(reverse=True))

对英文字母进行排序是根据ASCII码的顺序排列的,大写字母在前
另外有个排序函数是:sorted(list)
该函数是可以对所有的可迭代序列进行排序的,不是list类的函数
它返回一个新的list,新的list的元素基于小于运算符(__lt__)来排序。

list.clear()
# 清空列表
时间: 2024-10-23 05:56:28

Python_03_字符串_数据类型_for循环_列表操作的相关文章

第三天循环、列表操作等

print格式化输出 %10d: 往右移 %-10d:往左移 Shift + Tab:往回缩进 while:变量初始化while 条件:内容变量更新养成好习惯,尽可能先敲变量更新 循环嵌套 i=1while i < 5: # 行号j=1 # 星星个数while **:j+=i+=1 \t: Tab print(" %d %d = %d " %( i , j , i j ) , end = " \t " )print(" %d %d = "

.Net基础篇_学习笔记_第六天_for循环语法_正序输出和倒序输出

for TAB  和 forr TAB 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace 第六天_do_while循环 8 { 9 class Program 10 { 11 static void Main(string[] args) 12 { 13 for (in

Python笔记---DAY3:格式化输出、for循环、列表操作

1.引号使用: 多行变量用三引号 python单双引号相同,当命令内容中有引号时注意最外层引号的使用 2.格式化输出: name=input("name:") age=int(input("age:")) job=input("job:") salary=input("salary:") number=input("number:") if salary.isdigit(): 判断输入是否为数字,其中.的作

Python学习笔记五_数据类型(字符串)

已经学习过的数据类型包括:int.float.list.tuple.dict.这篇来单独记录下字符串.单独将字符串这种数据类型写出来,是因为python里有很多非常有用的字符串内置方法. 一.字符串定义 字符串可以存任意类型的字符串,比如名字,一句话等等. 1 name = 'Rebecca' 2 msg = 'Fighting' 二.字符串内置方法 1.常用方法 输出为字符串的方法 a = 'my name is Rebecca' print(a.capitalize()) #将字符串的第一个

02_1标识符_关键字_数据类型

02_1标识符_关键字_数据类型 1. 标识符 1.1Java对各种变量.方法和类等要素命名时使用的字符序列称为标识符. 凡是自己可以起名字的地方都叫标识符,都遵守标识符的规则 1.2Java标识符命名规则: 标识符由字母.下划线"_".美元符"$"或数字组成. 标识符以字母.下划线.美元符开头. Java标识符大小写敏感,长度无限制. 1.3约定俗成:Java标识符选取因注意"见名知意"且不能与Java语言的关键字重名. 合法的标识符 不合法的

python数据类型(字符串、列表操作)

一.整形和浮点型整形也就是整数类型(int)的,在python3中都是int类型,没有什么long类型的,比如说存年龄.工资.成绩等等这样的数据就可以用int类型,有正整数.负整数和0,浮点型的也就是小数类型(folat)的,带小数点的 1 age = 18 2 b = -50 3 c = 5.222 二.布尔类型什么是布尔类型,布尔类型就是真和假,只有这两种,True和Fasle,非真即假,除了True和False还有0和1,非0即真 1 a = True 2 b = False 三.字符串和

python爬虫笔记_列表操作

列表是Python中最基本的数据结构,列表是最常用的Python数据类型,列表的数据项不需要具有相同的类型.列表中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推.Python有6个序列的内置类型,但最常见的是列表和元组.序列都可以进行的操作包括索引,切片,加,乘,检查成员.此外,Python已经内置确定序列的长度以及确定最大和最小的元素的方法. 一.创建一个列表只要把逗号分隔的不同的数据项使用方括号括起来即可.如下所示: list1 = ['physic

一起学python 三 --字符串详解,for循环

1.整型 n = 56 print(n.bit_length()) #查看值用几位(bit) # python2 中有长整型 long # python3 中全都是整型 2.bool True False print(boll(num)) #非0数字输出Ture 数字0输出False 所有空的都是False 0,None,[],{},(),"" print(int(True)) 1 print(int( False)) 0 ## 字符串转布尔值的时候,只要不为空就是Ture3.字符串详

python数据类型详解及列表字典集合推导式详解

一.运算符 Python语言支持以下类型的运算符: 算术运算符 如: #!/usr/bin/env python # -*- coding:utf-8 -*- a = 5 b = 6 print(a + b) 比较运算符 例: #!/usr/bin/env python # -*- coding:utf-8 -*- a = 5 b = 6 if a < b: print(True) else: print(False) 赋值运算符 例: #!/usr/bin/env python # -*- c