我是靠谱客的博主 阳光流沙,最近开发中收集的这篇文章主要介绍Python入门到入土(2)Python从入门到入土(2),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Python从入门到入土(2)

一、if语句

结构:

if语句

if 条件:
	语句1 # if语句通过缩进表示控制范围
	语句2
	……
else:
	语句1
	语句2
	……

同时满足多个条件,用and,相当于C的&&
满足多个条件之一,用or,相当于C的||

if-elif-else语句

if 条件:
	语句
elif 条件: # 当if不成立时,进而判断elif成不成立。elif可以有0个或多个。
	语句
else: # 当上面的if/elif不成立时,进入else语句
	语句

以小玉家的电费为例:

# coding=gbk
dianliang = int(input()) # input()读入的是字符串str,需要用int()来转换成整数类型

if dianliang <= 150:
    dianfei = dianliang * 0.4463
elif dianliang <= 400: # elif 表示 上一个if不成立 并且这一个if成立
    # 也就是说 dianliang > 150 并且 dianliang <= 400
    # 能走到这里,就表示dianliang > 150
    dianfei = 150*0.4463 + (dianliang-150)*0.4663
else: # 上一个if 或者elif不成立 才进入else
    # 就是 不满足dianliang<=400 也就是dianliang>400
    dianfei = 150*0.4463 + 250*0.4663 + (dianliang-400) * 0.5663

print("%.1f" % dianfei)

二、列表

0 列表是什么

1 列表的创建

a = [1,2,3]
b = [1, 3.14, “niubi”, [3,4,5] ]
中括号表示列表,元素之间用逗号隔开
列表可以包含多种类型
c = [ ] 创建一个空的列表

2 运算符(下标 + * in)

  1. 元素调用——下标运算符
    a[0]表示a的第一个元素,a[3]表示a的第四个元素。注意:列表下标从0开始
  2. 列表+列表 拼接列表
a=[1,2,3,4,5]
b=[1,2,3,10,20]
c=a+b
c -> [1, 2, 3, 4, 5, 1, 2, 3, 10, 20]
  1. 列表*正整数 拼接多遍
a*3 -> [1,2,3,4,5,1,2,3,4,5,1,2,3,4,5]
  1. in 和 not in
    元素 in 列表 —— 判断元素是否在列表里面,在里面,返回True
    元素 not in 列表 —— 判断元素是否不在列表里面
a=[1,2,3,4,5,[6,7]]
3 in a -> True
8 in a -> False
10 not in a -> True
5 not in a -> False
6 in a -> False

3 列表添加元素的方法

(1)L.append(x):从尾部添加元素x

a=[1,2,3,4,5]
a.append(6)
a -> [1,2,3,4,5,6]

(2)L.insert(index,x): 在index位置之前插入元素x

a=[1,2,3,4,5]
a.insert(3,"hello")
a.insert(0,3.14)
a -> [3.14, 1, 2, 3, 'hello', 4, 5]
a.insert(10000,666) # 如果index超过了列表的大小,则会加到末尾
a -> [3.14, 1, 2, 3, 'hello', 4, 5, 666]

(3)L.extend(b): 把列表b拼接到L后面

a=[1,2,3,4,5]
b=["niubi","dalao"]
a.extend(b) # 等价于 a = a + b
a.extend([6,7])
a -> [1,2,3,4,5,"niubi","dalao",6,7] # 可以用于在尾部添加多个元素 

4 列表删除元素

列表跟传统语言的数组不同的地方:
列表可以动态地增加和减少元素,可以包含多种类型的对象

(1) L.remove(x) : 按值删除——删除从左往右第一个x

a=[1,2,3,4,5,3,4,4,4,4,4]
a.remove(3)
a -> a=[1,2,4,5,3,4,4,4,4,4]

如果要删除所有的4

a=[1,2,3,4,5,3,4,4,4,4,4]
while 4 in a:
	a.remove(4)

(2) L.pop(index):按索引删除,并返回被删除的值,默认弹出最后的值

a=[1,2,3,4,5,"niubi",[2,3]]
x = a.pop(3)  # x = 4

(3)del语句 (delete)

函数 print() input()
方法 在.后面的 对象.方法名() L.append(x)
语句/关键字 if

5 其他函数和方法

(1)max()、min() 函数

max函数用于求最大值,min函数用于求最小值。

如果是数值组成的列表,则返回最大、最小的数值。

s = [8.88, 5, 3.14, 666, 520, 1314]
max(s) -> 1314
min(s) -> 3.14
max([-7,-6,-5]) -> -5

max也可以对若干个数进行排序,比如

max(3,1,2,4,5) -> 5
max(“apple”,“appear”) -> “appear”

如果是字符串组成的列表、列表组成的列表,则返回字典序最大、最小的对象。
字典序举例:app < apple < appear < bear

max(["c","c++","python","matlab","java","peal","php","javascript"]) -> "python"
max([[1,2],[2,3],[3,0]]) -> [3,0]  # 不建议写这种代码

混合类型会报错!

(2)L.sort()方法:排序

如果都是数值型,调用sort方法会从小到大排序。
设置参数reverse=True,会从大到小排序。

s = [8.88, 5, 3.14, 666, 520, 1314]
s.sort()
print(s) -> [3.14, 5, 8.88, 520, 666, 1314]

s.sort(reverse=True)  # 修改reverse参数
print(s) -> [1314, 666, 520, 8.88, 5, 3.14]

# 从大到小排序也可以
s.sort()
s.reverse()

如果都是字符串类型,则会按字典序从小到大排序。

