python寒假入门学习

时间:2020-02-16 13:07:14   收藏:0   阅读:226

自学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('xxxxxxxxxx')

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

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

技术分享图片

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

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

技术分享图片

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

技术分享图片

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

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

技术分享图片

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

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!