资讯专栏INFORMATION COLUMN

Python0基础(中)——期末不挂科

seal_de / 2680人阅读

摘要:结束索引,默认为字符串的长度。列表这块注意索引中的列表更像中数组的超集从头开始从尾开始常用操作插入删除还是一样的知道函数容易做不知道函数也能做索引循环判断自己造一个出来就行了列表允许修改增加方法用于在列表末尾添加新的对象。

前言

本来我是不想肝了,但是看到了这个,

还有这几个白嫖怪,

虽然我不知道你是谁,但是还是感谢,今天熬个夜来再肝一篇,秋名山路很长,也希望我们能一起走下去!

python入门的进阶知识——运算

运算符

这个知识难亦或是不难,看你想要学到什么程度了,如果是期末不挂科的话,靠上一篇就已经够了,但是绩点嘛,还是要学一点的

位运算符

几乎是每个语言都是一样的,所以说我还是想啰嗦一下,当你开始学算法的时候,会发现这个东西是真的快,天下武功,唯快不破

&按位与 相应位为1,否则为0
|按位或 相应位有一个1,就为1
^按位异或 当俩对应的二进制位相异时,结果为一,
~按位取反,对于每个二进制位取反操作
<< 左移 运算数的各二进位全部左移若干位,高位丢弃,低位补0。
|>> 右移 把">>"左边的运算数的各二进位全部右移若干

a = 60  # 60 = 0011 1100b = 13  # 13 = 0000 1101c = 0c = a & b  # 12 = 0000 1100print("1 - c 的值为:", c)c = a | b  # 61 = 0011 1101print("2 - c 的值为:", c)c = a ^ b  # 49 = 0011 0001print("3 - c 的值为:", c)c = ~a  # -61 = 1100 0011print("4 - c 的值为:", c)c = a << 2  # 240 = 1111 0000print("5 - c 的值为:", c)c = a >> 2  # 15 = 0000 1111print("6 - c 的值为:", c)

逻辑运算符

and or not
3个,按照字面意思来理解

成员运算符

in x 在 y 序列中 , 如果 x 在 y 序列中返回 True。
not in x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True

这个还是有用的,在c++中要多带带定义函数

list1 = [1,2,3,4,5]x=1y=10if(x in list1):    print("a in list")if(y not in list1):    print("b not in list")

身份运算符

这个涉及到了对象,在期末编程解决问题的时候不用也能解决,

运算符的优先级问题

这个的考察形式有点像当年奥赛初赛的考察形式,就是阅读程序写答案的题,不能用电脑啊!,所以说要记忆

字符串加强

不得不说字符串的函数太多了,和c++还是有区别的,比c++多,使用也有些许不同,我根据题库来挑几个常用的,不要全记了,实在不会的话,暴力来解决,循环字符串,if判断,来达到自己的需求

合并,索引基本操作上一篇已经写过了,所以这一篇我们来说一点比较有用的东西,全学完可能有点困难,毕竟我们的目标是:不挂科

/ 转义:注意’/n’换行操作
r’/n’输出**/n.**
具体定义如下:
原始字符串 - 原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。

a = "Hello"b = "Python" print("a + b 输出结果:", a + b)print("a * 2 输出结果:", a * 2)print("a[1] 输出结果:", a[1])print("a[1:4] 输出结果:", a[1:4]) if( "H" in a) :    print("H 在变量 a 中")else :    print("H 不在变量 a 中") if( "M" not in a) :    print("M 不在变量 a 中")else :    print("M 在变量 a 中") print (r"/n")print (R"/n")

难点

格式化字符串,有点像强制转换的意思,了解即可,写题中可以不使用
常用的格式化字符串符号有以下几个

%c:格式化字符及其ASCII码
%s: 格式化字符串
%d:格式化整数
%o: 格式化无符号八进制数
%x:格式化无符号十六进制数

题外话:在 Python 中,字符串格式化使用与 C 中 printf 函数一样的语法。

print ("我叫 %s 今年 %d 岁!" % ("小明", 10))

内置函数

?多啊,怎么记?我就说一下我记的几个吧,感觉这几个还经常使用

find 查找:检测字符串中是否包含子字符串 str
语法:str.find(str, beg=0, end=len(string))
其中:str – 指定检索的字符串
beg – 开始索引,默认为0。
end – 结束索引,默认为字符串的长度。

也就是说我们可以这样写

str1 = "Runoob example....wow!!!"str2 = "exam"; print (str1.find(str2))print (str1.find(str2, 5))print (str1.find(str2, 10))

通过len()函数返回字符串的长度

text="python"len(text)


当你上面的都没有记住时,请记住replace这个函数 替换

s = "abc12321cba" print(s.replace("a", ""))

也就相当于一个删除操作,将s中的a都替换为" "
该字符串在Python中是不可变的,因此此函数将返回一个新字符串,而原始字符串将保持不变。

列表

这块注意索引,python中的列表更像c中数组的超集
从头开始

从尾开始

常用操作

插入,删除,还是一样的知道函数容易做,不知道函数也能做,索引+循环+判断,自己造一个出来就行了,列表允许修改

增加:append() 方法用于在列表末尾添加新的对象。

list = ["Google", "Runoob", 1997, 2000] print ("第三个元素为 : ", list[2])list[2] = 2001print ("更新后的第三个元素为 : ", list[2]) list1 = ["Google", "Runoob", "Taobao"]list1.append("Baidu")print ("更新后的列表 : ", list1)

删除:del 语句

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


如果你一个函数都不记的话也不是不行,然后我们循环来写

#for 循环内部使用变量 in 列表name_list = ["zhangsan","lisi","wangwu"]for name in name_list:    # 循环内部针对列表元素进行操作     print(name)

