笔记 python基础

文章主要学自黑马程序员资源,主要是python的概念和典型例子,附有练习的代码

若代码运行出错,除了语法、变量出错,也可能是因为对应代码的缩进不恰当,我自己在执行代码时经常这样,改正对应代码缩进后,代码就能正常运行了

1.怎么运行python

  • 在windows系统中,下载了python之后,可以直接在电脑超级终端中运行代码(弊端:每一次运行程序都需要重新进行输入,费时费力)
    • 打开电脑终端的方法
      • 直接在windows查找应用处用cmd指令打开;
      • win+R打开运行窗口,输入cmd指令打开;
      • 若安装了Anaconda,直接在win处查找,Anaconda prompt,右键打开powershell窗口
  • 李沐《动手学深度学习》中
    • 用jupyter执行python代码
      • python,miniconda都已经提前下载好        
        • 用cmd打开终端
        • 创建虚拟环境并激活
        • 运行jupyter notebook

          conda create --name d2l python 3.11.8-y
          conda activate d2l
          jupyter notebook
      • 创建好虚拟环境后,下次直接在终端激活虚拟环境,再运行jupyter notebook,就可以在jupyter notebook中运行python代码
      • 使用jupyter notebook过程中,终端不能关掉

2.注释

  • 单行注释:“#”和后面的文字组成注释,起辅助说明作用,不会参与程序的运行
  • 多行注释:  '''多行注释,可以写很多很多行的功能说明  '''

3.python中的常见变量类型

  • int(有符号整型)、long(长整型[也可以代表八进制和十六进制])、float(浮点型)、complex(复数)
  • 布尔类型  True、False
  • String(字符串)
  • List(列表)
  • Tuple(元组)
  • 在python中,只要定义了一个变量,而且它有数据,那么它的类型就已经确定了,不需要主动的去说明它的类型,系统会自动辨别
  • 可以使用type(变量的名字),来查看变量的类型

4.变量命名规则

  • 由字母、数字、下划线(_)组成,不能有空格或其它特殊符号。
  • 数字不能作为开头
  • 字母区分大小写
  • 不能用保留字,如if,while等

5.关键字

  • python一些具有特殊功能的标示符,这就是所谓的关键字
  • 关键字,是python已经使用的了,所以不允许开发者自己定义和关键字相同的名字的标示符。
  • 常见的关键字
  • break   class    continue   def     del     elif    else    except     
    exec    finally  for        from    global  if      in      import     
    is      lambda   not        or      pass    print   raise   return     
    try     while    with       yield
  • 可以通过以下命令进行查看当前系统中python的关键字
    >>> import keyword
    >>> keyword.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']
    

    6.输出

print('hello world')
print('给我的卡---印度语,你好的意思')     #非格式化输出

age = 18
name = "xiaohua"
print("我的姓名是%s,年龄是%d"%(name,age))    #格式化输出
  • 常用的格式符号
格式符号转换
%c字符
%s通过str() 字符串转换来格式化
%i有符号十进制整数
%d有符号十进制整数
%u无符号十进制整数
%o八进制整数
%x十六进制整数(小写字母)
%X十六进制整数(大写字母)
%e索引符号(小写'e')
%E索引符号(大写“E”)
%f浮点实数
%g%f和%e 的简写
%G%f和%E的简写
  •  换行输出 在输出的时候,如果有\n那么,此时\n后的内容会在另外一行显示
    print("1234567890-------") # 会在一行显示
    
    print("1234567890\n-------") # 1234567890
                                 # -------

    7.输入

  • input()接受表达式输入,并把表达式的结果赋值给等号左边的变量
    >>> a=input()
    45
    >>> a
    '45'
    >>> type(a)
    <class 'str'>
    
    >>> a=input()
    asd
    >>> a
    'asd'
    >>> type(a)
    <class 'str'>
    
    >>> a=input()
    'asd'
    >>> type(a)
    <class 'str'>
    
    
    
    >>> a=input()
    acd
    >>> b=input()
    fgh
    >>> a+b
    'acdfgh'
    
    >>> a=input()
    3+5
    >>> a
    '3+5'
    
    >>> a=input()
    acd+hjk
    >>> a
    'acd+hjk'
    
    >>> a=input()
    'acd'+'qwe'
    >>> a
    "'acd'+'qwe'"
    
    >>> a=input()
    "asd"+"ert"
    >>> a
    '"asd"+"ert"'
    
    

    8.运算符

  • 算术运算符
    • 下面以a=10 ,b=20为例进行计算
运算符描述实例
+两个对象相加 a + b 输出结果 30
-得到负数或是一个数减去另一个数 a - b 输出结果 -10
*两个数相乘或是返回一个被重复若干次的字符串 a * b 输出结果 200
/x除以y b / a 输出结果 2
//取整除返回商的整数部分 9//2 输出结果 4 , 9.0//2.0 输出结果 4.0
%取余返回除法的余数 b % a 输出结果 0
**返回x的y次幂 a**b 为10的20次方, 输出结果 100000000000000000000
  •  赋值运算符
