Python笔记

-注释-

# 注释:就是对代码的说明,提高代码的可读性,让别人快速了解代码的功能,在代码运行过程 中不起作用的
 # 单行注释以#开头    快捷键:ctrl+/
'''
三对引号,
多行注释
'''
a=10  #把右边的值给左边的变量
c=6
print(a+c)  #把括号运行结果打印出来

-编程与命名规范-

'''
python编码规范
1.每句代码末尾不需要分号,每行只能写一名代码
2.如果代码出现小括号,代表优先处理
3.python通过缩进控制代码块
4.编写代码时加入一些适当的注释
标识符命名规范(变量名,函数名,类名,模块名等)
1.标识符由字母,数字,下划线组成,开头不能是数字
2.不能使用Python自带的关键字(and  in if for while else等)
3.区分大小写
4.尽量做到见名识意
'''
# 查看Python自带的关键字
from keyword import kwlist  #从模块导入关键字列表
print(kwlist)  #['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
print(len(kwlist))  #求kwlist返回列表长度    35
age=20   #尽量见名识意
AGE=30
print(age)

-数据类型-

# 变量:在程序运行中,值可以发生变化的
# 常量:在程序运行中,值不发生变化的
a=10  #声明一个变量a,并且把右边的10给它
a,b,c=1,2,3  #一行代码给多个变量赋值
print(a,b,c)  #输出三个变量的值
# PYthon中的数据类型
# (1)数字  (int 整数  float  浮点数   bool布尔值[true false])
num1=10
num2=12.3
num3=False
# type() 输出变量的数据类型
print(type(num1))  #<class 'int'>
print(type(num2))  #<class 'float'>
print(type(num3))  #<class 'bool'>
# (2)字符类型  str,一定要用引号引起来(单引号,双引号)
name='张三'
addr="深圳宝安"
print(type(name))   #<class 'str'>
# (3)列表  list:是一个容器,里面可以放多个元素,列表中的元素是按顺序存储,可以通过下标(索引)来获取,下标从0开始
list1=[11,32,'a',55]
print(type(list1))   #<class 'list'>
print(list1[2])   #获取列表中的下标为2的元素
list1[2]=8     #把列表下标为2的元素修改为8
print(list1)
# (4)元组  tuple  :本质上就是一个只读的列表
tuple1=(25,'a',88,'c')
print(type(tuple1))   #<class 'tuple'>
print(tuple1[2])  #88  元组可以通过下标获取对应元素
# tuple1[1]=99   #报错,元组元素不能修改
# (5)字典  dict :键值对的容器,键不能重复,如果重复就会被覆盖
dict1={'name':'小明','age':20,'sal':3000}
print(type(dict1))   #<class 'dict'>
dict2={'name':'小明','age':20,'name':'丽丽'}
print(dict2)   #{'name': '丽丽', 'age': 20}
# (6)集合 set :本质上就是只有键的字典,自动去重功能
set1={'a',5,8,'c',5}
print(type(set1))   #<class 'set'>
print(set1)   #{8, 'c', 'a', 5}
# 数据类型的转换
# (1)转数字    int()    float()
a='123'
print(int(a)+100)  #223    int(a)代表把a的数据类型转换成整数,再与100相加
c='1.23'
print(float(c)+10)  #11.23
# (2)转字符串  str()
a=100
print('Hello'+str(a))   #Hello100    两个字符串相加,相当于拼接在一起
# (3)转列表  list()
tuple1=(1,2,3)
print(tuple1)
list1=list(tuple1)
print(list1)   #[1, 2, 3]
# (4)转元组 tuple()
list1=[55,545,8,8]
tuple1=tuple(list1)
print(tuple1)  #(55, 545, 8, 8)
# (5)转集合  set()
list1=[1,2,3,4]
set1=set(list1)
print(set1)   #{1, 2, 3, 4}
print(type(set1))   #<class 'set'>
# 把 a=(1,2,3,5) 中的3修改成6

-输入与输出-

# input  输入函数,接收键盘上输入的内容,从键盘上输入的所有内容都是字符串类型
# 从键盘上输入两个数,求他们的和
# num1=int(input("请输入第1个数:"))  #把从键盘上接收到的字符串转换成数字
num2=int(input("请输入第2个数:"))
# print('他们的和:',num1+num2)
# print 输出函数,把内容输出到屏幕上
print('Helloworld!')
name='张三'
print(name)  #输出name的值
# print具有换行的作用
print('a')
print('b')
# print() 输出一行空行
print('a')
print()  #输出一行空行
print('b')
# 如果想输出的内容不换行,需要用到 end=""
print('a',end='')
print('b')
# 查看函数的帮助信息:Ctrl+点击函数名

