一次性注释的快捷键:ctrl + /
# 注释就是用来对代码进行说明
# 打印hello python(注释)
# 注释的快捷键:ctrl + /```
“”" 或者 ‘’’ ‘’’
注意点:python中双引号和单引号的作用是一样的所以在使用时,遇到一行双引号和单引号都存在的情况下要单独区分,最好混合使用。
"""
多行注释
第一行注释内容
第一行注释内容
第一行注释内容
"""
'''
多行注释2
第一行注释内容
第一行注释内容
第一行注释内容
'''
2.1注释使用场景
def func1(arg1,arg2):
"""
一句话总结函数
具体描述
:param arg1: (参数1)
:param arg2: (参数2)
:return: (返回值的具体描述)
:otherfunc:(其他关联函数)
"""
pass
def func2(arg1,arg2):
"""
计算平均值
:param arg1: int整数
:param arg2: int整数
:return: int整数
:otherfunc:(其他关联函数)
"""
pass
# print输出的时候,输出的内容会自动换行
print('我是打印1')
print('我是打印2')
结果:
# print输出的时候,通过end=''可以让下一个print输出的内容不换行
print('我是打印1',end='')
print('我是打印2')
结果:
#print的补充知识点
知识点:
1.python以.py结尾
2.执行程序: python mai.py
3.print是一个函数,用来打印输入
4.要打印的内容成为参数,参数一定要放在()里
5.字符串可以是单引号,双引号或者三引号
'''
print("""
|\__|/ _____ //--seak------ \\xx/
| xx\ /%%%%/// __ __ \\ \
\_xxx %%%% / / \ / \ |
/ /x%%%% ((0) ) ((0) ) |
/ #/|%%%% \__/ \__/ \__ ______-------
\#/ |%%%% @@ \/
_/%%%% |_____
________/|%%%% | -----___
----- |%%%% \___ __/
___/\%%%% / --________________//
__---- \%%%% ___/
/ \%%%% _/
\%%%% _/
\%%%% /
\%% |
|%% |
""")
print('你好,小海')
print('下海,你愿意跟我一起去异次元吗?')
print("-- -- -- -- --- -- --- -- -- -- - -- --")
#6变量,在内存中分配的一个小盒子,后面可以用变量名的名字来使用它里面的值
#7字符串可以通过+来拼接,可以把字符串和变量拼接在一起
#8变量名字小写,比较长的用下划线连接
name = '麦叔'
robot_name = '小麦'
print("你好," + name + ",我是"+ robot_name)
print("-- -- -- -- --- -- --- -- -- -- - -- --")
#format格式化
print("你好{}," "我是{}".format(name,robot_name))
print("-- -- -- -- --- -- --- -- -- -- - -- --")
#format的进化方法(语法糖衣)
print(f"你好,{name},我是{robot_name}")
结果
#转义字符
https://blog.csdn.net/c_first/article/details/89505548
1.常见的命令命名表示法(风格):
(1)、纯小写字母,每个单词之间用下划线隔开
max_num = 199999
(2)、大驼峰命名法:每个单词的第一个字母大写
MaxNum = 1999999
(3)、小驼峰命名法:第一单词开头字母小写,后面单词第一个字母大写
maxNum = 199999
总结:模块命,函数名,变量名都小写,多个单词相连用_连接
类名:首字母大写 常量:全部大写
python关键字:每个关键字都是有特殊的作用的。
关键字分类:
数据类型
不可变类型:数字,字符串,元组
可变数据类型,列表,字典,集合
int(整型)
float(浮点型)
bool(布尔型) 布尔型变量的值只有 真(true)和假(false)
complex(复数)
关键字:type 可以查看他是什么类型
#整数
number1 = 100
a = 20
res = type(a)
print(res)
#浮点数
b = 1.2
c = 222.2
res2 = type(b)
print(res2)
#布尔类型数据
t = True
f = False
res3 = type(f)
print(res3)
结果:
"""
+ :加
- :减
* :乘
/ :除
** :幂运算
% :取余
//:除法取整(取商)
"""
a = 20
b = 5
res = a / b
print(res)
print(2**4)
print(9//5)
(1) 赋值运算符: = += -= *= /= %=
aa = 22
aa = aa + 1 # 等同于 aa +=1
print(aa)
bb =22
bb -= 1 # 等同于 bb = b-1
print(bb)
结果:
比较的条件成立,返回的是True,条件不成立返回的是False
比较运算符:
== 表示等于
!= 表示不等于
a1 = 12
b1 = 12
print(a1 > b1)
print(111 == 111)
print("musen" == "xiaoming")
结果:
逻辑运算符:与 或 非
and: 真真为真(所有的条件都要成立,才会返回True,否则返回False)
or : 一真为真,假假为假(只要有一个以上的条件成立,就返回True,都不成立返回False)
not: 取反
print(10 < 8 or 9 > 10)
print(not 10 < 7)
结果:
运算符的优先级:用括号解决
print(10 > 8 and (11 > 19 or 11 < 19))
结果:
name = "seak"
age = '18'
print(name,type(name))
print(age,type(age))
结果:
# 空字符:字符串中没有任何内容
s1 = ""
print(s1,type(s1))
# 空白字符:字符串中有内容,内容是空格键(空白)
s2 = " "
print(s2,type(s2))
结果:
注:python中任何的数据类型都可以转换为bool值
1.字符串转换为bool类型
# python中任何的数据类型都可以转换为bool值
# 数据中有内容,转换成bool值之后为 :True
# 数据中没有有内容,转换成bool值之后为 :False
s1 = ""
s2 = " "
print(bool(s1))
print(bool(s2))
结果:
2.数值与字符串的转换
number = 999
print(type(number),number)
# 数值类型转换为字符串
s3 = str(number)
print(type(s3),s3)
结果:
3.字符串类型转换为数值
# 字符串类型转换为数值
s4 = "898"
n2 = int(s4)
print(n2,type(n2))
结果:
str1 = "python hello"
res = str1[-4]
print(res)
结果:
[起始位置:终止位置] :取头不取尾,从起始位置开始,到终止位置的前一个
起始位置:不写,默认从头开始
终止位置不写:默认到结束
[起始位置:终止位置:步长] :步长为多少,就是多少个取一个
str = 'Runoob'
print(str) # 输出字符串
print(str[0:-1]) # 输出第一个到倒数第二个的所有字符
print(str[0]) # 输出字符串第一个字符
print(str[2:5]) # 输出从第三个开始到第五个的字符
print(str[2:]) # 输出从第三个开始的后的所有字符
print(str * 2) # 输出字符串两次
print(str + "TEST") # 连接字符串
结果:
# 字符串拼接
desc1 = "我的名字叫musen"
desc2 = "今年年龄是18岁"
# 第一种: +
res3 = desc1 + ',' + desc2
print(res3)
# 第二种:join方法
"""
字符串X.join((字符1,字符2,字符3,字符4,字符5))
字符1 字符串X 字符2 字符串X 字符3 字符串X 字符4 字符串X 字符5
"""
res5 = ','.join((desc1,desc2,'python666'))
print(res5)
结果:
\n :换行符
\t :制表符(四个空格)
r : 关闭字符串的转义
\n :换行符
print('8888888\n999999999\n77777777')
结果:
\t :制表符(四个空格)
print('8\t9\t777')
结果:
r : 关闭字符串的转义
r1 = r"123\nbc"
r2 = "123\nbc"
print(r1)
print('*******************')
print(r2)
结果:
name = input("请输入姓名:")
age = input("请输入年龄:")
gender = input("请输入性别:")
print("*********************")
print("姓名:", name)
print("年龄:", age)
print("性别:", gender)
print("*********************")
结果:
字符串.方法名()
查找字符串片段在字符串中的下标位置,从前往后找,返回的是第一个被找到字符串片段(起始位置)
第一个参数是要查找的字符串片段,第二参数,是查找的起始点
s1 = "abcd234abcabcd234abc"
res1 = s1.find('c',1)
print(res1)
# 字符不存在返回 - 1
res2 = s1.find('s', 4)
print(res2)
结果:
#index方法:检测字符串中是否包含子字符串 str(按下标),不存在会抛异常
# index()方法语法:str.index(str, beg=0, end=len(string))
# 字符串, 开始位置, 结束位置
str1 = "this is string example"
str2 = "exam"
#str1中包含str2
print(str1.index(str2))
#str1中包含str2从第10个索引位置开始
print(str1.index(str2,10))
print("*"*20)
#str1不包含str2的字符串从第40个位置开始(会抛异常)
print(str1.index(str2,40))
结果:
# count方法:统计字符串片段,在字符串中出现的次数
s1 = "abcd234abcabcd234abc"
res1 = s1.count('abc')
print(res1)
结果:
# replace方法:替换指定的字符串片段
# 参数1:要替换的字符串片段
# 参数2:替换之后的字符串片段
# 参数3:可以用来指定替换的次数(默认是替换所有的)
s1 = "abcd234abcabcd234abc"
res2 = s1.replace('abc', 'ABC',2)
print(res2)
结果:
# split方法:指定分割点对字符串进行分割
# 参数1:分割点
# 参数2:分割的次数(默认找到所有的分割点进行分割)
s2 = "111ab22ab333ab444"
# ["111","b222","b333","b444"]
# ['111', 'b222', 'b333', 'b444']
res4 = s2.split("2",2)
print(res4)
结果:
### upper方法:将小写字母转换为大写
s3 = "abc123ABC"
res6 = s3.upper()
print(res6)
结果:
#lower方法:将大写字母转换为小写
s3 = "abc123ABC"
res7 = s3.lower()
print(res7)
结果:
(1)按位置一 一对应进行填充
# 有几个{},format中就可以传入几个数据,按位置一一对应进行填充
str1 = "今收到{},交了学费{}元,开此收据为凭证"
print(str1.format('小明',500))
结果:
(2)通过下标位置指定填充内容的数据
# 在{}中通过下标位置指定填充内容的数据(扩展)
str1 = "今收到{0},交了学费{0}元,开此收据为凭证"
print(str1.format('小明',10))
结果:
(3)保留特点小数位数按4舍5入方式{:.2f}
price = float(input("请输入价格:"))
#保留小数点后面的位数
print("今天xx股票的是{:.2f}元".format(price))
结果:
(4)将数字按百分比显示
# 将小数按百分比的形式显示
print('百分比为{:.2%}'.format(0.12))
结果:
# 传统的格式化输出方法:%
# %s :为字符占位(任意类型都可以)
# %d :为数值类型占位
# %f :为浮点数占位
s2 = "abcd1224:%s---%s---%s"%('A','B','C')
print(s2)
s3 = "我的名字%s,年龄%f,性别%s" % ('小明', 18, "男")
print(s3)
name = "小明"
age = 18
结果:
# F表达式格式化输出
name = "小明"
age = 18
s3 = F"我的名字{name},年龄{age}"
print(s3)
结果:
1.查找和插入的时间随着元素的增加而增加
2.占用空间小,浪费内存很少
3.列表是用时间换取空间的一种方式
dict和list比较,dict有以下几个特点:
1.查找和插入的速度极快,不会随着key的增加而增加
2.需要占用大量的内存,内存浪费多
3.dict是用空间来换取时间的一种方法
tuple与list的区别
1.元组比列表操作速度快
2.对数据“写保护“
3.可用于字符串格式化中
4.可作为字典的key
列表:列表是一种可变的数据类型
列表的定义:[]
# 列表可以通过下标索引取值
li = [19, 1.3, "python"]
print(li[2])
结果:
# 列表的切片操作
li1 = [11, 22, 33, 44, 55]
print(li1[::2])
结果:
(1)增加元素的方法:append,insert extend
li2 = [1, 2, 3]
#append:往列表结尾处添加一个元素(追加)
li2.append("11")
#insert:通过下标指定位置,往列表中加入元素
li2.insert(1, 999)
#extend:一次性加入多个元素(放在列表的结尾处)
li2.extend([11, 22, 33])
print(li2)
结果:
(2)删除元素的方法:remove pop clear
# 删除元素的方法: remove pop clear
li3 = [1, 2, 3, 11, 22, 33, 1, 2, 3]
# remove:删除指定的元素(删除找到的第一个)
li3.remove(1)
print(li3)
#pop方法:指定下标位置进行删除(没有指定下标位置,默认删除的是最后一个)
li3.pop(3)
print(li3)
#clear:清空列表
li3.clear()
print(li3)
结果:
(3)查找元素的方法:index
注:字符串中可用find和index
li3 = [1, 2, 3, 11, 22, 33, 1, 2, 3]
# index:查找指定元素的下标,找到了返回下标值,没有找到报错
res = li3.index(11)
print(res)
结果:
(4)修改列表元素的方法:通过下标去指定元素,进行重新赋值
# 修改列表中某个元素的值
# 通过下标去指定元素,进行重新赋值
li4 = ["aa", "bb", 11, 22, 33]
#将bb改为999
li4[1] = 999
print(li4)
结果:
# count:统计列表中某个元素出现的次数
li3 = [1, 2, 3, 11, 22, 33, 1, 2, 3]
#统计1出现的次数
res2 = li3.count(1)
print(res2)
结果:
li5 = [111, 22, 31, 41, 5, 6, 888, 8, 34, 8, 12, 7, 33]
#默认从小到大
li5.sort()
print(li5)
#从大到小
#通过参数(reverse=True)可以指定从大到小,降序排序
li5.sort(reverse=True)
print(li5)
结果:
li5 = [111, 22, 31, 41, 5, 6, 888, 8, 34, 8, 12, 7, 33]
li5.reverse()
print(li5)
结果:
li5 = [111, 22, 31, 41, 5, 6, 888, 8, 34, 8, 12, 7, 33]
li6 = li5.copy()
print(li6)
结果: