前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python基础02——序列&条件循环&字典

Python基础02——序列&条件循环&字典

原创
作者头像
每天都要进步的阿凯
发布2022-07-25 10:18:58
1.2K0
发布2022-07-25 10:18:58
举报
文章被收录于专栏:测开学习笔记

序列

什么是序列?

  1. 序列是一python的一种数据结构,它的成员都是有序排列的,并且可以通过下标偏移量访问 到它的一个或几个成员。(正索引从首部访问,副索引从尾部访问)。
  2. **字符串、元组和列表都是序列**,其实是三个继承自序列类的类,他们都可以通过下标索引访问它的成员,都有继承自序列类的共同的方法。
  3. 序列还是容器(可以包含其他对象的对象)的一种,另一种主要的容器是字典。

序列的通用操作

索引
代码语言:python
代码运行次数:0
复制
#定义一个字符串序列

greeting = 'Hello Python'



#通过索引0访问这个序列的第一个元素,并输出  H

print(greeting[0])



#通过索引-1访问这个序列的最后一个元素,并输出  n

print(greeting[-1])



# 可以直接对序列的字面量进行索引操作,无需先赋值给变量

print((1, 2, 3, 4)[2])

print('Hello'[0])



#如果函数的返回是一个序列,也可以直接对其进行索引操作

str01 = input('year:')[2]

print(str01)

**注意事项 :**

  1. python 没有字符类型,所以通过索引获取到的其实是一个单字符的字符串
  2. 当你使用负数索引时,Python将从右(即从最后一个元素)开始往左数
代码语言:python
代码运行次数:0
复制
# 讲输入数字以指定年月日的日期打印出来

months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November',

          'December']



# 指定一个包含英文字母结尾的字符串列表

ending = ['st', 'nd', 'rd'] + 17 \* ['th'] + ['st', 'nd', 'rd'] + 7 \* ['th'] + ['st']



print(ending)



year = input("Year: ")

month = input(("Month(1-12):"))

day = input("day(1-31): ")



month\_num = int(month)

day\_num = int(day)



month\_name = months[month\_num-1]

ordinal = day + ending[day\_num]



print(month\_name + '\t' + ordinal + '\t' + year)



'''

运行结果:

['st', 'nd', 'rd', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'st', 'nd', 'rd', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'st']

Year: 2021

Month(1-12):10

day(1-31): 7

October    7th    2021

'''
切片

切片操作可以访问特定范围内的元素

代码语言:python
代码运行次数:0
复制
url = 'https://www.cnblogs.com/kay08/'

print(len(url))



print(url[8:24])



print(url[-6:-1])



# 直接截取到末尾

print(url[8:])



# 从第一个元素开始

print(url[:23])



# 截取所有

print(url[:])



'''

30

www.cnblogs.com/

kay08

www.cnblogs.com/kay08/

https://www.cnblogs.com

https://www.cnblogs.com/kay08/

'''

**注意事项:**

  1. 切片操作的第一个索引表示从哪个索引开始切片,第二个索引表示切片后剩余第一个元素的索引。
  2. 省略左边的索引表示从开头开始截取,省略右边的索引表示截取到末尾。

**切片的步长设置**

代码语言:txt
复制
正常默认情况下的步长为1,python允许设置更大的步长,或者是从终点向起始点进行切片
代码语言:python
代码运行次数:0
复制
nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]



# 默认情况下的切片操作

print(nums[:8])



# 设置步长为2

print(nums[:9:2])

print(nums[1:9:2])



# 简写索引下设置步长

print(nums[::4])



# 设置步长为负数,从终点向起始点切片

print(nums[::-2])



'''

[1, 2, 3, 4, 5, 6, 7, 8]

[1, 3, 5, 7, 9]

[2, 4, 6, 8]

[1, 5, 9]

[11, 9, 7, 5, 3, 1]

'''
相加
代码语言:python
代码运行次数:0
复制
num1 = [2, 4, 6, 8, 10]

num2 = [1, 3, 5, 7, 9]



nums = num1 + num2



print(nums)

nums.sort()

print(nums)



'''

[2, 4, 6, 8, 10, 1, 3, 5, 7, 9]

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

'''