运算符描述实例
=赋值运算符把=号右边的结果给左边的变量 num=1+2*3 结果num的值为7
  • 复合赋值运算符 
运算符描述实例
+=加法赋值运算符c += a 等效于 c = c + a
-=减法赋值运算符c -= a 等效于 c = c - a
*=乘法赋值运算符c *= a 等效于 c = c * a
/=除法赋值运算符c /= a 等效于 c = c / a
%=取模赋值运算符c %= a 等效于 c = c % a
**=幂赋值运算符c **= a 等效于 c = c ** a
//=取整除赋值运算符c //= a 等效于 c = c // a
  • 比较(即关系)运算符 
运算符描述示例
==检查两个操作数的值是否相等,如果是则条件变为真。如a=3,b=3则(a == b) 为 true.
!=检查两个操作数的值是否相等,如果值不相等,则条件变为真。如a=1,b=3则(a != b) 为 true.
<>检查两个操作数的值是否相等,如果值不相等,则条件变为真。如a=1,b=3则(a <> b) 为 true。这个类似于 != 运算符
>检查左操作数的值是否大于右操作数的值,如果是,则条件成立。如a=7,b=3则(a > b) 为 true.
<检查左操作数的值是否小于右操作数的值,如果是,则条件成立。如a=7,b=3则(a < b) 为 false.
>=检查左操作数的值是否大于或等于右操作数的值,如果是,则条件成立。如a=3,b=3则(a >= b) 为 true.
<=检查左操作数的值是否小于或等于右操作数的值,如果是,则条件成立。如a=3,b=3则(a <= b) 为 true.
  • 逻辑运算符 
运算符逻辑表达式描述实例
andx and y布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。(a and b) 返回 20。
orx or y布尔"或" - 如果 x 是 True,它返回 True,否则它返回 y 的计算值。(a or b) 返回 10。
notnot x布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。not (a and b) 返回 False

9. 数据类型转换

函数说明
int(x [,base ])将x转换为一个整数
long(x [,base ])将x转换为一个长整数
float(x )将x转换到一个浮点数
complex(real [,imag ])创建一个复数
str(x )将对象 x 转换为字符串
repr(x )将对象 x 转换为表达式字符串
eval(str )用来计算在字符串中的有效Python表达式,并返回一个对象
tuple(s )将序列 s 转换为一个元组
list(s )将序列 s 转换为一个列表
chr(x )将一个整数转换为一个字符
unichr(x )将一个整数转换为Unicode字符
ord(x )将一个字符转换为它的整数值
hex(x )将一个整数转换为一个十六进制字符串
oct(x )将一个整数转换为一个八进制字符串

10. 判断语句

  • if语句

  • 使用格式 " : "不要漏掉
  •  # if语句  if能完成当xxx时,做事情
    if 要判断的条件:
            条件成立时,要做的事情
    
    # if-else语句  if-else能完成当xxx时做事情1,否则做事情2
    if 条件:
            满足条件时要做的事情1
            满足条件时要做的事情2
            满足条件时要做的事情3
            ...(省略)...
    else:
            不满足条件时要做的事情1
            不满足条件时要做的事情2
            不满足条件时要做的事情3
            ...(省略)...
    
    # if elif elif    当xxx1时做事情1,当xxx2时做事情2,当xxx3时做事情3
    if xxx1:
            事情1
    elif xxx2:
            事情2
    elif xxx3:
            事情3
    #可以和else一起用
    #当xxx1时,做事情1,当xxx2时,做事情2,否则做事情3
    if xxx1:
            事情1
    elif xxx2:
            事情2
    else:
            事情3
  • elif必须和if一起使用,否则出错 
  • 猜字游戏
  • #导入随机模块
    import random
    #生成一个10到100之间的随机数
    secret_number=random.randint(10,100)
    #初始化猜测次数
    guesses_taken=0
    print("欢迎来到猜数字的游戏!")
    
    while True:
      #获取用户的猜测
      guess=int(input("请猜一个10到100之间的整数:"))
      #猜测次数加1
      guesses_taken+=1
      #判断猜测的数字与随机数的大小关系
      if guess<secret_number:
        print("猜的数字太小了")
      elif guess>secret_number:
        print("猜的数字太大了")
      else:
        #猜对了,跳出循环
        print("恭喜你,答对了")
        break
    print("你总共猜了",guesses_taken,"次")
    
    #欢迎来到猜数字的游戏!
    #请猜一个10到100之间的整数: 50
    #猜的数字太大了
    #请猜一个10到100之间的整数: 30
    #猜的数字太小了
    #请猜一个10到100之间的整数: 40
    #猜的数字太小了
    #请猜一个10到100之间的整数: 45
    #猜的数字太大了
    #请猜一个10到100之间的整数: 43
    #猜的数字太大了
    #请猜一个10到100之间的整数: 42
    #恭喜你,答对了
    #你总共猜了 6 次    
  • if嵌套
  • chePiao = 1     # 用1代表有车票,0代表没有车票
        daoLenght = 9     # 刀子的长度,单位为cm
    
        if chePiao == 1:
            print("有车票,可以进站")
            if daoLenght < 10:
                print("通过安检")            
            else:
                print("没有通过安检")
                
        else:
            print("没有车票,不能进站")
    
    #结果1  chePiao = 1;daoLenght = 9
    #       有车票,可以进站
    #       通过安检
    
    #结果2  chePiao = 1;daoLenght = 20
    #       有车票,可以进站
    #       没有通过安检
    
    #结果3  chePiao = 0;daoLenght = 9
    #       没有车票,不能进站
    #结果4  chePiao = 0;daoLenght = 20
    #       没有车票,不能进站
    
            
    

