python基础笔记 03-2021-09-18

1.循环

  • 循环:让计算机做重复的事

① for in

  • for 循环的结构:
for x in List :
	<循环体>
  • for循环的作用:
    依次把list或tuple中的每个元素迭代出来
    for x in 循环就是把每个元素代入变量x,然后执行缩进块的语句

  • 经常出现的range()
    range():生成一个整数序列,但是range()返回的是可迭代对象。

#for x
names = ['Jack','Morty','Rick','Summer']
for i in names :
    print(i)
    
#将range返回的放入序列
List = list(range(0,5,1))
print(List)

#利用range计算0+1+2+……+100
sum = 0
for i in range(101) :
    sum = sum +i
print(sum)

#range返回的是可迭代的对象
List = range(5)
print(List)

#range生成整数序列
List = list(range(0,5,0.5))
print(List)
Jack
Morty
Rick
Summer
[0, 1, 2, 3, 4]
5050
range(0, 5)
Traceback (most recent call last):
  File "D:xxxxxx.py", line 21, in <module>
    List = list(range(0,5,0.5))
TypeError: 'float' object cannot be interpreted as an integer

进程已结束,退出代码为 1

② while

  • while的结构:
while <循环条件><循环体>
  • while的作用:
    while循环,只要条件满足,就不断循环,条件不满足时退出循环
#用while去计算100以内的奇数之和
sum = 0
i = 1
while i <100 :
    sum = sum + i
    i = i + 2
print(sum)
2500

进程已结束,退出代码为 0

③ break

  • 在循环中,break语句可以提前退出循环,但是要搭配if使用
#用break让求和到10就结束
n = 0
sum = 0
while n <101 :
    sum = sum+n
    n = n+1
    if n > 10 :
        break
print(sum)
55

进程已结束,退出代码为 0

④ continue

  • 跳出本轮循环,进入下一次循环,同样要搭配if使用
#用continue计算100以内奇数之和:
sum = 0
n = 0
while n <100 :
    n = n+1
    if n%2 == 0 :
        continue
    sum = sum+n
print(sum)
2500

进程已结束,退出代码为 0

2.dict和set

①dict

  • 什么是字典?
    一种快速查找方式。

  • 字典的存放原理
    key-value存储方式,在放进去的时候,必须根据key算出value的存放位置,这样,取的时候才能根据key直接拿到value。
    字典查找是通过牺牲空间来换取时间
    key必须是不可变对象,通过key计算位置的算法称为哈希算法(Hash)。一个 key得到一个value

  • 如何得到value?–key–> key是否存在的检查 ----> in or get

  • 如何放入value? ----> 初始化、key

  • 如何删除一个key? pop(key)

#放入value
dict = {'Rick' :187,'Morty' : 145 ,'Summer' : 164 , 'Jack' : 176} #初始化
print(dict)
dict['Jack'] = 175 #通过key
print(dict)

#查看value
print(dict['Rick'])
#查看key是否存在于字典
print('Rich' in dict)
print('Rick' in dict)
print('~~~~~~~~')
print(dict.get('Rick',-1))
print(dict.get('Rich',-1))

#删除一个key
dict.pop('Jack')
print(dict)
{'Rick': 187, 'Morty': 145, 'Summer': 164, 'Jack': 176}
{'Rick': 187, 'Morty': 145, 'Summer': 164, 'Jack': 175}
187
False
True
~~~~~~~~
187
-1
{'Rick': 187, 'Morty': 145, 'Summer': 164}

进程已结束,退出代码为 0

② set

  • 什么是set?
    set是一组key的集合,但不存储value。例:{1,2,3}
    key值不会重复
  • set的操作
    如何创建set? ----> set([……])
    如何添加key?----> .add(key)
    如何删除key?---->.remove(key)
#创建一个set
a = set([1,15,'a','b'])
print(a)

#往set里添加key
a.add(1) #添加一个重复的key看看
a.add(2)
a.add(3)
print(a)

#将set里的key删掉
a.remove('a')
print(a)

# 用set来做集合运算
a = set([1,2,3,4])
b = set([2,4,6,9])
print(a&b,a^b)

{1, 'a', 'b', 15}
{1, 2, 'a', 3, 'b', 15}
{1, 2, 3, 'b', 15}
{2, 4} {1, 3, 6, 9}

进程已结束,退出代码为 0

③不可变对象

  • key必须为不可变对象,例如tuple、int、float、str
key = (1,2,3) #将一个key作为元组,元组为不可变对象
dic = {'a' : 1 , key : 'yesok'}
print(dic)
{'a': 1, (1, 2, 3): 'yesok'}

进程已结束,退出代码为 0
key = [1,2,3]  #将一个key作为列表,列表为可变对象
dic = {'a' : 1 , key : 'yesok'}
print(dic)
Traceback (most recent call last):
  File "D:…….py", line 7, in <module>
    dic = {'a' : 1 , key : 'yesok'}
TypeError: unhashable type: 'list'

进程已结束,退出代码为 1
  • 如何理解python中的不可变对象?
    先看一段代码
a = list([6,2,3])
print(a)
a.sort()
print(a)

b = 'Acbn'
print(b)
b.replace('A','a')
print(b)
c = b.replace('A','a')
print(c)
[6, 2, 3]
[2, 3, 6]
Acbn
Acbn
acbn

进程已结束,退出代码为 0

不可变对象是,原储存位置存放的数据对象不会被修改

a = int(123)
a + 1
print(a)
123

进程已结束,退出代码为 0

它的原理是这样的
在这里插入图片描述

3.函数

① 调用函数

  • 调用一个函数,需要知道函数的名称和参数
    用help(<函数名>)可以查看函数的帮助信息
  • TypeError:
    传入的参数数量不对
    传入的参数类型不对 ----> 数据类型转换
#help
help(abs)
help(max)
Help on built-in function abs in module builtins:

abs(x, /)
    Return the absolute value of the argument.

Help on built-in function max in module builtins:

max(...)
    max(iterable, *[, default=obj, key=func]) -> value
    max(arg1, arg2, *args, *[, key=func]) -> value
    
    With a single iterable argument, return its biggest item. The
    default keyword-only argument specifies an object to return if
    the provided iterable is empty.
    With two or more arguments, return the largest argument.


进程已结束,退出代码为 0

#绝对值函数
print(abs(-1.36))
print(abs(2.3454))

#TypeError
print(abs(-1,9.23))

#TypeError
print(abs('a'))
1.36
2.3454

Traceback (most recent call last):
  File "D:…….py", line 8, in <module>
    print(abs(-1,9.23))
TypeError: abs() takes exactly one argument (2 given)

Traceback (most recent call last):
  File "D:…….py", line 8, in <module>
    print(abs('a'))
TypeError: bad operand type for abs(): 'str'

练习

  • 请利用Python内置的hex()函数把一个整数转换成十六进制表示的字符串:
    n1 = 255
    n2 = 1000
#用hex()来进制转换
help(hex)
print('转换开始!')
n1 = 255
n2 = 1000
print(n1,':',hex(n1),'\t',n2,':',hex(n2))
Help on built-in function hex in module builtins:

hex(number, /)
    Return the hexadecimal representation of an integer.
    
    >>> hex(12648430)
    '0xc0ffee'

转换开始!
255 : 0xff 	 1000 : 0x3e8

进程已结束,退出代码为 0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值