python第一周学习

目录

前言

一、基本数据类型

1. Number

⑴ del:删除引用对象

⑵ 数值运算

⑶ 复数

(4) 数字函数

(5) 随机数函数

(6) 三角函数

2.String

⑴输出

⑵ r

⑶ 样例

(4) 转义字符

(4) 转义字符

(5) format 格式化函数

(6) 三引号

(7) 内建函数

3.List

(1) 修改

(2) 添加

(3) 删除

(4) 脚本操作符

(5) 嵌套列表

(6) 函数

4.Tuple

(1) 访问元组

(2) 修改元组

(3) 删除元组

(4) 元组运算符

(5) 内置函数

5.Set

(1) 添加元素

(2) 移除元素

3) 计算集合元素个数

(4) 其他函数

6.Dictionary(字典)

(1) 输入输出

(2) 访问字典里的值

(3) 修改字典

(4) 删除字典元素

(5) 键的特性

(6) 内置函数

二.数据类型转换

1. 隐式类型转换

2. 显示类型转换

三.运算符

1. 算数运算符

2. 比较运算符

3. 赋值运算符

4. 位运算符

5. 逻辑运算符

6. 成员运算符

7. 身份运算符

8. 运算符优先级

三. 函数

1. 可更改与不可更改对象

(1) 不可变类型

(2) 可变类型

2. 参数

(1) 必须参数

(2) 关键字参数

(3) 默认参数

(4) 不定长参数

(5) 匿名参数

四. 遍历

1. 字典

2. 序列



前言

第一周怀着小小的期待开始接触python,属于胡小楠的python学习之路开始啦,这里是一些零零散散的笔记qwq

学习方式:看菜鸟教程,摘录重点

一、基本数据类型

        ①Number(数字) ②String(字符串) ③Tuple(元组)

        ④List(列表) ⑤Set(集合) ⑥Dictionary(字典)

1. Number

        包括int, float, bool(布尔型,True and False), complex(复数)

        ※bool是int的子类  

        ⑴ del:删除引用对象

        ⑵ 数值运算

        

>>> 5 + 4  # 加法
9
>>> 4.3 - 2 # 减法
2.3
>>> 3 * 7  # 乘法
21
>>> 2 / 4  # 除法,得到一个浮点数
0.5
>>> 2 // 4 # 除法,得到一个整数
0
>>> 17 % 3 # 取余
2
>>> 2 ** 5 # 乘方
32

⑶ 复数

可以用a+bj,或者complex(a,b)表示,ab都是浮点型

   (4) 数字函数

函数返回值
abs()返回数字的绝对值,如abs(-10) 返回 10
ceil(x)返回数字的上入整数,如math.ceil(4.1) 返回 5
exp(x)返回e的x次幂(ex),如math.exp(1) 返回2.718281828459045
fabs(x)返回数字的绝对值,如math.fabs(-10) 返回10.0
floor(x)返回数字的下舍整数,如math.floor(4.9)返回 4
log(x)如math.log(math.e)返回1.0,math.log(100,10)返回2.0
log10(x)返回以10为基数的x的对数,如math.log10(100)返回 2.0
max(x1, x2,...)返回给定参数的最大值,参数可以为序列。
min(x1, x2,...)返回给定参数的最小值,参数可以为序列。
modf(x)返回x的整数部分与小数部分,两部分的数值符号与x相同,整数部分以浮点型表示。
pow(x, y)x**y 运算后的值。
round(x [,n])返回浮点数 x 的四舍五入值,如给出 n 值,则代表舍入到小数点后的位数。其实准确的说是保留值将保留到离上一位更近的一端。
sqrt(x)返回数字x的平方根。

(5) 随机数函数

函数描述
random()随机生成下一个实数,它在[0,1)范围内。
seed([x])改变随机数生成器的种子seed。如果不了解其原理,不必特别去设定seed,Python会帮你选择seed。
shuffle(lst)将序列的所有元素随机排序
uniform(x, y)随机生成下一个实数,它在[x,y]范围内。