languages = ["c","c++","python","matlab","java","peal","php","javascript"]
languages.sort()
print(languages) -> ['c', 'c++', 'java', 'javascript', 'matlab', 'peal', 'php', 'python']

(3)L.reverse()方法 :将列表反转

(4)L.count(x) 方法:数一数有几个x

6 列表切片——获取一个子列表

a = [5,4,3,2,1]
a[2] -> 3  # 获取的是单个元素
a[2:4] -> [3,2]  # 获取[2,4) 即[2,3]范围内的子列表
a[1:5] -> [4,3,2,1]  # 获取[1,5) 即[1,4]

a[x:y] 获取的是a下标在[x,y)范围内的一个子列表

也可以省略一个或两个范围

a[2:] #a[2]以及a[2]之后的所有元素的子列表,相当于[2,+无穷)
a[:3]  #a[2]及a[2]之前的所有元素的子列表,相当于[0,3),也就是[0,2]范围内的元素
a[:]  #a本身 

负数下标a[-N]表示“倒数第N个元素”,是倒着从-1开始的
a[-N]就相当于a[len(a)-N]
所以负数下标也可以用来切片

7 列表复制

三、for和range()

  1. for 变量 in 列表:
    循环体
    每次循环,变量被赋值为列表中的一个元素
s = 0
a = [3,4,5,1,2]
for i in a:
	print(i)  # 第一次循环i=3,第二次循环i=4……共循环5次
	s += a # 循环体用缩进来表示

2. range() 函数 用于生成一个数值列表

range(2,8) : 返回[2,3,4,5,6,7]的range对象,也就是[2,8) 之间的整数的列表
如果想获得 [2,8)之间的列表
需要用list()来转换

例如

b = list(range(2,8))
b -> [2,3,4,5,6,7]

range的第一种形式:

range(start, stop, step=1) : start是起始位置,stop是结束位置,step是步长(每次增加的数量)默认为1
三个参数都只能是整数
range(2,8,2) 获得了[2,4,6]的一个range对象
list(range(2,8,2)) -> [2,4,6] (列表)
list(range(-100,100,5)) -> [-100,-95,…,95]
list(range(10,-10,-1)) -> [10,9,8,…,-8,-9]

range的第二种形式

range(10) -> [0,1,2,3,…,9]的一个range
range(x) ->[0,x) 的一个range,相当于range(0,x)
只写一个数,相当于规定了stop,并且start=0

也就是说,
range(1,10) 两个参数,相当于start=1,end=10,step=1, [1,2,3,…9]
range(2,101,2) 三个参数,相当于start=2,end=101,step=2 [2,4,6,…100]
range(10) 一个参数,相当于start=0,end=10,step=1 [0,1,2,…9]

3. for & range

for i in range(1,101):

四、输入输出-ex

之前一节的笔记提到:
s = input() 读入一行,s是字符串类型
a = int(input()) 读入一行,然后转换成int型
b = float(input()) 读入一行,然后转换成float型

如果是空格隔开的2个数,比如 3 4
可以用
a,b = input().split() 先读入一个字符串,然后以空格隔开,分别存到a,b中

s.split() 是字符串的一个方法,把字符串以空格隔开,生成一个列表,每个元素是字符串被空格隔开的一部分,并且每个元素都是字符串(str)类型

“2 3 4 666 888”.split() -> [‘2’, ‘3’, ‘4’, ‘666’, ‘888’]

例题1:P5726 打分

n = int(input())  # n代表评委的个数

# fen = input().split()   # fen是一个列表,每一个元素是字符型的分数值 例如['9', '5', '6', '8', '9']
# # 但我们想要的是整数型元素构成的的列表 例如[9, 5, 6, 8, 9]
# # 方法1:
# fen_int = []
# for i in fen:
#     fen_int.append(int(i))

# # 方法2:
fen = list(map(int, input().split()))
# input()读入一行字符串 "9 5 6 8 9"
# 用split()方法 按照空格进行分割,每一个部分变为一个元素,存进列表,类型为字符型 ['9', '5', '6', '8', '9']
# map:把input().split()获得的“字符串组成的列表”映射为整数,也就是每个元素都化成整数 map([9, 5, 6, 8, 9])
# 再用list()强制转换为列表 [9, 5, 6, 8, 9]

s = sum(fen) - max(fen) - min(fen)  # s存的是去掉一个最高和最低分,所有分数的和
average = s / (n-2)  # 只需要求n-2个分数的平均值
print("%.2f" % average)  # 保留两位小数进行输出

例题2:P1427 小鱼的数字游戏

a = input().split()
# 输入“3 65 23 5 34 1 30 0”
# a会变成一个列表:['3', '65', '23', '5', '34', '1', '30', '0']

# 第一种方法
a.reverse()
a.remove('0')  # a.remove('0')会删除列表中第一个'0'
# 也可以用a.pop(0)表示删除a[0],因为此时知道删除的是第几位
for i in a:  # 对a进行循环 第一次i=a[0],第二次i=a[2]... 每次i 等于a中的一个元素
    print(i, end=' ')  # 因为print默认会换行,题目要求用空格隔开,所以修改end参数

# # 第二种方法
# length = len(a)
# for i in range(length-2, -1, -1):  # [length-2, -1) 每次-1 也就是[length-2,0] i分别是[length-2,length-3,...,1,0]
#     print(a[i], end=' ')   # i 实际上循环的是元素在列表中的位置,也就是下标

最后

以上就是阳光流沙为你收集整理的Python入门到入土(2)Python从入门到入土(2)的全部内容,希望文章能够帮你解决Python入门到入土(2)Python从入门到入土(2)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(63)

评论列表共有 0 条评论

立即
投稿
返回
顶部