**注意事项:**序列相加只支持同类型的序列进行相加,比如字符串和列表相加就会报错。

相乘
代码语言:python
代码运行次数:0
复制
pythons = 'python\t' \* 5

print(pythons)



print([2021] \* 10)



'''

python    python    python    python    python    

[2021, 2021, 2021, 2021, 2021, 2021, 2021, 2021, 2021, 2021]

'''
成员资格检查

使用关键字 **in**来进行资格检查,在序列中则返回True,否则返回False

代码语言:python
代码运行次数:0
复制
# 检查用户名和PIN码

databases = [

    ['albert', '1234'],

    ['dilbert', '5678'],

    ['smith', '1245'],

    ['jones', '6688']

]



username = input('Username: ')

pin = input("PIN: ")



if [username, pin] in databases:

    print('Access granted!')
长度、最大值和最小值
代码语言:python
代码运行次数:0
复制
# 计算长度

str1 = 'I love Python'

print(len(str1))



num = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

print('长度:' + str(len(num)))

print('最小值:' + str(min(num)))

print('最大值:' + str(max(num)))



'''

# 计算长度

str1 = 'I love Python'

print(len(str1))



num = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

print('长度:' + str(len(num)))

print('最小值:' + str(min(num)))

print('最大值:' + str(max(num)))



'''

列表

什么是列表?

列表是序列的一种,不同于元组和字符串,列表是可变的,有许多属于列表这个类的独特方法可以用来改变列表。

可以使用list函数来创建列表:

代码语言:python
代码运行次数:0
复制
>>> print(list('Hello'))

['H', 'e', 'l', 'l', 'o']

基本的列表操作

  1. 修改列表:给列表赋值
代码语言:python
代码运行次数:0
复制

num = 1, 2, 3, 4, 5, 6, 7, 8

num0 = 0

print(num)

'''

0, 2, 3, 4, 5, 6, 7, 8

'''

代码语言:txt
复制
  1. 删除元素
代码语言:python
代码运行次数:0
复制

num = 1, 2, 3, 4, 5, 6, 7, 8

del num0

print(num)

'''

2, 3, 4, 5, 6, 7, 8

'''

代码语言:txt
复制
  1. 给切片赋值
代码语言:python
代码运行次数:0
复制

str1 = list('Perl')

可将切片替换为长度与其不同的序列。

str11: = list('ython')

print(str1)

num = 2, 3, 4, 5, 6, 7, 8

在不替换原有元素的情况下插入新元素

num0:0 = 1

print(num)

给切片赋空值,相当于删除

num = 1,2,3,4,5

num1:4 = []

print(num)

'''

'P', 'y', 't', 'h', 'o', 'n'

1, 2, 3, 4, 5, 6, 7, 8

1, 5

'''

代码语言:txt
复制

列表方法

  1. **append()**
代码语言:python
代码运行次数:0
复制

lst = 1, 2, 3, 4

append只是修改旧列表,不会有新的列表返回

lst.append(5)

print(lst)

代码语言:txt
复制
  1. **clear()**
代码语言:python
代码运行次数:0
复制

lst = 1, 2, 3, 4, 5, 6, 7, 8

print(lst)

lst.clear()

print(lst)

'''

1, 2, 3, 4, 5, 6, 7, 8

[]

'''

代码语言:txt
复制
  1. **copy()**
代码语言:python
代码运行次数:0
复制

常规复制只是讲另一个变量关联到原来的变量,如果两个变量要指向不同的列表,则需要使用copy()方法复制一个原来变量的副本与新变量关联

lst3 = 1, 2, 3, 4

常规复制

lst4 = lst3

lst40 = 2

print('常规:')

print(lst3)

lst3 = 1, 2, 3, 4

lst4 = lst3.copy()

lst40 = 2

print('copy:')

print(lst3)

'''

常规:

2, 2, 3, 4

copy:

1, 2, 3, 4

'''

代码语言:txt
复制
  1. **count()**
代码语言:python
代码运行次数:0
复制

count()方法用来计算某个元素在列表中出现多少次

lst5 = 1,2,2,3,2,1,3,4,5,6,6,23,32,21,32

print(lst5.count(2))

代码语言:txt
复制
  1. **extend()**
代码语言:python
代码运行次数:0
复制

