欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

第一节课-checkpoint

程序员文章站 2024-02-10 09:28:40
...
# 苹果的花费
print(5*2)

# 葡萄的花费
print(15*1.5)

# 总花费
print(5*2 + 15*1.5)
10
22.5
32.5
apple_price = 5
apple_weight = 2
apple_cost = apple_price * apple_weight

grape_price = 15
grape_weight = 1.5
grape_cost = grape_price * grape_weight

total_cost = apple_cost + grape_cost

print(total_cost)
32.5

增强的格式化字符串函数 format

"苹果的花费为:{};葡萄的花费为:{};总花费:{}".format(apple_cost,grape_cost,total_cost)
'苹果的花费为:10;葡萄的花费为:22.5;总花费:32.5'

变量:代表某个值的名称

语法糖

a = 10
b = 20

a,b = b,a
print("a is {},b is {}".format(a,b))
a is 20,b is 10

命名规范

1.标识符的第一个字符必须是字母表中的字母(大写或小写)或者一个下划线

2.标识符名称的其他部分可以由字母(大写或小写)、下划线(‘_’)或数字(0-9)组成

3.标识符名称是对大小写敏感的

# 错误:首字符为数字
3thidnf = 10

# 字母中间有空格,为非法字符
my name = 100

# - 是变量命名中的非法字符
my-name = 10
  File "<ipython-input-11-277908747ca8>", line 2
    3thidnf = 10
          ^
SyntaxError: invalid syntax
round(100/3,3)
33.333

代码规范建议

  • 1.不要使用单字符
  • 2.变量名能清晰表达变量的意思
  • 3.合理使用字母中间下划线

变量类型

1、字符串 str

2、数字 int float complex…

3、列表 list

4、元组 tuple

5、字典 dict

数值类型

number = 10
number =number + 10
number += 10 # 增值操作符
number -= 10
number *= 10
number /= 10
import math
# 乘方、开方
math.pow(3,10) # 浮点类型
59049.0
# 推荐使用
3 ** 10 # 整数类型 
59049
math.floor(3.1415926)  # 向下取整
3
math.ceil(3.1415926)  # 向上取整
4
# 度的转换
math.radians(180)  # Π的值,利用180°圆得到
3.141592653589793
#  取一组数的最小值
min(20, 30, 52, 569, 7423, 1)
1
#  取一组数的最大值
max(20, 30, 52, 569, 7423, 1)
7423
#  取一组数的和
sum([20, 30, 52, 569, 7423, 1])  # 用的列表的,需要将数组用大括号括起来
8095
divmod(10, 3)  # 除法取商及余数
(3, 1)

bool型

True,False
(True, False)
True == 1
True
False == 0
True
True + 10  # 不建议这样进行运算,无意义,有一个特例,后面会讲到
11
100 > 10
True

bool类型,运算:与运算、或运算、非运算

# 与运算,同为真则为真
True and True
True
# 或运算,有一个为真则为真
True or False
True
# 非运算,取反
not False
True
操作符 解释
< 小于
<= 小于等于
> 大于
>= 大于等于
== 等于
!= 不等于
is 是相同对象

字符串

# 字符串可以用双引号,也可以用单引号。通过单、双引号的恰当使用,可以避免不需要的字符转义(escape),也就是说可以避免使用反斜杠(转义字符)
line = "hello world"
line = "hello world\""
line = 'hello \'world'
# 字符串的加法操作
line_1 = "ni hao,"
line_2 = 'xiaojiejie.'
line_1 + line_2
'ni hao,xiaojiejie.'
# 字符串的乘法操作
line = 'nihao '
line * 3
'nihao nihao nihao '
# 字符串是不可变类型的变量
line
'nihao '
line = 'buhao '
line
'buhao '
# 返回字符串的长度
len(line)  # len为长度英文长度的简写
6
line ='nihao '
# id函数,返回一个身份识别符,可以理解为一个变量的内存地址
id(line)
2071741336048
line ='buhao '
id(line)
2071741348016

markdown中表格的写法

序号 名称 年龄
1 wang 19
2 xu 20

上述表格,如果左对齐,在第二行的横杠左边加冒号,右对齐在右边加,中间对齐,两边都加

切片

line = 'huan ying da jia lai wan men shang ke'

取前十个字符

line[0:10]  # 从第0个字符开始到第10个字符
'huan ying '
line[0:20:2]  # 从第0个字符到第20个字符,每两个取一个字符
'ha igd i a'

取后十个字符

line[-10:]
'n shang ke'

翻转字符

line[::-1]
'ek gnahs nem new ial aij ad gniy nauh'

单字符

单字符是不可以进行赋值的

line[-1] = 'E'
---------------------------------------------------------------------------

TypeError                                 Traceback (most recent call last)

<ipython-input-24-ea6925c27361> in <module>
----> 1 line[-1] = 'E'