(6) 三角函数

函数描述
acos(x)返回x的反余弦弧度值。
asin(x)返回x的反正弦弧度值。
atan(x)返回x的反正切弧度值。
atan2(y, x)返回给定的 X 及 Y 坐标值的反正切值。
cos(x)返回x的弧度的余弦值。
hypot(x, y)返回欧几里德范数 sqrt(xx + yy)。
sin(x)返回的x弧度的正弦值。
tan(x)返回x弧度的正切值。
degrees(x)将弧度转换为角度,如degrees(math.pi/2) , 返回90.0
radians(x)将角度转换为弧度

2.String

  ⑴输出

str = 'helloworld'

print (str)          # 输出字符串
print (str[0:-1])    # 输出第一个到倒数第二个的所有字符
print (str[0])       # 输出字符串第一个字符
print (str[2:5])     # 输出从第三个开始到第五个的字符
print (str[2:])      # 输出从第三个开始的后的所有字符
print (str * 2)      # 输出字符串两次,也可以写成 print (2 * str)
print (str + "TEST") # 连接字符串

   

⑵ r

反斜杠可以用来转义,使用r可以让反斜杠不发生转义。

⑶ 样例

字符串有点类似数组

>>> word = 'Python'
>>> print(word[0], word[5])
P n
>>> print(word[-1], word[-6])
n P

(4) 转义字符

(4) 转义字符

