课堂视频

上午: https://ke.qq.com/webcourse/index.html#cid=2744006&term_id=102851992&lite=1&from=800021724&taid=34394249&vid=5285890806586236493
下午:https://ke.qq.com/webcourse/index.html#cid=2744006&term_id=102851992&lite=1&from=800021724&taid=34397164&vid=5285890806591883541


环境配置 掌握

下载对应的版本
image.png
选择安装路径 并设置环境变量
image.png
image.png

image.png

安装pycharm

https://www.jetbrains.com/pycharm/download/#section=windows
image.png

学习方法

参考官方教程: https://docs.python.org/zh-cn/3/tutorial/index.html

概念

  • 解释器 python的安装版本;

    1. C:\Users\zengy>python -V
    2. Python 3.8.5
  • 交互模式 在命令终端可以直接调试Python代码,交互模式

image.png

数字

Python支持加减乘除运算

  1. >>> 1 +1
  2. 2
  3. >>> 2+2
  4. 4
  5. >>> 50 - 5*6
  6. 20
  7. >>> (50 - 5*6) / 4
  8. 5.0
  9. >>> 8/5
  10. 1.6
  11. >>>
/ 除法运算 image.png
// 整除运算,结果取整数部分 image.png
% 取模运算,结果取余数 image.png

在Python中,可以使用 ** 运算符来计算乘方

  1. >>> 5 ** 2 # 5 squared
  2. 25
  3. >>> 2 ** 7 # 2 to the power of 7
  4. 128

等号 (=) 用于给一个变量赋值

  1. >>> width = 20
  2. >>> height = 5 * 9
  3. >>> width * height
  4. 900

在交互模式下,上一次打印出来的表达式被赋值给变量 _

  1. >>> tax = 12.5 / 100
  2. >>> price = 100.50
  3. >>> price * tax
  4. 12.5625
  5. >>> price + _
  6. 113.0625
  • round 位python内置函数,主要做保留小数点位数,支持四舍五入运算
    1. >>> round(117.123456,4)
    2. 117.1235
    如果小数部位为 0 ,最多保留1个0
    1. >>> round(117.000000,4)
    2. 117.0

    int 整型

    数据不带小数点
    1. >>> type(20)
    2. <class 'int'>

float 浮点型

数据带有小数点

  1. >>> type(20.0)
  2. <class 'float'>

数据转换

浮点型数学(float)转换为整型(int)。
int()

  1. >>> int(20.0)
  2. 20
  3. >>> int(20.1)
  4. 20
  5. >>> int(20.9)
  6. 20

整型(int) 转换为浮点型(float)。
float()

  1. >>> float(10)
  2. 10.0