-运算符-

# 运算符:算术运算符   关系运算符   赋值运算符   逻辑运算符
# 1.算术运算符   +   -   *   /   %(求余)   //(整除)     **(求幂)
print(3+6)   #9
print(9/6)  #1.5
print(11%6)  #5
print(11//5)  #2
print(3**4)   #81
# 求出数字中的每一行  a=3456
a=3456
num1=a//1000  #3
num2=a%1000//100   #4
num3=a%100//10   #5
num4=a%10       #6
# 2.赋值运算符  =  将右边的值赋值给左边变量
num1=4+6
print(num1)  #10
#对变量自身做修改   +=  -=  /=   %=
num2=10
num2+=1   #相当于num2=num2+1
print(num2)   #11
num3=20
num3-=2   #num3=num3-2
print(num3)  #18
num4=30
num4/=3   #num4=num4/3
print(num4)   #10.0
# 3.关系运算符(比较运算符),返回布尔值   >   <  <=   ==(等于)  != (不等于)
print(3<4)  #表达式为真,返回True
print(5>8)  #表达式为假,返回False
print(3==3)  #True
print(3!=3)  #False
print('a'!='c')  #True
print(3*5>2+7)   #True  先算算术运行符,再进行比较
# 4.逻辑运算符   and 与    or 或    not 非
print(True and True)   #True
print(True and False)  #False
print(False and True)  #False
print(False and False) #False
# 结论:and 相当于相乘
print(True or True)   #True
print(True or False)  #True
print(False or True)  #True
print(False or False) #False
# 结论:or 相当于相加
# not 取反
print(not(False))  #True
print(not(True))   #False
# 运算符的优先级:
"""
()
**
* / //  %
== >  <=   !=
not
and
or
赋值运算符
"""
num1=4+3 > 5 and (3+4)*2 <5 or 2**3<6
#     7  > 5 and  14 <  5 or  8 < 6
#      True  and  False or  False
#      False or False
#      False
print(num1)   #False

-in的操作-

# in  判断元素是否在后面的容器中,如果在返回True,否则返回False
# in 是否在容器中     not in  是否不在容器中

print(3 in [2,5,6,4,9,3,4])   #3元素在不在列表中   True
print(4 not in (5,8,7,6))    #3不在元组中     True
print('a' in {'c':5,'a':6,'f':10})   #True
print(3 in {6,8,9,7,1})  #判断集合  False
print('a' in 'abcde')   #判断字符串中是否有a     True
# print(1 in 1234)   #报错,数字不可以判断

-判断if-

# 在编程中,存在三种代码结构
# 1.顺序结构     代码自上面下,一句一句执行,默认采用
# 2.选择结构     根据不同的条件,选择不同的代码执行  if
# 3.循环结构     根据条件,决定是否重复执行某一段代码   for   while

# 选择结构
'''
1.单分支
if 表达式1:   如果表达式1为真,执行语句1,为假就不执行语句1
    语句1
'''
if 4>3:   #为真,执行里面语句
    print('test')    #test
if 'a'=='c':    #为假,不会输出里面语句
    print('abcd')

# 2.双分支   二选一
'''
if 表达式1:
    语句1
else:
    语句2
如果表达式1为真,执行语句1,不执行语句2,  当表达式1为假时,才会执行语句2
'''
# day=int(input('输入一个1-7的数字:'))
# if 0<day<=5:
#     print('上课')
# else:
#     print('休息')

# 3.多分支  多选一
'''
if 表达式1:
    语句1
elif 表达式2:
    语句2
elif 表过式3:
    语句3
else:
    语句4
    
先判断表达式1为真,执行语句1,其它不会再执行;表达式1为假,再判断表达式2,表达式2为真,执行语句2,为假判断表达式3,为真执行语句3,为假执行语句4
'''
# 判断一个分数的等级  80-100优秀  70-79良好   60-69合格   《60差
# num1=int(input('请输入一个分数(0-100):'))
# if num1>=80:
#     print('优秀')
# elif num1>=70:
#     print('良好')
# elif num1>=60:
#     print('合格')
# else:
#     print('差')

# if嵌套:if里面又有if

# num1=int(input('请输入一个分数(0-100):'))
# if 0<=num1<=100:   #为真时,才会进行里面if的判断
#     if num1>=80:
#         print('优秀')
#     elif num1>=70:
#         print('良好')
#     elif num1>=60:
#         print('合格')
#     else:
#         print('差')
# else:
#     print('你的输入有误,请重新输入!')

# 选中代码,按Tab     整体缩进(右移)
# 选中代码,按shift+Tab   整体返缩进(左移)

if 0:   #0相当于表达式为假
    pirnt('abc')
if 1:  #为真
    print('e')
if 3:  #为真
    print('f')
if 'a': #为真
    print('h')
if True:  #为真
    print('i')
if None:  #None为空,为假
    print('w')
if False:  #为假
    print('n')

# 表示True: 非0字符   True
# 表示False:  0   False   None

# 判断一个数是奇数还是偶数
a=6
if a%2==0:   #判断余数是否为0
    print('偶数')
else:
    print('奇数')

a=5
if a%2:   #5%2  》 1   if 1
    print('奇数')
else:
    print('偶数')

-随机数-

import random   #导入自带的随机数模块
# 在1-100之间随机产生一个整数
num1=random.randint(1,100)
print(num1)

food=['吃肉','吃面','KFC','减肥','喝水']
a=random.sample(food,1)  #随机选择1个
print(a)

food=['A','B','C','D','E']
a=random.sample(food,3)  #随机选择3个
print(a)

-while循环结构-

# 循环结构:当条件为真时,重复执行某一段代码,直到条件条假才停止
# 打印10次Helloworld
i=1   #变量初始化
while i<=10:   #循环条件
    print('Helloworld')
    i+=1 #i=i+1    #自身加1

# 求1到10所有整数的和   1+2+3+4....10=?
a=1
sum1=0
while a<=10:
    sum1=sum1+a     #0+1=1
    a+=1            # 2
print(sum1)

# 单步调试
# 1.在代码对应行左则打上一个断点(while这行上)
# 2.右键选择‘调试’
# 3.按F8,看i的变化

# 求1到100之间偶数的和  2+4+6+8....100=?
# 第一种
i=1
sum1=0
while i<=100:
    if i%2==0:  #判断是不是偶数
        sum1=sum1+i
    i+=1
print(sum1)
# 第二种
i=2
sum1=0
while i<=100:
    sum1=sum1+i   #2  6....
    i+=2  #i=i+2  #4  6   8   10   12   14.....
print(sum1)

# while的嵌套
# 打印以下图形
# ***
# ***
# ***
# ***
i=1
while i<=4: #控制行数                        i=1                           2<=4
    j=1
    while j<=3:  #控制每行输出的*的数量      j=1   2<=3   3<=3   4<=3   j=1。。。。
        print('*',end="")                   #*    **     ***
        j+=1                                #2     3      4
    print()  #换行
    i+=1                                    #i=2

# *
# **
# ***
# ****
# *****
i=1
while i<=5 :  #控制行数              i=1   1<=5   2<=5 ....
    j=1
    while j<=i:  #控制*数量      j  1<=1   2<=1   1<=2...
        print('*',end='')
        j+=1                    #j=2...
    print()   #换行
    i=i+1                      #i=2                3...

# 输出一个九九乘法表
# 1 * 1 = 1
# 1 * 2 = 2  2 * 2 = 4
# 1 * 3 = 3  2 * 3 = 6  3 * 3 = 9
# 1 * 4 = 4  2 * 4 = 8  3 * 4 = 12  4 * 4 = 16
# 1 * 5 = 5  2 * 5 = 10  3 * 5 = 15  4 * 5 = 20  5 * 5 = 25
# 1 * 6 = 6  2 * 6 = 12  3 * 6 = 18  4 * 6 = 24  5 * 6 = 30  6 * 6 = 36
# 1 * 7 = 7  2 * 7 = 14  3 * 7 = 21  4 * 7 = 28  5 * 7 = 35  6 * 7 = 42  7 * 7 = 49
# 1 * 8 = 8  2 * 8 = 16  3 * 8 = 24  4 * 8 = 32  5 * 8 = 40  6 * 8 = 48  7 * 8 = 56  8 * 8 = 64
# 1 * 9 = 9  2 * 9 = 18  3 * 9 = 27  4 * 9 = 36  5 * 9 = 45  6 * 9 = 54  7 * 9 = 63  8 * 9 = 72  9 * 9 = 81
i=1
while i<=9:   #控制行数                        i 1       2      10<=9
    j=1
    while j<=i: #控制列数                       1<=1     1<=2  .....     1<=8
        print(j,'*',i,'=',j*i,end='    ')
        j+=1
    print()
    i+=1                                        #2    3    4  .....10

#练习
# ****
# ***
# **
# *
i=4
while i>0:
    j=1
    while j<=i:         #1<=4
        print('*',end='')
        j+=1
    print()
    i-=1

i=1
while i<=4:
    j=1
    while j<=5-i:         #1<=4
        print('*',end='')
        j+=1
    print()
    i+=1

# 倒过来九九乘法表
i=9
while i>=1:
    j=1
    while j<=i:
        print(j,'*',i,'=',j*i,end='    ')
        j+=1
    print()
    i-=1

#   *
#  ***
# *****
i=1
while i<=3: #控制行数                      1         2        3
    j=1
    while j<=3-i: #每行前后空格数    1<=2  2         1         0
        print(' ',end="")
        j+=1
    a=1
    while a<=2*i-1: #控制*数量            1(1<=1)   3(1<=3)    5(1<=5)
        print('*',end='')
        a+=1
    print()  #换行
    i+=1

-for循环-

# python中的for循环,主要用于遍历列表中的元素或字符串
# 遍历列表
for i in [212,55,'eere',66,'ee']:
    print(i)
a=[1,5,6,4,8,7]
for c in a:
    print(c)

# 遍历字符串
aa='asdfsdfdfsd'
for i in aa:
    print(i)

# for i in 12345:
# #     print(i)
# # 会报错,for不可以遍历数字

for i in (2,5,6,'er',21):
    print(i)

# range() 用于快速生成一个数列
# 语法:range(开始,结束,步长)    如果只有一个参数,则代表结束,开始默认为0,步长默认为1

for i in range(1,10,1):
    print(i)   #输出1开始到10(不包括10),默认步长为1

for i in range(10,30,2):    #输出10-30之间的偶数,步长为2
    print(i)

for i in range(5):   #输出0-4,步长默认为1
    print(i)
# 输出1-100之间奇数
for i in range(1,101,2):
    print(i,end=',')

print()

for i in range(10,0,-1):   #输出10-1的数,步长减1
    print(i)

for i in range(1,10,-1):  #方向相反,输出为空
    print(i)

for i in range(3):   #循环3次
    print('abc')

#打印10个Helloworld
for i in range(10):
    print('Helloworld')

# 如果明确循环的次数,那么可以使用for替代while,不确认次数就需要用while

# 有一个数为5000,每次减半,问多少次后小于100
num1=5000
count=0
while num1>=100:
    count+=1
    num1=num1/2
    print(num1)
print(count)

# 用for 求 1-100之间的和
sum1=0
for i in range(1,101):    #i  1     2      3     4      5......
    sum1=sum1+i        #sum1  1     3      6     10     15.....
print(sum1)       #5050

# 用for 求 1-100之间偶数的和
sum1=0
for i in range(2,101,2):
    sum1+=i  #sum1=sum1+i
print(sum1)  #2550

# *
# **
# ***
# ****
for i in range(1,5): #控制行数            1      2      3      4
    for i in range(1,i+1):  #控制* 数量  1,2   1,3     1,4    1,5
        print('*',end='')
    print()

# 用for实现九九乘法表
for i in range(1,10):  #控制行数                 1         2          3        4          5               6.....
    for j in range(1,i+1): #控制列数            1,2       1,3
        print(j,'*',i,'=',j*i,end='   ') #    1*1=1   1*2=2 2*2=4
    print()   #换行

-break 强制结束整个循环-

-continue 强制结束本次循环-

# break   强制结束整个循环
# continue  强制结束本次循环,进入下一次循环
# pass   占位符,没有任何意义,只是为了可以运行通过

# 当遇到5时就结束整个循环
for i in range(10):
    if i == 5:
        break    #结束整个循环
    print(i)

# 只输出1-10之间不包括5的数
for i in range(1,11):
    if i ==5:
        continue  #结束本次循环,进入下一次循环
    print(i)

if True:
    pass
else:
    pass
#
# 输出1-100之间不能被5整除的数
for i in range(1,101):
    if i%5==0:
       continue   #执行continue后,下面代码本次不会再执行
    print(i,end=',')

print()
# 遍历Helloworld,当遇到w时结束整个循环
for i in 'Helloworld':
    if i=='w':
        break
    print(i)

-列表操作-

# 列表  list  是一个有序的容器,里面可以存储各种数据类型的数据
list1=[]   #空列表
if list1:    #空列表等于假
    print('abc')

#有元素的列表
list3  =  ['a','b','c','d','e','f','g']
# 正向下标  0   1    2   3   4   5   6
# 反向下标 -7   -6  -5  -4   -3  -2  -1

# 获取列表中的元素
print(list3[3])   #获取列表下标为3的元素     d
print(list3[-4])  #d
# print(list3[10])  #下标越界会报错

# len() 求列表的长度
a=len(list3)
print(a)    #7个元素

# 修改列表中的元素
list3[2]=8   #把列表下标为2的元素修改为8
print(list3)  #['a', 'b', 8, 'd', 'e', 'f', 'g']

a=[1,2,3]+[3,8,7]   #两个列表相加,会合并一起,产生一个新的列表
print(a)
print([1,2,3]*2)  #[1, 2, 3, 1, 2, 3]  重复2次,生成一个新的列表
print(3 in [1,5,9,7,3,8])  #判断列表中是否有3,有返回True,否则返回False         True

list3  =  ['a','b','c','d','e','f','g']
# 正向下标  0   1    2   3   4   5   6
# 反向下标 -7   -6  -5  -4   -3  -2  -1
# 切片:截取列表中的部分元素
# 语法:列表名[开始:结束:步长]       包头不包尾     步长默认为1
print(list3[2:5])   #['c', 'd', 'e']    从下标2开始取值,取到5,不包括5
print(list3[:5])    #没有定义开始,就从下标0开始 到下标 5   ['a', 'b', 'c', 'd', 'e']
print(list3[4:])    #没有定义结尾,就取到最后一个   ['e', 'f', 'g']
print(list3[::2])   #从开头取到结尾,步长为2    ['a', 'c', 'e', 'g']


list3  =  ['a','b','c','d','e','f','g']
# 正向下标  0   1    2   3   4   5   6
# 反向下标 -7   -6  -5  -4   -3  -2  -1
# 也支持负向下标
print(list3[-6:-2:1])  #['b', 'c', 'd', 'e']
print(list3[-5:-1:-1])  #返回一个空列表  ,因为方向不一致
print(list3[-2:-6:-1])  #['f', 'e', 'd', 'c']    方向一致

# 把[1,2,3,4,5,6]元素倒序输出
a=[1,2,3,4,5,6]
print(a[::-1])   #[6, 5, 4, 3, 2, 1]
print(a[-2:-5:-1])  #反向下标   [5,4,3]
print(a[4:1:-1])   #正向下标   [5, 4, 3]

list3  =  ['a','b','c','d','e','f','g']
print(list3[1:6:2])   #['b', 'd', 'f']

# 添加列表的元素(append、insert)
a=[1,2,3,4]
a.append(8)  #append 把元素添加到列表的末尾
print(a)  #[1, 2, 3, 4, 8]

for i in range(5):
    a.append(i)
print(a)  #[1, 2, 3, 4, 8, 0, 1, 2, 3, 4]

# insert添加元素到列表指定位置
a=[1,2,3,4]
a.insert(2,8)  #把8放到新列表下标为2的位置
print(a)
a.insert(0,5)  #把添加的元素放到最前面
print(a)  #[5, 1, 2, 8, 3, 4]

#删除元素
# 1.pop 按照下标删除,并且返回被删除元素
list1=[4,5,4,8,9,1,7]
a=list1.pop(3)
print(list1)  #[4, 5, 4, 9, 1, 7]

# 2. del 按照下标删除,没有返回删除元素
list1=[4,5,4,8,9,1,7]
del list1[1]
print(list1)  #[4, 4, 8, 9, 1, 7]

# 3. remove 按照元素内容删除
list1=[4,5,9,4,8,9,1,7]
list1.remove(9)
print(list1)   #[4, 5, 4, 8, 9, 1, 7]

# list1.remove(6)  #删除一个不存在的元素会报错

# 为了不会报错,需要加一个判断
if 6 in list1:  #判断列表中是否有6
    list1.remove(6)

# max min 对列表中的数字元素求最大或最小
list1=[1,8,9.8,1,5,4]
print(max(list1))   #求列表中的最大值    9
print(min(list1))   #求列表中的最小值    1
# print(max([1,5,'a']))   #会报错,字符串不可以比大小

# clear 清空列表内容
list1=[1,2,5,48,5]
list1.clear()
print(list1)   #[]

# sum 对数字列表进行求和
list1=[4,5,8,7,9]
print(sum(list1))  #33

# reverse() 把列表中的元素倒序输出
list1=[4,5,7,8,9]
list1.reverse()
print(list1)  #[9, 8, 7, 5, 4]

# sort 对列表中的元素进行排序(数字,字母),默认升序,如果列表中元素类型不一样,无法比较,会报错
list1=[5,9,7,4,3]
list1.sort()  #升序
print(list1)   #[3, 4, 5, 7, 9]
list1.sort(reverse=True)  #降序排列
print(list1)

list2=['r','w','v','c']
list2.sort()
print(list2)  #['c', 'r', 'v', 'w']

# 二维列表:列表中又包含有列表
list3=[1,8,9,4,[4,5,'a',8],8,9]
# 获取列表中的a元素
print(list3[4][2])   #a

# count 统计某一个元素在列表中有几个?
list5=[4,5,7,8,4,4,3,3,4,6,5,4]
a=list5.count(4)   #统计4在列表中有几个
print(a)   #5个

# 统计出列表中出现次数最多的元素,显示元素及次数
list5=[4,5,7,8,4,4,3,3,4,6,5,4]

-元组操作-

# 元组 tuple  本质上就是一个只读的列表
tuple1=()  #定义一个空元组
# 定义只有一个元素的元组,需要后面加一个逗号
tuple2=('a',)
print(type(tuple2))  #<class 'tuple'>

# 和列表一样,支持下标和切片操作
tuple1=(10,20,30,40,50,60,70,80)
print(tuple1[1])    #20
print(tuple1[2:5:2])   #(30, 50)

# tuple1[1]=100  #报错,元组只读,不可以修改

print((1,8,9)+(4,5))  #(1, 8, 9, 4, 5)    把两个元组内容连接在一起生成一个新的元组
print((1,8,7)*3)   #(1, 8, 7, 1, 8, 7, 1, 8, 7)   内容复制三份
print(5 in (4,8,9)) #判断元组中是否有5    False

print(len((1,8,79,'sf',[1,5,6])))    #求元组的长度    5
tuple2=(1,5,3,(5,9,8),'a',58)
print(tuple2[3][1])  #获取里面元组某个元素内容     9
print(max((4,8,6,7)))  #求数字元组中的最大值   8
print(min((5,7,9,7,3)))  #求数字元组中的最小值   3

# 元组与列表之间互换  (把9修改为6)
tuple3=(1,8,9,7,5)
list1=list(tuple3)   #元组转换成列表
list1[2]=6     #修改列表的内容
tuple3=tuple(list1)   #列表转换成元组
print(tuple3)   #(1, 8, 6, 7, 5)

# 元组遍历
for i in (1,8,6,4):
    print(i)

# 根据下标遍历元组
tuple4=('a','c',8,6,'e')
for i in range(len(tuple4)):   #range(5)    0   1    2  3  4
    print(tuple4[i])

-数字操作-

# 数字 number
print('abc'+str(123))    #abc123   需要把数字转换成字符串

# 常用函数
# abs()  绝对值
print(abs(-8))

# max() 最大值
print(max(7,9,8,5))    #9

#min() 最小值
print(min(4,8,7,4))    #4

# pow()指数
print(pow(2,8))   #256  2的8次方

#round()四舍五入
print(round(3.6456))  #如果只有一个参数,就输出整数部分,四舍五入     4
print(round(3.6456,2)) #后面的2表示保留2位小数,四舍五入   3.65
print(round(1/3,2))   #0.33

a=123456
# print(a[3])  #报错,数字不支持下标访问,无序的

# print(len(a))  #报错,数字不能求长度

-字典操作-

# 字典  dict   是一个键值对的容器
# 特点:
# 1.键不能重复,重复会被覆盖
# 2.里面的元素是无序,不能通过下标访问
# 3.键不可以修改,键是不可变对象,值可以修改
#
# python中的不可变对象:数字 字符串  元组
# python中的可变对象:  列表  字典   集合

# 有序:字符串  列表   元组
# 无序:数字   字典   集合

dict1={} #空字典
dict2={'name':'小明','age':20,'sex':'男'}  #有内容的字典

# print(dict2[1])  #报错,字典是无序

# 通过键获取对应的值
print(dict2['age'])   #20

dict2={'name':'小明','age':20,'name':'小花'}
print(dict2['name'])  #小花   键重复时会被覆盖

# 给字典添加键值对|修改值
dict2={'name':'小明','age':20,'sex':'男'}  #有内容的字典
dict2['sal']=3000
print(dict2)  #{'name': '小明', 'age': 20, 'sex': '男', 'sal': 3000}    键不存在,就是添加

dict2['age']=30
print(dict2)  #{'name': '小明', 'age': 30, 'sex': '男', 'sal': 3000}   如果键存在,就是修改对应值

# 删除字典键值对
dict2={'name':'小明','age':20,'sex':'男'}  #有内容的字典
a=dict2.pop('sex')  #返回是键对应的值
print(a)
print(dict2)   #{'name': '小明', 'age': 20}

dict2={'name':'小明','age':20,'sex':'男'}  #有内容的字典
del dict2['name']
print(dict2)   #{'age': 20, 'sex': '男'}

# 遍历字典
dict2={'name':'小明','age':20,'sex':'男'}  #有内容的字典
for i in  dict2:
    print(i)   #输出字典的键  name  age   sex

for a,b in dict2.items():
    # print(a,b)   #输出键与值
    # print(a)  #输出键
    print(b)   #输出值

-集合操作-

# 集合  set  本质上是只有键的字典,具有去重功能
set1=set()   #定义一个空的集合
print(type(set1))   #<class 'set'>

set1={'name','age',1,5,6}
# 遍历集合
for i in set1:
    print(i)

# print(set1[1])  #报错,集合是无序,不可以通过下标访问

set1={'name','age',1,5,6,5}
print(set1)  #{1, 5, 6, 'age', 'name'}  去除重复的

# 添加
set1.add(9)
print(set1)   #{'name', 1, 5, 6, 'age', 9}

# 删除
set1.remove(6)
print(set1)   #{'name', 1, 5, 'age', 9}

# 交集(相同的内容)
print({3,4,5,6,7}&{5,6,7,8,9})   #{5, 6, 7}

#并集(所有的内容,去掉重复的)
print({3,4,5,6,7}|{5,6,7,8,9})   #{3, 4, 5, 6, 7, 8, 9}

#补集(左边比右边多的内容)
print({3,4,5,6,7}-{5,6,7,8,9})   #{3, 4}

-字符串操作-

# 字符串  str  本质上就是一个只读的字符列表,需要用引号引起来
str1=''  #定义一个空的字符

# 如果是多行字符串,需要用三对引号引起来,原样输出
str2="""
abc
  de
fd
"""
print(str2)

# 字符串特性
str3='Helolworld'
# 1.通过下标获取字符串中的某个元素
print(str3[3])  #o

# 2.切片操作
print(str3[2:6:2])   #ll   从下标为2开始读取到下标6(不包含6),步长为2

print('abc'+'de')   #两个字符串相加,会拼接在一起   abcde

print('abc'*2)   #abcabc    复制二份

# 求字符串长度
str3='Helolworld'
print(len(str3))  #10

# 遍历字符串
for i in 'abcd':
    print(i)

# 判断某个字符是否在字符串中
print('a' in 'abcde')   #True

# 格式化输出
# %d  整数
# %f  浮点数    %.2f  保留2小数点
# %s  字符串

name='小明'
age=20
sal=1500.5
print('姓名:',name,',年龄:',age,',工资:',sal)      #姓名: 小明 年龄: 20 工资: 1500.5
print('姓名:%s,年龄:%d,工资:%f'%(name,age,sal))  #姓名:小明,年龄:20,工资:1500.500000
print(f"姓名:{name},年龄:{age},工资:{sal}")     #姓名:小明,年龄:20,工资:1500.5

# 打印时间  05:10:20
hour=5
minute=6
second=17
print(f"{hour:02}:{minute:02}:{second:02}")    #05:06:17

# 转义字符
# \n  换行
# \t 一个tab键
# \' 后面的字符不转义,原样输出
print('hello\nworld')
print('ab\tcd')
print('He \'s a boy.')   #\' 后面的字符不转义,原样输出

# 有时候所有字符串原样输出,在前面加一个r,代表后面的字符串不转义
print(r"C:\note\abc")

# 字符串常用函数
# (1)find 返回字符串指定元素的下标,找不到返回-1
print('Hello'.find('e'))   #e的下标为1
print('Hello'.find('w'))   #-1

# (2)split把字符串以指定的字符进行拆分,生成一个新列表
str4='a-b-c-d-e'
print(str4.split('-'))  #['a', 'b', 'c', 'd', 'e']

# (3)join() 连接字符串函数,把字符串、列表、元组以指定的字符连接在一起,生成一个新的字符串
list1=['a', 'b', 'c', 'd', 'e']
print(''.join(list1))   #abcde

# 去掉字符串中间的空格
str5='a b c d'      # abcd     a*b*c*d
a=str5.split(' ')
str5=''.join((a))
print(str5)  #abcd

# a*b*c*d
str5='a b c d'      #   a*b*c*d
a=str5.split(' ')
str5='*'.join((a))
print(str5)    #a*b*c*d

# (4)strip() 去掉字符串左右两边指定的字符,默认为空格
print('       Hello  world    '.strip())   #Hello  world
print('?????Hello  world?????'.strip('?'))   #Hello  world   去掉字符串两边的?

# (5)replace()  把字符串中指定的字符替换成新的值
print('  heleleo  '.replace('e','h'))  #hhlhlho    把字符串中的所有e替换成h

# (6)upper() 把字符串转换成大写
a='abc'
print(a.upper())   #ABC
print('Hello'.upper())   #HELLO

# (7)lower()  把字符串转换成小写
a='AbC'
print(a.lower())   #abc

# 在字符串'abcd'中间添加一个字符 e (abecd)
str1='abcd'
list1=list(str1)  #把字符串转换到列表类型
list1.insert(2,'e')  #在列表中插入元素
str1="".join(list1)   #把列表内容拼接在一起
print(str1)   #abecd

-函数-

# 函数:对一些特殊的功能封装起来,方便后续使用
# 求四个长方形面积和周长
a=2
b=6
print('周长:',(a+b)*2,'面积:',a*b)

a=3
b=8
print('周长:',(a+b)*2,'面积:',a*b)

a=9
b=2
print('周长:',(a+b)*2,'面积:',a*b)

a=6
b=8
print('周长:',(a+b)*2,'面积:',a*b)

# 缺点:多次使用相同的代码,一旦需要修改,那么要一个个修改
# 为了能够代码复用性更好,就需要定义函数,提高代码复用率

# 定义函数语法: def 函数名(参数)
'''
def mianji_zhouchang(num1,num2)
def                 定义函数的关键字
mianji_zhouchang    函数名
num1,num2           参数
'''

# 定义函数: 内部的代码不会被执行
def mianji_zhouchang(a,b):
    print('周长:', (a + b) * 2, '面积:', a * b)

#调用函数:   函数名(参数)
mianji_zhouchang(3,8)
mianji_zhouchang(5,8)
mianji_zhouchang(7,8)
mianji_zhouchang(9,8)

# 根据爸爸给的钱的多少,确定买不同的车
def buy_car(price):   #price 形参(形式参数)
    if price>1000000:
        print('BMW')
    elif price>100000:
        print('买本田')
    else:
        print('买摩托车')

buy_car(50000)   #50000 表示实数   50000》price
# buy_car(1000,2000)   #实参个数要与形参个数一致,否则报错      多了一个参数

# 通过函数,判断输入的数字是不是奇数
def jishu(num1):
    if num1%2:   #if 1
        print('奇数')
    else:
        print('不是奇数')
jishu(11)   #调用函数

# 函数有几种表示形式
# (1)无参函数
def sum1():
    print(6+3)
sum1()       #9

# (2)有参函数
def sum2(a,b):
    print(a+b)
sum2(5,8)

# (3)无参无返回值函数
def say():
    print('早上好!')
say()

# (4)有参有返回值函数
def sum3(a,b):
    c=a+b
    return c   #返回c 给调用者
d=sum3(8,10)
print(d)

#写一个函数,返回1到某个数的偶数和
def sum1(num1):
    sum=0
    for i in range(2,num1+1,2):
        sum=sum+i
    return sum
a=sum1(8)
print(a)
#写一个函数,输入一个列表,返回这个列表的长度
def listlen(list1):
    a=len(list1)
    return a
print(listlen([1,5,4,6,4,5,8]))   #7

#写一个函数,输入三个整数,打印出最大的数
def maxnum(a,b,c):
    print(max(a,b,c))
a=int(input('输入第1个数:'))
b = int(input('输入第2个数:'))
c = int(input('输入第3个数:'))
maxnum(a,b,c)

-

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值