11.循环语句

11.1while循环

  • 一般通过数值是否满足来确定循环的条件
  • 格式
    while 条件:
            条件满足时,做的事情1
            条件满足时,做的事情2
            条件满足时,做的事情3
            ...(省略)...
    #应用1
     i = 0
     while i<5:
         print("当前是第%d次执行循环"%(i+1))
         print("i=%d"%i)
         i+=1
    #当前是第1次执行循环
    #   i=0
    #    当前是第2次执行循环
    #    i=1
    #    当前是第3次执行循环
    #    i=2
    #    当前是第4次执行循环
    #    i=3
    #    当前是第5次执行循环
    #    i=4
    
    #应用2    1~100累加
    i = 1
    sum = 0
    while i<=100:
        sum = sum + i
        i += 1
    print("1~100的累积和为:%d"%sum)
    #1~100的累积和为:5050
    #应用3    1~100中的偶数累加
    i = 1
    sum = 0
    while i<=100:
        if i%2 == 0:
            sum = sum + i
        i+=1
    print("1~100的累积和为:%d"%sum)
    #1~100的累积和为:2550
  •  while嵌套
    #九九乘法表
    i = 1
    while i<=9:
            j=1
            while j<=i:
                print("%d*%d=%-2d "%(j,i,i*j),end='') 
    #内层循环的主体,用于打印乘法表的一行。 %d 是格式化指令,用来打印整数。
    # %-2d 表示以左对齐的方式打印宽度为2的整数。
    # end='' 参数意味着在打印后不换行,而是继续在同一行打印。
                j+=1
            print('\n')
            i+=1
    #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 
    

    11.2 for循环

  • 一般是对能保存多个数据的变量,可以遍历任何序列的项目(如一个列表或者一个字符串等),变量中有多少个数据就循环多少次。
  • 格式
    for 临时变量 in 列表或者字符串等:
            循环满足条件时执行的代码
        else:
            循环不满足条件时执行的代码
    #应用1
    name1 = 'dongGe'
    for x in name1:
        print(x)
    
    name2 = ''
    
    for x in name2:
        print(x)
    else:
        print("没有数据")
    
    
    #d
    #o
    #n
    #g
    #G
    #e
    #没有数据
    
    
    #应用2 break & continue 以for循环为例子,while循环同理可得
    name = 'dongGe'
    
    for x in name:
        print('----')
        print(x)
    
    
    #----
    #d
    #----
    #o
    #----
    #n
    #----
    #g
    #----
    #G
    #----
    #e
    
    
    name = 'dongGe'
    
    for x in name:
        print('----')
        if x == 'g': 
            break   #直接跳出整个循环
        print(x)
    
    #----
    #d
    #----
    #o
    #----
    #n
    #----
    
    
      name = 'dongGe'
    
      for x in name:
          print('----')
          if x == 'g': 
              continue  #只跳出当前循环,然后继续执行下一次循环
          print(x)
    #----
    #d
    #----
    #o
    #----
    #n
    #----
    #----
    #G
    #----
    #e
    
  • while是根据条件来控制循环次数
  • for是根据in后面的变量里的内容来控制循环次数

11.3 break & continue

  • break的作用:用来结束整个循环
  • continue的作用:用来结束本次循环,紧接着执行下一次的循环
  • break/continue只能用在循环中,除此以外不能单独使用

  • break/continue在嵌套循环中,只对最近的一层循环起作用

  • if、while、for等其他语句可以随意组合,这样往往就完成了复杂的功能

#一些应用
#打印三角形1
i = 1

while i<=5:
    j = 1
    while j<=i:
        print("*", end="")
        j+=1

    print("")

    i+=1


#*
#**
#***
#****
#*****


#打印三角形2
i = 1
while i<=5:

    #从键盘中输入一个值,这个值用来控制这行中*的个数
    num = int(input("请输入这个行里的*的个数:"))
    j = 1
    while j<=num:
        print("*", end="")
        j+=1
    print("")

    i+=1


#请输入这个行里的*的个数: 10
#**********
#请输入这个行里的*的个数: 20
#********************
#请输入这个行里的*的个数: 30
#******************************
#请输入这个行里的*的个数: 40
#****************************************
#请输入这个行里的*的个数: 8
#********

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值