#定义一个字符串序列
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)
**注意事项 :**
# 讲输入数字以指定年月日的日期打印出来
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
'''
切片操作可以访问特定范围内的元素
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,python允许设置更大的步长,或者是从终点向起始点进行切片
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]
'''
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]
'''
**注意事项:**序列相加只支持同类型的序列进行相加,比如字符串和列表相加就会报错。
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
# 检查用户名和PIN码
databases = [
['albert', '1234'],
['dilbert', '5678'],
['smith', '1245'],
['jones', '6688']
]
username = input('Username: ')
pin = input("PIN: ")
if [username, pin] in databases:
print('Access granted!')
# 计算长度
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函数来创建列表:
>>> print(list('Hello'))
['H', 'e', 'l', 'l', 'o']
num = 1, 2, 3, 4, 5, 6, 7, 8
num0 = 0
print(num)
'''
0, 2, 3, 4, 5, 6, 7, 8
'''
num = 1, 2, 3, 4, 5, 6, 7, 8
del num0
print(num)
'''
2, 3, 4, 5, 6, 7, 8
'''
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
'''
lst = 1, 2, 3, 4
lst.append(5)
print(lst)
lst = 1, 2, 3, 4, 5, 6, 7, 8
print(lst)
lst.clear()
print(lst)
'''
1, 2, 3, 4, 5, 6, 7, 8
[]
'''
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
'''
lst5 = 1,2,2,3,2,1,3,4,5,6,6,23,32,21,32
print(lst5.count(2))
a = 1, 2, 3
b = 4, 5, 6
a.extend(b)
print(a)
#index()方法用来查找指定元素第一次出现的索引
names = 'jack', 'rose', 'jack', 'bin', 'lili', 'kay',1,2,3,4,'kay'
print(names.index('kay'))
'''
5
'''
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
'''
lst7 = 1,2,3,4,5,56
a = lst7.pop()
print(a)
print(lst7)
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'
'''
```python
# 方法reverse按相反的顺序排列列表中的元素
nums = [1,2,3]
nums.reverse()
reversed(nums)
print(nums)
'''
[3, 2, 1]
'''
```
```python
# sort()方法按照字典顺序用来给列表进行排序,也是就地更改,不返回新列表
nums = [5,3,2,5,6,7,3,21,32,5,64,1]
nums.sort()
print(nums)
print('--------------------------')
# 如果需要保留原列表,讲排序后的列表给新列表可以使用sorted()函数
nums2 = [2,3,4,1,4,5,6,5,3,1,6,678,9,1,0]
a = sorted(nums2)
print(nums2)
print(a)
'''
[1, 2, 3, 3, 5, 5, 5, 6, 7, 21, 32, 64]
--------------------------
[2, 3, 4, 1, 4, 5, 6, 5, 3, 1, 6, 678, 9, 1, 0]
[0, 1, 1, 1, 2, 3, 3, 4, 4, 5, 5, 6, 6, 9, 678]
'''
```
sort和sorted函数有参数key和reverse
(42) == 42
#有逗号的才表示是一个元组
(42,)
3 * (40+2)
126
3 * (40+2, )
(42, 42, 42)
* 字符串可以使用序列的通用方法
* 还有些字符串特有的方法:
```python
#方法 title()以首字母大写的方式显示每个单词
name = 'kai zheng'
print(name.title())
--------
# 输出为:Kai Zheng
# 将字符串中的字母全都改为大写:upper()
# 将字符串中的字母全都改为小写:lower()
```
```python
first\_name = "ada"
last\_name = "lovelace"
full\_name = f"{first\_name} {last\_name}"
print(full\_name)
#输出为ada lovelace
```
```python
# rstrip()是去除右边的空格
>>>favorite\_language = 'python '
>>>favorite\_language.rstrip()
'python'
>>> favorite\_language
'python '
#lstrip()是去除开头的空白,strip()是去除所有空白,效果跟rstrip()是类似的
```
条件语句就是由if语句构成的判断语句,用来判断是否该执行下一个步骤。
条件语句能够判断程序是否应该执行下一步的代码,在一些需要我们进行判断,然后再决定是否执行的地方使用。
条件语句的组成:
if 判断表达式 :
将要执行的代码块,如果判断为true则执行
---------
#或者是:
if 判断表达式:
代码块
elif 表达式:
代码块
......
else :
代码块
-------
这适用于有多个分支条件需要判断的情况下
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 列表内的单个元素 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]}')
#不同于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语句用来直接停止循环,包括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 删除。