extend()方法虽然类似于拼接,但是跟拼接不同的是,extend方法会修改原来的列表,而拼接是返回一个新列表

a = 1, 2, 3

b = 4, 5, 6

a.extend(b)

print(a)

代码语言:txt
复制
  1. **index()**
代码语言:python
代码运行次数:0
复制

#index()方法用来查找指定元素第一次出现的索引

names = 'jack', 'rose', 'jack', 'bin', 'lili', 'kay',1,2,3,4,'kay'

print(names.index('kay'))

'''

5

'''

代码语言:txt
复制
  1. **insert()**
代码语言:python
代码运行次数:0
复制

insert()方法用来忘列表指定位置插入一个对象

lst6 = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10

lst6.insert(5,'yeah!')

print(lst6)

'''

1, 2, 3, 4, 5, 'yeah!', 6, 7, 8, 9, 10

'''

代码语言:txt
复制
  1. **pop()**
代码语言:python
代码运行次数:0
复制

pop()用来删除列表中的最后一个元素,并返回这一元素

pop()是唯一既修改列表又返回一个非None值的列表方法。、

lst7 = 1,2,3,4,5,56

a = lst7.pop()

print(a)

print(lst7)

代码语言:txt
复制
  1. **remove()**
代码语言:python
代码运行次数:0
复制

romove()方法是用于删除第一个为指定值的元素,就地修改,不返回值

names2 = 'jack', 'rose', 'jack', 'bin', 'lili', 'kay',1,2,3,4,'kay'

names2.remove('jack')

print(names2)

'''

'rose', 'jack', 'bin', 'lili', 'kay',1,2,3,4,'kay'

'''

代码语言:txt
复制
  1. **reverse()**
代码语言:txt
复制
```python
代码语言:txt
复制
# 方法reverse按相反的顺序排列列表中的元素
代码语言:txt
复制
nums = [1,2,3]
代码语言:txt
复制
nums.reverse()
代码语言:txt
复制
reversed(nums)
代码语言:txt
复制
print(nums)
代码语言:txt
复制
'''
代码语言:txt
复制
[3, 2, 1]
代码语言:txt
复制
'''
代码语言:txt
复制
```
  1. **sort()**
代码语言:txt
复制
```python
代码语言:txt
复制
# sort()方法按照字典顺序用来给列表进行排序,也是就地更改,不返回新列表
代码语言:txt
复制
nums = [5,3,2,5,6,7,3,21,32,5,64,1]
代码语言:txt
复制
nums.sort()
代码语言:txt
复制
print(nums)
代码语言:txt
复制
print('--------------------------')
代码语言:txt
复制
# 如果需要保留原列表,讲排序后的列表给新列表可以使用sorted()函数
代码语言:txt
复制
nums2 = [2,3,4,1,4,5,6,5,3,1,6,678,9,1,0]
代码语言:txt
复制
a = sorted(nums2)
代码语言:txt
复制
print(nums2)
代码语言:txt
复制
print(a)
代码语言:txt
复制
'''
代码语言:txt
复制
[1, 2, 3, 3, 5, 5, 5, 6, 7, 21, 32, 64]
代码语言:txt
复制
--------------------------
代码语言:txt
复制
[2, 3, 4, 1, 4, 5, 6, 5, 3, 1, 6, 678, 9, 1, 0]
代码语言:txt
复制
[0, 1, 1, 1, 2, 3, 3, 4, 4, 5, 5, 6, 6, 9, 678]
代码语言:txt
复制
'''
代码语言:txt
复制
```
  1. **高级排序**
代码语言:txt
复制
sort和sorted函数有参数key和reverse

元组

什么是元组?

  1. 与列表一样,元组也是序列,唯一的差别在于元组是不能修改的。
  2. 创建空元组可以是(),但是创建一个只有一个元素的元组则必须要有逗号
代码语言:python
代码运行次数:0
复制

(42) == 42

#有逗号的才表示是一个元组

(42,)

3 * (40+2)

126

3 * (40+2, )

(42, 42, 42)

代码语言:txt
复制

为什么使用元组

  1. 可以用作映射里的key。
  2. 有些内置函数和方法返回元组。
  3. 元组除了不能修改,其余操作跟列表是一样的