转义字符描述实例
\(在行尾时)续行符
>>> print("line1 \

... line2 \

... line3")
line1 line2 line3
>>> 

\\反斜杠符号
>>> print("\\")

\

\'单引号
\"双引号
\a响铃执行后电脑有响声
\b退格(Backspace)
\000
\n换行
\v纵向制表符
\t横向制表符
\r回车,将 \r 后面的内容移到字符串开头,并逐一替换开头部分的字符,直至将 \r 后面的内容完全替换完成。
\f换页
\yyy八进制数,y 代表 0~7 的字符,例如:\012 代表换行。
\xyy十六进制数,以 \x 开头,y 代表的字符,例如:\x0a 代表换行
\other其它的字符以普通格式输出

(5) format 格式化函数

 (Python format 格式化函数 | 菜鸟教程)

(6) 三引号

python三引号允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符

(7) 内建函数

函数方法
len(string)返回字符串长度
lower()转换字符串中所有大写字符为小写
max(str)返回字符串 str 中最大的字母
min(str)返回字符串 str 中最小的字母

3.List

        (1) 修改

a = [1, 2, 3, 4, 5]
a[2:4] = []     #将三四位清除

print(a)

        

(2) 添加

list1 = ['Google', 'Runoob', 'Taobao']
list1.append('Baidu')

(3) 删除

list = ['Google', 'Runoob', 1997, 2000]

print ("原始列表 : ", list)
del list[2]
print ("删除第三个元素 : ", list)

(4) 脚本操作符

Python 表达式结果描述
len([1, 2, 3])3长度
[1, 2, 3] + [4, 5, 6][1, 2, 3, 4, 5, 6]组合
['Hi!'] * 4['Hi!', 'Hi!', 'Hi!', 'Hi!']重复
3 in [1, 2, 3]True元素是否存在于列表中
for x in [1, 2, 3]: print(x, end=" ")1 2 3迭代

(5) 嵌套列表

>>>a = ['a', 'b', 'c']
>>> n = [1, 2, 3]
>>> x = [a, n]
>>> x
[['a', 'b', 'c'], [1, 2, 3]]
>>> x[0]
['a', 'b', 'c']
>>> x[0][1]
'b'

(6) 函数

函数描述
len(list)列表元素个数
max(list)返回列表元素最大值
min(list)返回列表元素最小值
list(seq)将元组转换为列表

4.Tuple

元素不能修改,只有一个元素时需要在元素后加逗号, 否则括号会被当作运算符使用

>>> tup1 = (50)
>>> type(tup1)     # 不加逗号,类型为整型
<class 'int'>

>>> tup1 = (50,)
>>> type(tup1)     # 加上逗号,类型为元组
<class 'tuple'>

(1) 访问元组

也类似于数组,可表示为tup[0] tup[1:3]

(2) 修改元组

元组中的元素值是不允许修改的,但我们可以对元组进行连接组合 tup1 = (12, 34.56) tup2 = ('abc', 'xyz')

<span style="background-color:var(--color-canvas-subtle)"><span style="color:initial"><code># 以下修改元组元素操作是非法的。
# tup1[0] = 100

# 创建一个新的元组
tup3 = tup1 + tup2
print (tup3)
</code></span></span>

输出结果:

(12, 34.56, 'abc', 'xyz')

(3) 删除元组

元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组

del tup

(4) 元组运算符

与列表的脚本操作符用法相同

(5) 内置函数

与列表函数基本一致,最后一个改为tuple函数(将列表转换为元组)

5.Set

集合(set)是一个无序的不重复元素序列,可以使用大括号 { } 或者 set() 函数创建集合

进行成员的关系测试和删除重复元素

sites = {1, 2, 3, 4, 3}

if 2 in sites:          #成员关系测试
    print('在集合中')
else:
    print('不在')

print(sites)        #会删除重复元素

a = set('1357')
b = set('2345')

print(a & b)        #交集
print(a - b)        #差集
print(a | b)        #并集
print(a ^ b)        #ab不同时存在的元素

(1) 添加元素

语法:s.add() 或 s.updata()(参数可以是列表,元组,字典等)

<span style="background-color:var(--color-canvas-subtle)"><span style="color:initial"><code>thisset = set(("Google", "Runoob", "Taobao"))
>>> thisset.add("Facebook")
>>> print(thisset)
{'Taobao', 'Facebook', 'Google', 'Runoob'}

>>> thisset = set(("Google", "Runoob", "Taobao"))
>>> thisset.update({1,3})
>>> print(thisset)
{1, 3, 'Google', 'Taobao', 'Runoob'}
>>> thisset.update([1,4],[5,6])  
>>> print(thisset)
{1, 3, 4, 5, 6, 'Google', 'Taobao', 'Runoob'}</code></span></span>

(2) 移除元素

  1. 语法:s.remove() 将元素 x 从集合 s 中移除,如果元素不存在,则会发生错误

  2. 语法:s.discard( x ) 如果元素不存在,不会发生错误

  3. 语法:s.pop( x )随机删除集合中的一个元素

    <span style="background-color:var(--color-canvas-subtle)"><span style="color:initial"><code> thisset = set(("Google", "Runoob", "Taobao", "Facebook"))
     x = thisset.pop()
    
     print(x)
     print(thisset)
    </code></span></span>

输出结果:

Google {'Runoob', 'Facebook', 'Taobao'}

3) 计算集合元素个数

语法:len(s)

(4) 其他函数

clear() 移除集合中的所有元素

copy() 拷贝一个集合

6.Dictionary(字典)

字典是一种映射类型,字典用 { } 标识,它是一个无序的 键(key) : 值(value) 的集合。

键(key)必须使用不可变类型。

在同一个字典中,键(key)必须是唯一的

(1) 输入输出

dict = {}
dict['one'] = "1 - 略略"
dict[2]     = "2 - 略略"

tinydict = {'name': 'hello','code':1, 'site': 'www.hhh.com'}


print (dict['one'])       # 输出键为 'one' 的值
print (dict[2])           # 输出键为 2 的值
print (tinydict)          # 输出完整的字典
print (tinydict.keys())   # 输出所有键
print (tinydict.values()) # 输出所有值

输出结果: 

1 - 略略
2 - 略略
{'name': 'hello', 'code': 1, 'site': 'www.hhh.com'}
dict_keys(['name', 'code', 'site'])
dict_values(['hello', 1, 'www.hhh.com'])

(2) 访问字典里的值

tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}