TypeError: 'str' object does not support item assignment
line.capitalize()  # 不管输出的字符串是否全为大写,该函数都会输出首字母为大写。
'Huan ying da jia lai wen men shang ke'
line = "ASDFGHJKLZXCVBBN"
line.capitalize()
'Asdfghjklzxcvbbn'
# 居中显示
line.center(20, '%')  # 该函数会根据给出的数值以后面引号中的字符填充两端,将字符串居中显示
'%%ASDFGHJKLZXCVBBN%%'
# 计数
line.count('A')  # 该函数会返回字符在字符串中出现了多少次
1
line.endswith('N')  # 该函数返回字符串最后字符是否正确
True
line.startswith('A')  # 该函数返回字符串开头字符是否正确
True
line.find('A')  # 该函数返回字符在字符串中是第几个(代码中以0开始),不存在则返回0值
                # 可以在字符后面加入数字来告诉函数,从该数字之后的位置找字符
0
# 当字符不存在时,报错
line.index('A')  # 该函数返回字符在字符串中是第几个(代码中以0开始),不存在则报错
0
line = 'AsDFCddjkkjkDjjJKkkkjhh'
line.upper()  # 该函数将字符串中的字符以全部大写输出
'ASDFCDDJKKJKDJJJKKKKJHH'
line.lower()  # 该函数将字符串中的字符以全部小写输出
'asdfcddjkkjkdjjjkkkkjhh'
line.istitle()  # 该函数判断字符串是否为标题,只有第一个字母是大写其他小写时才会返回True值
False
line.isupper()  # 该函数判断字符串是否都为大写,是返回True值,不是返回False值
False
line.islower()  # 该函数判断字符串是否都为小写,是返回True值,不是返回False值
False
line = '      lsenhh   \n\t'
line.strip()  # 该函数返回去除空格转义等字符侯,输出字符串中有意义的字符,只是去除两端的,中间若有无法去除
'lsenhh'
line.rstrip()  # 该函数去除右边
'      lsenhh'
line.lstrip()  # 该函数去除左边
'lsenhh   \n\t'
line = 'AsDFCddjkkjkDjjJKkkkjhh'
line.swapcase()  # 该函数将字符串中字母大小写转换,即字符串中大写转换为小写,小写转换为大写
'aSdfcDDJKKJKdJJjkKKKJHH'

【重点】上面我们用到的所有字符串函数,都是为我们生成了一个新的字符串,原有的字符串是不变的

line = "ni hao"
id(line)
2421864447088
new_line = line.upper()
id(line),id(new_line)
(2421864447088, 2421874825776)

列表

# 空列表
varibals = []
varibals = list()

可以容纳任意类型的对象,任意数量的对象【重点】列表是可变类型,即列表长度可变,列表内字符可变

varibals = [1, 2, 3 , 'ni gao', 'hello,python',[] ,[100, 100]]
varibals = []
varibals.append(1)
varibals.append(2)
varibals.append('ni hao')
varibals
[1, 2, 'ni hao']
varibals[0]  # 输出第0个字符
1
varibals[0] = 10  # 将第0个字符赋值为10
varibals  # 输出varibals
[10, 2, 'ni hao']

python是一种动态类型的语言,一个变量是什么类型,要看程序在运行过程中变量所代表的值时什么

var = 10
type(var)
var = 'str'
type(var)
str

切片

varibals[-2:]  # 取后两个字符
[2, 'ni hao']
varibals + [1, 23]  # 拼接字符
[10, 2, 'ni hao', 1, 23]
varibals * 4  # 运算字符
[10, 2, 'ni hao', 10, 2, 'ni hao', 10, 2, 'ni hao', 10, 2, 'ni hao']

序列 列表是一种容器型的序列;字符串是一种扁平型的序列

len(varibals)  # 查看长度
3
# 没有返回值,二十修改了列表对象本身
# 增加函数
varibals.append(1)  # 该函数是将字符增加到原有的字符列表中
varibals
[10, 2, 'ni hao', 1, 1]
# 清空函数
varibals.clear()

该函数和直接赋值的区别就是,该函数修改值后不会影响原列表 ↓

varibals = [1,3,52,66,24,33]
new_varibals = varibals.copy()
new_varibals[0] = 9999
new_varibals
[9999, 3, 52, 66, 24, 33]
varibals
[1, 3, 52, 66, 24, 33]

列表中还包含列表的,则不会改变原列表 ↓ 该复制为浅复制,只能复制列表中的不能复制列表中列表的字符