字符串

什么是字符串?

  1. 字符串是序列的一种,与元组一样也是不可变的
  2. 字符串的数据类型为 str,由双引号或者单引号构成。

字符串的基本操作

* 字符串可以使用序列的通用方法

* 还有些字符串特有的方法:

  1. 使用方法修改字符串的大小写
代码语言:txt
复制
 ```python
代码语言:txt
复制
 #方法 title()以首字母大写的方式显示每个单词
代码语言:txt
复制
 name = 'kai zheng'
代码语言:txt
复制
 print(name.title())
代码语言:txt
复制
 --------
代码语言:txt
复制
 # 输出为:Kai Zheng
代码语言:txt
复制
 # 将字符串中的字母全都改为大写:upper()
代码语言:txt
复制
 # 将字符串中的字母全都改为小写:lower()
代码语言:txt
复制
 ```
  1. 在字符串中使用变量,可以使用f
代码语言:txt
复制
 ```python
代码语言:txt
复制
 first\_name = "ada" 
代码语言:txt
复制
 last\_name = "lovelace" 
代码语言:txt
复制
 full\_name = f"{first\_name} {last\_name}" 
代码语言:txt
复制
 print(full\_name)
代码语言:txt
复制
 #输出为ada lovelace
代码语言:txt
复制
 ```
  1. 删除空白
代码语言:txt
复制
 ```python
代码语言:txt
复制
 # rstrip()是去除右边的空格
代码语言:txt
复制
 >>>favorite\_language = 'python '
代码语言:txt
复制
 >>>favorite\_language.rstrip()
代码语言:txt
复制
 'python'
代码语言:txt
复制
  >>> favorite\_language 
代码语言:txt
复制
 'python '
代码语言:txt
复制
 #lstrip()是去除开头的空白,strip()是去除所有空白,效果跟rstrip()是类似的
代码语言:txt
复制
 ```

条件与循环

什么是条件语句?

条件语句就是由if语句构成的判断语句,用来判断是否该执行下一个步骤。

条件语句有什么用?

条件语句能够判断程序是否应该执行下一步的代码,在一些需要我们进行判断,然后再决定是否执行的地方使用。

如何使用条件语句?

条件语句的组成:

image-20210225225500605
image-20210225225500605
代码语言:python
代码运行次数:0
复制
if 判断表达式 :

  将要执行的代码块,如果判断为true则执行



---------

#或者是:

if 判断表达式:

    代码块

elif 表达式:

    代码块

  ......

else :

    代码块

 -------

这适用于有多个分支条件需要判断的情况下
代码语言:python
代码运行次数:0
复制
a = 'Porsche'

b = 'Porsche'

# 比较是否相等

# if a==b :

#     print(f'a和b相等,都是{a}')

# else :

#     print('a not equal b')



# 输出:

# a和b相等,都是porsche



# 检查是否相等时,python默认是不忽略大小写的,可以使用lower()方法来转换成小写后再进行比较

# a = 'porSche'

# b = 'porsche'



# if a.lower() == b:

#     print(f'a和b相等,都是{a.lower()}')

# else:

#     print('a not equal b')

#

# print('a的值为', a)

# 输出:

# a和b相等,都是porsche

# a的值为 porSche



# 检查是否不相等,使用!=符号,输出:a not equal to b

# a = 'porSche'

# b = 'porsche'

# if a != b :

#     print('a not equal to b')



# 数值比较与多条件比较,elif就是当if条件不成立时就会进入,一层层判断,如果都不成立则执行else后面的代码。

# 多个判断语句出现的时候,最后也可以不使用else,可以以elif结尾

# 多条件比较可以使用关键字 and ,表示逻辑与(两边都为true时为true)和 or 表示逻辑或(只要有一个true则为true)



a = 18.8

b = 189



if a == b:

    print('a equals b ?', a == b)

elif a > 100:

    print('a>100?', a > 100)

elif a < b:

    print('a<b?', a < b)

elif a >= 100 and a < b:

    print("a>=100 and a<b?", a >= 100 and a < b)

else:

    print('a not equals b ?', a != b)



# 序列的比较还可以使用 in 和 not in

什么是循环语句?

循环语句分为for循环和while循环,是用来循环执行某段代码的。