print ("tinydict['Name']: ", tinydict['Name'])
print ("tinydict['Age']: ", tinydict['Age'])

输出结果:

tinydict['Name']: Runoob

tinydict['Age']: 7

(3) 修改字典

向字典添加新内容的方法是增加新的键/值对,修改或删除已有键/值对

tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}

tinydict['Age'] = 8               # 更新 Age
tinydict['School'] = "菜鸟教程"  # 添加信息


print ("tinydict['Age']: ", tinydict['Age'])
print ("tinydict['School']: ", tinydict['School'])

输出结果:

tinydict['Age']: 8

tinydict['School']: 菜鸟教程

(4) 删除字典元素

能删单一的元素也能清空字典

tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}

del tinydict['Name'] # 删除键 'Name'
tinydict.clear()     # 清空字典
del tinydict         # 删除字典

(5) 键的特性

1)不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住

2)键必须不可变,所以可以用数字,字符串或元组充当,而用列表就不行

(6) 内置函数

函数描述
len(dict)计算字典元素个数,即键的总数
str(dict)输出字典,可以打印的字符串表示
type(variable)返回输入的变量类型,如果变量是字典就返回字典类型

二.数据类型转换

1. 隐式类型转换

对两种不同类型的数据进行运算,较低的据类型(整数)就会转换为较高数据类型(浮点数)以避免数据丢失

2. 显示类型转换

类似于强制类型转换

三.运算符

1. 算数运算符

运算符描述
/除法
//取整
%取余
**

2. 比较运算符

        返回ture或false

3. 赋值运算符

        +=、-=之类

4. 位运算符

运算符名称描述
&按位与运算符参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0
|按位或运算符只要对应的二个二进位有一个为1时,结果位就为1
^按位异或运算符当两对应的二进位相异时,结果为1
~按位取反运算符对数据的每个二进制位取反,即把1变为0,把0变为1。~x 类似于 -x-1
<<左移动运算符运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0
>>右移动运算符把">>"左边的运算数的各二进位全部右移若干位,">>"右边的数指定移动的位数
a = 60            # 60 = 0011 1100 
b = 13            # 13 = 0000 1101 
c = 0

c = a & b        # 12 = 0000 1100
print ("1 - c 的值为:", c)

c = a | b        # 61 = 0011 1101 
print ("2 - c 的值为:", c)

c = a ^ b        # 49 = 0011 0001
print ("3 - c 的值为:", c)

c = ~a           # -61 = 1100 0011
print ("4 - c 的值为:", c)

c = a << 2       # 240 = 1111 0000
print ("5 - c 的值为:", c)

c = a >> 2       # 15 = 0000 1111
print ("6 - c 的值为:", c)

输出结果:

1 - c 的值为: 12
2 - c 的值为: 61
3 - c 的值为: 49
4 - c 的值为: -61
5 - c 的值为: 240
6 - c 的值为: 15

5. 逻辑运算符

假设a = 10、b = 20

运算符逻辑表达式描述例子
andx and y布尔"与" - 如果 x 为 False,x and y 返回 x 的值,否则返回 y 的计算值。(a and b) 返回 20。
orx or y布尔"或" - 如果 x 是 True,它返回 x 的值,否则它返回 y 的计算值。(a or b) 返回 10。
notnot x布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。not(a and b) 返回 False

6. 成员运算符

可用于字符串,列表和元组

运算符描述实例
in如果在指定的序列中找到值返回 True,否则返回 False。x 在 y 序列中 , 如果 x 在 y 序列中返回 True
not in如果在指定的序列中没有找到值返回 True,否则返回 False。x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True
a = 10
list = [1, 2, 3, 4, 5 ]

if ( a in list ):
print ("1 - 变量 a 在给定的列表中 list 中")
else:
print ("1 - 变量 a 不在给定的列表中 list 中")

7. 身份运算符

