第一节课-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}
上一篇: ORA-01461错误解决
下一篇: todolist(day_04)