循环语句有什么作用?

循环语句可以用来处理列表、字典等的元素,可以通过循环取出一个个元素执行特定的操作(增删改查等)。

还可以通过循环语句执行多次相同的操作,知道条件不满足为止。

如何使用循环语句?

for循环
代码语言:PYTHON
复制
#语法格式:

# for 列表内的单个元素 in 列表名 :

    #循环执行的代码

# 打印披萨列表

pizzas = ['Marinara', 'Durian Pizza', 'Seafood Supreme']

for pizza in pizzas:

    print(f'I like {pizza} so much!')

print(f'I really like Pizza,expecially {pizzas[1]}')

  
while循环
代码语言:python
代码运行次数:0
复制
#不同于for循环用于针对每个元素都执行一个代码块,while循环则是不断执行代码块,知道条件不满足为止

#电影票,编写一个while循环,在其中询问用户的年龄,并指出其票价

prompt = "\n Give me your age and I'll tell you the fare:"

prompt += "\n(Enter 'quit' when you are finished.) "

age = 0

flag = True

#input函数用来获取用户的输入讯息,参数prompt是提示用户的信息,在while循环中,程序会一直执行,获取用户的输入直到用户的输入为quit,则将falg的值变为False,循环停止执行

while flag:

    message = input(prompt)

    if message == 'quit':

        flag = False

    else:

        age = int(message)

        if age < 3:

            print('The ticket is free')

        elif 3 <= age <= 12:

            print('The fare is 10$')

        elif age > 12:

            print('The fare is 15$')

            
break和continue语句
代码语言:python
代码运行次数:0
复制
#break语句用来直接停止循环,包括for循环和while循环;continue语句则用来跳过当前循环,执行下一次循环

while flag:

    message = input(prompt)

    if message == 'quit':

       break

    else:

        age = int(message)

        if age < 3:

            print('The ticket is free')

        elif 3 <= age <= 12:

            print('The fare is 10$')

        elif age > 12:

            print('The fare is 15$')

#当输入quit的时候,执行break语句,循环就直接停止了不会再去判断条件

#如果是continue语句,则会跳过这次循环,继续执行下一次循环,提示用户输入年龄
注意事项

在使用while循环的时候一定要给出结束循环的条件,避免陷入死循环。

映射与字典

什么是字典?

字典是一个用键值对表示的数据集,由大括号将各个数据键值对括起来,每一个键值对表示一个数据,之间用逗号隔开。

字典有什么用?

字典可以存储基本数据类型,也可以存储列表、元组,甚至是存储字典,而且字典能够很好的表示字典里每个数据的映射关系,键和值的关系是清晰明确的。

字典的常用操作

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 序列
    • 什么是序列?
      • 序列的通用操作
      • 列表
        • 什么是列表?
          • 基本的列表操作
          • 可将切片替换为长度与其不同的序列。
          • 在不替换原有元素的情况下插入新元素
          • 给切片赋空值,相当于删除
            • 列表方法
            • append只是修改旧列表,不会有新的列表返回
            • 常规复制只是讲另一个变量关联到原来的变量,如果两个变量要指向不同的列表,则需要使用copy()方法复制一个原来变量的副本与新变量关联
            • 常规复制
            • count()方法用来计算某个元素在列表中出现多少次
            • extend()方法虽然类似于拼接,但是跟拼接不同的是,extend方法会修改原来的列表,而拼接是返回一个新列表
            • insert()方法用来忘列表指定位置插入一个对象
            • pop()用来删除列表中的最后一个元素,并返回这一元素
            • pop()是唯一既修改列表又返回一个非None值的列表方法。、
            • romove()方法是用于删除第一个为指定值的元素,就地修改,不返回值
              • 元组
                • 什么是元组?
                • 为什么使用元组
              • 字符串
                • 什么是字符串?
                • 字符串的基本操作
              • 条件与循环
                • 什么是条件语句?
                • 条件语句有什么用?
                • 如何使用条件语句?
                • 什么是循环语句?
                • 循环语句有什么作用?
                • 如何使用循环语句?
              • 映射与字典
                • 什么是字典?
                • 字典有什么用?
                • 字典的常用操作
            相关产品与服务
            容器服务
            腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档