运算符描述实例
isis 是判断两个标识符是不是引用自一个对象x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False
is notis not 是判断两个标识符是不是引用自不同对象x is not y , 类似 id(a) != id(b)。如果引用的不是同一个对象则返回结果 True,否则返回 False

is 与 == 区别:

is 用于判断两个变量引用对象是否为同一个, == 用于判断引用变量的值是否相等。

>>>a = [1, 2, 3]
>>> b = a
>>> b is a 
True
>>> b == a
True
>>> b = a[:]
>>> b is a
False
>>> b == a
True

8. 运算符优先级

  1. 优先级最高的为指数(**)
  2. and的优先级高于or

三. 函数

1. 可更改与不可更改对象

(1) 不可变类型

变量赋值 a=5 后再赋值 a=10,这里实际是新生成一个 int 值对象 10,再让 a 指向它,而 5 被丢弃,不是改变 a 的值,相当于新生成了 a。

(2) 可变类型

变量赋值 la=[1,2,3,4] 后再赋值 la[2]=5 则是将 list la 的第三个元素值更改,本身la没有动,只是其内部的一部分值被修改了。

def change(a, b):
    a[2] = 5
    b = 5

a = [1, 2, 3, 4]
b = 3
change(a, b)
print(a, b)

输出结果:

[1, 2, 5, 4]

3

2. 参数

(1) 必须参数

(2) 关键字参数

def a( str ):
print (str) #打印字符串
return

a( str = "hu")

(3) 默认参数

调用函数时,如果没有传递参数,则会使用默认参数。以下实例中如果没有传入 age 参数

def printinfo( name, age = 35 ):
"打印任何传入的字符串"
print ("名字: ", name)
print ("年龄: ", age)
return

#调用printinfo函数
printinfo( age=50, name="runoob" )
print ("------------------------")
printinfo( name="runoob" )

输出结果:

名字: runoob

年龄: 50

--------------------------------------------

名字: runoob 年龄: 35


(4) 不定长参数

加了星号 * 的参数会以元组(tuple)的形式导入,存放所有未命名的变量参数

def printinfo( arg1, *vartuple ):
"打印任何传入的参数"
print ("输出: ")
print (arg1)
print (vartuple)

# 调用printinfo 函数
printinfo( 70, 60, 50 )

输出结果:

输出:

70

(60, 50)

加了两个星号 ** 的参数会以字典的形式导入

(5) 匿名参数

lambda 函数的语法只包含一个语句

sum = lambda arg1, arg2: arg1 + arg2

# 调用sum函数
print ("相加后的值为 : ", sum( 10, 20 ))
print ("相加后的值为 : ", sum( 20, 20 ))

四. 遍历

1. 字典

关键字和对应的值可以使用 items() 方法同时解读出来

knights = {'gallahad': 'the pure', 'robin': 'the brave'}
>>> for k, v in knights.items():
...     print(k, v)
...
gallahad the pure
robin the brave

2. 序列

在序列中遍历时,索引位置和对应值可以使用 enumerate() 函数同时得到

>>> for i, v in enumerate(['tic', 'tac', 'toe']):
...     print(i, v)
...
0 tic
1 tac
2 toe

同时遍历两个或更多的序列,可以使用 zip() 组合

>>> questions = ['name', 'quest', 'favorite color']
>>> answers = ['lancelot', 'the holy grail', 'blue']
>>> for q, a in zip(questions, answers):
...     print('What is your {0}?  It is {1}.'.format(q, a))
...
What is your name?  It is lancelot.
What is your quest?  It is the holy grail.
What is your favorite color?  It is blue.

要反向遍历一个序列,首先指定这个序列,然后调用 reversed() 函数

>>> for i in reversed(range(1, 10, 2)):
...     print(i)
...
9
7
5
3
1

要按顺序遍历一个序列,使用 sorted() 函数返回一个已排序的序列,并不修改原值

>>> basket = ['apple', 'orange', 'apple', 'pear', 'orange', 'banana']
>>> for f in sorted(set(basket)):
...     print(f)
...
apple
banana
orange
pear


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值