python寒假入门学习

自学python入门课程作为补充。博客记作学习笔记,便于回顾复习

前一周已经在实验楼学习了linux入门课程,所以python部分的linux入门直接跳过,从挑战一:创建代码文件开始

挑战目标:在 /home/shiyanlou 目录下创建 shiyanlou.py 文件;在文件中输入以下内容print('hello shiyanlou');进入 Code 目录,新建名为 test 的目录,然后将刚创建的 /home/shiyanlou/shiyanlou.py 文件复制到目录 /home/shiyanlou/Code/test 中

实验代码

touch shiyanlou.py 
cd /home/shiyanlou/Code //进入Code目录
mkdir test //创建test目录
vim shiyanlou.py //进入vim编辑器,编辑shiyanlou.py文件
cp shiyanlou.py /home/shiyanlou/Code/test //复制文件到test目录下

认识python

输入python3进入python的交互环境

  • print函数
print('xxxxxxxxxx')

引号可以是单引号,也可以是双引号,但必须是英文符号,且前后一致

使用三引号'''可打印多行内容

  • 赋值

等号在Python里的意思是「赋值符」,代表把右边的数据赋值给左边

变量的右边,甚至可以是另一个变量

  • input

主要作用是让用户输入某个内容并接收它

  • 字符串

包裹字符串的引号必须前后对应,成对出现。如果字符串中还有引号,如 He said "Today's weather is good.",直接写 print('He said "Today's weather is good."') 就会报错

正确的写法是,在 Today 后面加入 转义符 \ ;转义符 \ 还有一个常用形式是和 n 连起来用, \n 代表换行符

  • format()

format() 是专门用来 格式化字符串 的函数,它最常用的功能就是「插入数据」和「数字格式化」

1.插入数据


2.数字格式化

只保留两位小数

print("{:.2f}".format(3.1415926))
  • 注释

'#' 常被用作写单行注释,# 号后的内容会被忽略,不会被当作代码处理

  • 算术运算符
运算符 名称 描述
/ x 除以 y
% 取模 返回除法的余数
** 返回 x 的 y 次幂
// 取整 除返回商的整数部分(向下取整)
  • 比较运算符
运算符 描述
== 等于:比较对象是否相等
!= 不等于:比较两个对象是否不相等

|大于:返回 x 是否大于 y
<|小于:返回 x 是否小于 y
=|大于等于:返回 x 是否大于等于 y
<=|小于等于:返回 x 是否小于等于 y

在 Python 和大多数高级语言中:一个等号代表赋值符,两个等号才代表数学意义上的“相等”

  • 逻辑运算符
运算符 逻辑 表达式结果
and(逻辑与) a and b 当 a、b 都为 True 时,返回 True;否则返回 False
or(逻辑或) a or b 当 a、b 任意一个为 True,就返回 True
not(逻辑非) not a 当 a 为 True 时,返回 False;反之亦然

在逻辑运算中,数字 0 代表 False,1 代表 True

  • 创建文件

我使用vim编辑器创建文件,在终端中输入vim test1.py,这条命令为:用 gedit 打开 test.py 文件;如果该文件不存在,则创建它并打开

直接使用 Python3 解释器执行 test.py
python3 test1.py
文件中的内容直接显示在终端上

  • 流程控制

if 语句最简单的构成是这样的:

if xxxxx:
    xxxxxxx

注意第 1 行末尾的冒号 : 和第 2 行的 4 个空格缩进

除此之外,Python 还加入了 elif,即 else if,方便执行更复杂的判断

if 看到卖西瓜的:    #当满足条件时,执行内部的代码;如不满足,则跳到下一个语句块
    买 2 个
elif 看到卖苹果的:
    买 4 个
elif 看到卖香蕉的:
    买 5 根
else:   # 如果上面的条件都不满足,则执行 else 内部的代码
    不买

在一个判断中,还可以嵌套另一套判断

if 亚洲人:
    if 中国人:
        老乡
    else:
        亚裔非中国人
else:
    外国人

还可以使用 and 和 or 进行综合控制

if 那A and b:   # A 和 B必须同时满足才能执行
    可以xxxx
else:
    不可以xxxx
  • 循环

for循环(适用于已知循环次数的循环,所以后面跟的是次数或区间,到达指定次数就停止)

注意:第 1 行末尾的冒号 ':' 和第 2 行的 4 个空格缩进

range() 函数

如果需要处理一组数字列表,并且数字列表满足一定的规律,可以使用 Python 的内置函数 range()

使用 range(x) 函数,可以生成一个从 0 到 x-1 的整数序列,比如打印 0 到 9 的数

for a in range(10):
    print(a)

还可以用 range(a,b) 取某个区间的数,比如要打印 1 到 10

for a in range(1,11):
    print(a)

range(a,b) 包头不包尾,尾数要 + 1

小练习:用 for 循环帮依萍写出“书桓走的第 n 天,想他”,一直写到第 10 天。

while循环(后面跟的是一个条件,只要条件满足,这个循环就会一直进行下去)

打印 1 到 10 的数字

a = 1
while a <= 10:  ##同样注意冒号和语句块缩进
    print(a)
    a = a + 1

break表示停止当前循环,如

for a in range(10):
    if a == 5:
        break
    print(a)

程序会打印 0 到 4 之间的数字

continue 表示跳过当前循环轮次,去执行下一轮循环,如

a = 0
while a < 10:
    a = a + 1
    if a == 5:
        continue
    print(a)

这次打印 1 到 10 的数,但不打印 5

挑战二:逢 7 跳过

7 的倍数,可以理解为除以 7 余数为 0 的数

个位上是 7 的数,即除以 10 余 7 的数

十位上是 7 的数,即除以 10 取整数为 7 的数

 for a in range(1,101):
       if a%7==0 or a%10==7 or a//10==7:
           continue
       print(a)  
  • 列表

添加元素 45 到列表末尾

>>> a = [23, 45, 1, -3434, 43624356, 234]
>>> a.append(45) #在列表尾部添加元素
>>> a
[23, 45, 1, -3434, 43624356, 234, 45]

insert 在列表的任何位置插入元素

>>> a.insert(0, 1) # 在列表索引 0 位置添加元素 1
>>> a
[1, 23, 45, 1, -3434, 43624356, 234, 45]
>>> a.insert(0, 111) # 在列表索引 0 位置添加元素 111
>>> a
[111, 1, 23, 45, 1, -3434, 43624356, 234, 45]

count(s) 会返回列表元素中 s 的数量
remove(xx) 删除列表中的任意元素
reverse() 反序排列整个列表
extend() 将一个列表添加到另一个列表后

>>> b = [45, 56, 90]
>>> a.extend(b) # 添加 b 的元素而不是 b 本身
>>> a
[45, 43624356, -3434, 1, 45, 23, 1, 111, 45, 56, 90]

sort() 给列表内元素排序

>>> a.sort()
>>> a
[-3434, 1, 1, 23, 45, 45, 45, 56, 90, 111, 43624356]

pop() 弹出最后一个元素

>>> a = [1, 2, 3, 4, 5, 6]
>>> a
[1, 2, 3, 4, 5, 6]
>>> a.pop()
6
>>> a.pop()
5
>>> a.pop()
4
>>> a.pop()
3
>>> a
[1, 2]

pop(0) 弹出第一个元素

>>> a = [1, 2, 3, 4, 5]
>>> a.append(1)
>>> a
[1, 2, 3, 4, 5, 1]
>>> a.pop(0)
1
>>> a.pop(0)
2
>>> a
[3, 4, 5, 1]

列表推导式由包含一个表达式的中括号组成,表达式后面跟随一个 for 子句,之后可以有零或多个 for 或 if 子句。结果是一个列表,由表达式依据其后面的 for 和 if 子句上下文计算而来的结果构成

squares = [x**2 for x in range(10)] # 等价与下面的列表构建方式
>>> squares = []
>>> for x in range(10):
...     squares.append(x**2)
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

多个 for 语句

>>> [(x, y) for x in [1,2,3] for y in [3,1,4] if x != y]
[(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]
  • 元组

元组是由数个逗号分割的值组成

>>> a = 'Fedora', 'ShiYanLou', 'Kubuntu', 'Pardus'
>>> a
('Fedora', 'ShiYanLou', 'Kubuntu', 'Pardus')
>>> a[1]
'ShiYanLou'

元组是不可变类型,这意味着不能在元组内删除或添加或编辑任何值。否则将会出错

>>> a = (1, 2, 3, 4)
>>> del a[0]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object doesn't support item deletion

要创建只含有一个元素的元组,在值后面跟一个逗号

>>> a = (123)
>>> a
123
>>> type(a) # 查看a的数据类型
<class 'int'>
>>> a = (123, )
>>> b = 321,
>>> a
(123,)
>>> b
(321,)
>>> type(a)
<class 'tuple'>
>>> type(b)
<class 'tuple'>
  • 集合

大括号或 set() 函数可以用来创建集合。注意:想要创建空集合,你必须使用 set() 而不是 {}

>>> basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}
>>> print(basket)                      # 你可以看到重复的元素被去除
{'orange', 'banana', 'pear', 'apple'}
>>> 'orange' in basket
True
>>> 'crabgrass' in basket
False

>>> # 演示对两个单词中的字母进行集合操作
...
>>> a = set('abracadabra')
>>> b = set('alacazam')
>>> a                                  # a 去重后的字母
{'a', 'r', 'b', 'c', 'd'}
>>> a - b                              # a 有而 b 没有的字母
{'r', 'd', 'b'}
>>> a | b                              # 存在于 a 或 b 的字母
{'a', 'c', 'r', 'd', 'b', 'm', 'z', 'l'}
>>> a & b                              # a 和 b 都有的字母
{'a', 'c'}
>>> a ^ b                              # 存在于 a 或 b 但不同时存在的字母
{'r', 'd', 'b', 'm', 'z', 'l'}
  • 字符串

可以通过几种不同的方式表示字符串

>>> s = "I am Chinese"
>>> s
'I am Chinese'
>>> s = 'I am Chinese'
>>> s = "Here is a line \
... split in two lines"
>>> s
'Here is a line split in two lines'
>>> s = "Here is a line \n split in two lines"
>>> s
'Here is a line \n split in two lines'
>>> print(s)
Here is a line
 split in two lines
  • 函数

使用关键字 def 来定义一个函数,语法描述如下所示

def 函数名(参数):
    语句1
    语句2

例如

>>> def sum(a, b):
...     return a + b

第二行有个 return 关键字,把 a + b 的值返回给调用者,必须像下面这样调用这个函数

>>> res = sum(234234, 34453546464)
>>> res
34453780698L
原文地址:https://www.cnblogs.com/yumiao9111/p/12286865.html