varibals = [1,3,52,66,24,33,[1,2]]
new_varibals = varibals.copy()
new_varibals[-1][0] = 9999
new_varibals
[1, 3, 52, 66, 24, 33, [9999, 2]]
varibals
[1, 3, 52, 66, 24, 33, [9999, 2]]
id(new_varibals[-1]),id(varibals[-1])
(2421875781000, 2421875781000)
# 拼接函数
a = [1,2]
b = [3,4]
a + b
[1, 2, 3, 4]
a.extend(b)  # 该函数不会返回值
a
[1, 2, 3, 4]
a
[1, 2, 3, 4]
a.insert(0, 100)  # 该函数为在某个位置插入某个字符
a
[100, 1, 2, 3, 4]
a.pop()  # 该函数弹出列表的最后一个字符,并输出
         # 也可指定弹出列表的第几个字符,即在括号中输入即可
3
a
[100, 1]
a.remove(100)  # 该函数移除列表中的某个字符,如果该字符不存在即报错
a
[1]
a = [1,6,3,8,66,54,36,2,3,0]
a
[1, 6, 3, 8, 66, 54, 36, 2, 3, 0]
a.sort()  # 该函数为列表内的字符排序,从小到大排序
a
[0, 1, 2, 3, 3, 6, 8, 36, 54, 66]
a.sort(reverse=True)  # 该函数为列表内的字符排序,反转排序,从大到小
a
[66, 54, 36, 8, 6, 3, 3, 2, 1, 0]
2 in a  # in 表示该字符是否存在该列表中,如果存在返回True,不存在返回False
True

元组(tuple),不可变类型的

var = tuple()  # 空元组
var = ()
type(var)
tuple
var = (1,2,3,4,5,6, [23,34,43])
var.count(1)  # 查看列表中某个字符出现了几次
1
var.index(1)  # 该函数返回列表中字符所在的位置为第几个字符
0
元组变量 字符串变量 列表变量
t_1 = [1,2,3,4,5] s_1 = ‘ni hao’ l_1 = [1,2,3,4,5]
t_2 = [5,6,7,8,9] s_2 = ‘how are you’ l_2 = [6,7,8,9,10]
函数 元组 实例 字符串 实例 列表 实例
+ t_1 + t_2 s_1 + s_2 l_1 + l_2
* t_1 * t_2 s_1 * s_2 l_1 * l_2
> < t_1 > t_2 s_1 > s_2 l_1 > l_2
[index] t_1[0] s_1[0] l_1[0]
[::] t_1[::] s_1[0:10:1] l_1[0:10:2]
len len(t_1) len(s_1) len(l_1)
bool bool(t_1) bool(s_1) bool(l_1)
count t_1.count(1) s_1.count(‘n’) l_1.count(1)
intex t_1.intex(3) s_1.intex(‘n’) l_1.intex(1)
replace s_1.replace(‘n’, ‘N’)
sort l_1.sort()
recerse l_1.recerse()
appent l_1.appent(100)
extend l_1.extend(1_2)
remove l_1.remove(1)
pop l_1.pop()

字典类型

var = {}  # 空字典
var = dict()
type(var)
dict
var= {
    '中':100,
    '左':200
}
var['中']
100
words = ['中', '左']
location = [100, 200]

location[words.index('中')]
100

拉锁函数

zip(words, location)
<zip at 0x233e2f9cb08>
new_var = list(zip(words, location))
new_var
[('中', 100), ('左', 200)]
dict(new_var)
{'中': 100, '左': 200}
list(zip([1,2,3],[4,5,6],[7,8,9]))
[(1, 4, 7), (2, 5, 8), (3, 6, 9)]
students = ['wang', 'li', 'sun', 'zhao', 'qian']
dict.fromkeys(students, 10)   # 该函数可以将原有的序列赋值上数值
{'wang': 10, 'li': 10, 'sun': 10, 'zhao': 10, 'qian': 10}

如何访问字典中的值

money = dict.fromkeys(students, 10)
money['wang']  # 调取字典中的某项数据,若无字符,则报错
10
money.get('wag', '100')  # get,如果序列中没有该项数据,则get返回空值,但它可以直接赋值
'100'
money.keys()  # 返回关键字
dict_keys(['wang', 'li', 'sun', 'zhao', 'qian'])
money.values()  # 返回值
dict_values([10, 10, 10, 10, 10])
money.items()  # 返回拉锁函数呈现的
dict_items([('wang', 10), ('li', 10), ('sun', 10), ('zhao', 10), ('qian', 10)])
# 删除操作
money.pop('wang')
10
money
{'li': 10, 'sun': 10, 'zhao': 10, 'qian': 10}
# 添加操作,直接赋值
money['wang'] = 100
money
{'li': 10, 'sun': 10, 'zhao': 10, 'qian': 10, 'wang': 100}
money.setdefault('haha', 1000)  # 该函数表示序列中有关键字即返回关键字的值,如没有则赋值并添加到序列中
1000
money
{'li': 10, 'sun': 10, 'zhao': 10, 'qian': 10, 'wang': 100, 'haha': 1000}