元组

元组与列表最大的不同,就是元组不允许修改,在python中提供了一个函数可以将元组修改为列表

list() 方法用于将元组或字符串转换为列表。
相当于一个强制转换

#元组转换列表aTuple = (123, "Google", "Runoob", "Taobao")list1 = list(aTuple)print ("列表元素 : ", list1)#字符串转换列表str="Hello World"list2=list(str)print ("列表元素 : ", list2)

选看:元组为什么不能修改

我们从内存的角度来看

>>> tup = ("r", "u", "n", "o", "o", "b")>>> tup[0] = "g"     # 不支持修改元素Traceback (most recent call last):  File "", line 1, in <module>TypeError: "tuple" object does not support item assignment>>> id(tup)     # 查看内存地址4440687904>>> tup = (1,2,3)>>> id(tup)4441088800    # 内存地址不一样了

重新赋值的元组 tup,绑定到新的对象了,不是修改了原来的对象

字典和集合

考察的也不多,出来基本上没有编程大题,所以秉承着不挂科的原则,我就不说了,我们来看条件语句+循环语句,这个才是期末考试的重点

条件控制

这个应该是高中学过的吧?

if a:	print(a)elif b:	print(b)else:	print(c)

如果a为true,打印a
如果a为false,但是b为true,打印b
如果a,b都为false,则打印c
记得加 : 使用缩进来区分


简单的猜数字案例

number = 7guess = -1print("数字猜谜游戏!")while guess != number:    guess = int(input("请输入你猜的数字:"))     if guess == number:        print("恭喜,你猜对了!")    elif guess < number:        print("猜的数字小了...")    elif guess > number:        print("猜的数字大了...")

if 嵌套

在嵌套 if 语句中,可以把 if…elif…else 结构放在另外一个 if…elif…else 结构中。

num=int(input("输入一个数字:"))if num%2==0:    if num%3==0:        print ("你输入的数字可以整除 2 和 3")    else:        print ("你输入的数字可以整除 2,但不能整除 3")else:    if num%3==0:        print ("你输入的数字可以整除 3,但不能整除 2")    else:        print  ("你输入的数字不能整除 2 和 3")

循环语句

格式:while 判断条件:
执行语句……

值得注意的一点是python中没有do……while……循环

例题:

n = 100 sum = 0counter = 1while counter <= n:    sum = sum + counter    counter += 1 print("1 到 %d 之和为: %d" % (n,sum))

还记得我高中最开始学循环的时候,有的算法题目不会,提交的时候给它整一个死循环,来个玉石俱焚

var = 1while var == 1 :  # 表达式永远为 true	print(var)

for语句:
for 循环可以遍历任何可迭代对象,如一个列表或者一个字符串

languages = ["C", "C++", "Perl", "Python"]for x in languages:    print (x)


当你入门的时候,应该用过这样一个函数,range(),目的就是生成一个数列

for i in range(5,9)#区间	print(i)for i in range(5)	print(i)for i in range(0,10,3)#间隔3,也可以说是步长为3	print(i)

break和continue和else

break

n = 5while n > 0:    n -= 1    if n == 2:        break    print(n)print("循环结束。")

continue

n = 5while n > 0:    n -= 1    if n == 2:        continue    print(n)print("循环结束。")

例子:
循环字符串 Runoob,碰到字母 o 跳过输出

for letter in "Runoob":     # 第一个实例   if letter == "o":        # 字母为 o 时跳过输出      continue   print ("当前字母 :", letter) var = 10                    # 第二个实例while var > 0:                 var = var -1   if var == 5:             # 变量为 5 时跳过输出      continue   print ("当前变量值 :", var)print ("Good bye!")

对比之下,可以变成检测字符串中是否有一个字符,也就是我们,上面记忆的函数,所以我才敢说字符串函数不用全部记忆

else:循环语句可以有 else 子句,它在穷尽列表(以for循环)或条件变为 false (以while循环)导致循环终止时被执行,但循环被 break 终止时不执行。

for n in range(2, 10):    for x in range(2, n):        if n % x == 0:            print(n, "等于", x, "*", n//x)            break    else:        # 循环中没有找到元素        print(n, " 是质数")

pass语句:这个是为了程序的完整性而出现的,没有实际的意义

for letter in "Runoob":    if letter == "o":      pass      print ("执行 pass 块")   print ("当前字母 :", letter) print ("Good bye!")

最后

还是老样子,原创不易,求个三连,感谢各位的支持,我是那个陪你头秃,陪你变强的小码民!

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/124517.html

相关文章

  • Python0基础(上)——期末挂科

    摘要:易于维护的成功在于它的源代码是相当容易维护的。可移植基于其开放源代码的特性,已经被移植也就是使其工作到许多平台。集合集合是由一个或数个形态各异的大小整体组成的,构成集合的事物或对象称作元素或是成员。基本功能是进行成员关系测试和删除重复元素。 ...

    Ajian 评论0 收藏0
  • 跨专业学编程 | 矿物加工专业也能拿到年薪16W+的研发offer ?

    摘要:对于没有任何计算机基础的我,面临的挑战很多非相关专业,去找计算机专业工作会有很多障碍。学习阶段刚开始是学习语言,由于计算机专业大一就开始上课,所以我就去晚上去蹭语言的选修课,选修课老师讲的比较浅,这也对我这个没有一点基础的人比较友好。 说起跨专业,可能有好多同学都望而生畏,总觉得别人计算机专业的学生学了三年才找工作,我跨专业还怎么比得过别人? 其实不是这样的,觉得自己不行其实都是你还没...

    helloworldcoding 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<