除了 [int](https://docs.python.org/zh-cn/3/library/functions.html#int)[float](https://docs.python.org/zh-cn/3/library/functions.html#float),Python也支持其他类型的数字,例如 [Decimal](https://docs.python.org/zh-cn/3/library/decimal.html#decimal.Decimal) 或者 [Fraction](https://docs.python.org/zh-cn/3/library/fractions.html#fractions.Fraction)。Python 也内置对 复数 的支持,使用后缀 j 或者 J 就可以表示虚数部分(例如 3+5j )。


字符串

Python 也可以操作字符串。字符串有多种形式,可以使用单引号('...'),双引号("...")都可以获得同样的结果。

  1. >>> 'spam eggs' # single quotes
  2. 'spam eggs'
  3. >>> 'doesn\'t' # use \' to escape the single quote...
  4. "doesn't"
  5. >>> "doesn't" # ...or use double quotes instead
  6. "doesn't"
  7. >>> '"Yes," they said.'
  8. '"Yes," they said.'
  9. >>> "\"Yes,\" they said."
  10. '"Yes," they said.'
  11. >>> '"Isn\'t," they said.'
  12. '"Isn\'t," they said.'

建议大家在定义字符串的时候。如果字符串中含有 ' , 字符串最外层使用 ""

  1. >>> "doesn't" # ...or use double quotes instead
  2. "doesn't"

+ 字符串拼接

可以将两个字符串拼接在一起;

  1. >>> 'a' + 'b'
  2. 'ab'
  3. >>> 'test'+"1"
  4. 'test1'
  5. >>> 'test'+"2"
  6. 'test2'
  7. >>>

需要注意的是: 字符串不能与数字进行拼接

  1. >>> 'test'+3
  2. Traceback (most recent call last):
  3. File "<stdin>", line 1, in <module>
  4. TypeError: can only concatenate str (not "int") to str

* 运算

字符串 * 数字num, 字符串重复num次

  1. >>> 'a'*10
  2. 'aaaaaaaaaa'
\t tab 键的缩进 image.png
\n 换行 image.png

小练习

image.png

  1. >>> print('*'*40+'\n番茄炒蛋\t1\t¥15.00\n可口可乐\t1\t¥4.00\n'+'*'*40)
  2. ****************************************
  3. 番茄炒蛋 1 15.00
  4. 可口可乐 1 4.00
  5. ****************************************

字符串拼接

  1. >>> line = "*"*30
  2. >>> line
  3. '******************************'
  4. >>> print(line+"""
  5. ... 番茄炒蛋\t1\t¥15.00
  6. ... 可口可乐\t1\t¥4.00
  7. ... """+line)
  8. ******************************
  9. 番茄炒蛋 1 15.00
  10. 可口可乐 1 4.00
  11. ******************************

如果你不希望前置了 \ 的字符转义成特殊字符,可以使用 原始字符串 方式,在引号前添加 r 即可

  1. >>> print('C:\some\name') # here \n means newline!
  2. C:\some
  3. ame
  4. >>> print(r'C:\some\name') # note the r before the quote
  5. C:\some\name

字符串索引

  1. +---+---+---+---+---+---+
  2. | P | y | t | h | o | n |
  3. +---+---+---+---+---+---+
  4. 0 1 2 3 4 5 6
  5. -6 -5 -4 -3 -2 -1

字符串索引支持两个访问方式

  • 从左往右 访问, 默认索引值从0开始,0表示第一个

    1. >>> a = "Python"
    2. >>> a
    3. 'Python'
    4. >>> a[0]
    5. 'P'
    6. >>> a[1]
    7. 'y'
    8. >>> a[2]
    9. 't'
    10. >>> a[4]
    11. 'o'
  • 从右往左访问, 默认从-1开始,-1 表示最后一个字符;

    1. >>> a = "Python"
    2. >>> a
    3. >>> a[-1]
    4. 'n'
    5. >>> a[-2]
    6. 'o'

    索引值一定在字符串的长度范围之内,如果超出长度,则会报IndexError

    1. >>> a[100]
    2. Traceback (most recent call last):
    3. File "<pyshell#62>", line 1, in <module>
    4. a[100]
    5. IndexError: string index out of range
    6. >>> a[-100]
    7. Traceback (most recent call last):
    8. File "<pyshell#63>", line 1, in <module>
    9. a[-100]
    10. IndexError: string index out of range

    len 内置函数

    返回序列结构数据的长度;

    1. >>> len("helloworld")
    2. 10

    字符串切片

    image.png

  • 表示从左往右取值 第一个参数表示开始位置(取值),第二个参数表示结束位置(不取值)

a[1:] 表示从第2值开始,一直取到结束;
a[:3] 表示从开始处取值,一直取到第3个值
a[2:4] 表示从第3个开始取值,一直取到第4个值

  1. >>> b = "积分: 655"
  2. >>> len(b)
  3. 7
  4. >>> c = "a b c"
  5. >>> len(c)
  6. 5
  7. >>> b[0]
  8. '积'
  9. >>> b[1]
  10. '分'
  11. >>> b[4]
  12. '6'
  13. >>> b[5]
  14. '5'
  15. >>> b[6]
  16. '5'
  17. >>> b[4:6]
  18. '65'
  19. >>> b[4:]
  20. '655'
  1. >>> s = "abcdefg"
  2. >>> s[1:2]
  3. 'b'
  4. >>> s[1:]
  5. 'bcdefg'
  6. >>> s[:5]
  7. 'abcde'
  8. >>> s[-1:]
  9. 'g'
  10. >>> s[-1:-3] #切片取值顺序是从左往右取值,-1 往后已经没有值了,取不到-3的位置,结果为‘’
  11. ''
  12. >>> s[-3:]
  13. 'efg'
  14. >>>
  1. >>> a = "1234567"
  2. >>> a[-3:]
  3. '567'
  4. >>> a[:3]
  5. '123'
  6. >>> len(a)
  7. 7
  8. >>> a[len(a)//2-1:len(a)//2+2]
  9. '345'

字符串步进

可以指定开始位置,结束位置和step
a[startIndex:endIndex:step]

  • step, 如果step为负数,表示从后往前取值 <确定取值方向>
  • startIndex, 开始位置(包含)
  • endIndex, 结束位置 (不包含)
    1. >>> a = "1234567"
    倒序结果
    1. >>> a[::-1]
    2. '7654321'
    1. >>> a = "123456789"
    2. >>> a[1:8:2]
    3. '2468'
    4. >>> a[1::2]
    5. '2468'
    6. >>> a[-2:-7:-2]
    7. '864'
    8. >>> a[-2::-2]
    9. '8642'

    列表

    Python 中可以通过组合一些值得到多种 复合 数据类型。
    1. >>> squares = [1, 4, 9, 16, 25]
    2. >>> squares
    3. [1, 4, 9, 16, 25]
    列表和字符串一样,支持索引,切片,步长操作。
    1. >>> students = ['zhangsan','lisi','wangwu','maliu']
    2. >>> len(students)
    3. 4
    4. >>> students[0]
    5. 'zhangsan'
    6. >>> students[1]
    7. 'lisi'
    索引长度和字符串一样,同样不能超过长度。
    1. >>> students[10]
    2. Traceback (most recent call last):
    3. File "<pyshell#136>", line 1, in <module>
    4. students[10]
    5. IndexError: list index out of range
    6. >>> students[-1]
    1. >>> students[1:3]
    2. ['lisi', 'wangwu']
    3. >>> students[::-1]
    4. ['maliu', 'wangwu', 'lisi', 'zhangsan']

    + 拼接

    使用 + 可以将list 拼接在一起
    1. >>> ['zhangsan','lisi','wangwu','maliu']+[1,2,3,4]
    2. ['zhangsan', 'lisi', 'wangwu', 'maliu', 1, 2, 3, 4]

    * 重复次数

    使用 * 更改list 中数据重复的次数;
    1. >>> students * 3
    2. ['zhangsan', 'lisi', 'wangwu', 'maliu', 'zhangsan', 'lisi', 'wangwu', 'maliu', 'zhangsan', 'lisi', 'wangwu', 'maliu']
    3. >>>

list 操作

给切片赋值也是可以的,这样甚至可以改变列表大小,或者把列表整个清空:

  1. >>> letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
  2. >>> letters
  3. ['a', 'b', 'c', 'd', 'e', 'f', 'g']
  4. >>> # replace some values
  5. >>> letters[2:5] = ['C', 'D', 'E']
  6. >>> letters
  7. ['a', 'b', 'C', 'D', 'E', 'f', 'g']
  8. >>> # now remove them
  9. >>> letters[2:5] = []
  10. >>> letters
  11. ['a', 'b', 'f', 'g']
  12. >>> # clear the list by replacing all the elements with an empty list
  13. >>> letters[:] = []
  14. >>> letters
  15. []

多维list

  1. >>> a = [[1,2,3],['a','b','c']]
  2. >>> len(a)
  3. 2
  4. >>> len(a[0])
  5. 3
  6. >>> a[0][1]
  7. 2
  8. >>> a[-1][-1]
  9. 'c'

字符串格式输出

  1. >>> user = "xiaoming"
  2. >>> age = 20
  3. >>> className = "fanmao"
  4. >>> print("my name is "+user+",my age is "+str(age)+",i am studying in "+className)
  5. my name is xiaoming,my age is 20,i am studying in fanmao

format 格式化

{} 表示参数, format() 方法中传入的参数会自动传递到 {}

  1. >>> 'my name is {}, my age is {}'.format('xiaoming',20)
  2. 'my name is xiaoming, my age is 20'

{} 中可以指定索引, 索引值不能越界。

  1. >>> 'my name is {0}, my age is {1}'.format('xiaoming',20)
  2. 'my name is xiaoming, my age is 20'
  3. >>> 'my name is {1}, my age is {1}'.format('xiaoming',20)
  4. 'my name is 20, my age is 20'
  5. >>> 'my name is {0}, my age is {0}'.format('xiaoming',20)
  6. 'my name is xiaoming, my age is xiaoming'
  7. >>> 'my name is {2}, my age is {2}'.format('xiaoming',20)
  8. Traceback (most recent call last):
  9. File "<pyshell#186>", line 1, in <module>
  10. 'my name is {2}, my age is {2}'.format('xiaoming',20)
  11. IndexError: Replacement index 2 out of range for positional args tuple

{} 中也可以指定关键字,如果指定关键字,那么运行时需要传入关键字;

  1. >>> 'my name is {name}, my age is {age}'.format(name='xiaoming',age=20)
  2. 'my name is xiaoming, my age is 20'

更多参考 https://docs.python.org/zh-cn/3/library/string.html#formatstrings

f 格式化字符串

这种语法是在Python 3.7 之后的版本中才有语法。

  1. >>> name='xiaoming'
  2. >>> age = 20
  3. >>> f'my name is {name}'
  4. 'my name is xiaoming'
  5. >>> f'my name is {name}, my age is {age}'
  6. 'my name is xiaoming, my age is 20'

总结

1.Python基础,数字,字符串,列表 - 图14