python常识
IDLE是一个python的shell,“shell”是指文本交互。
缩进使用tab
tab也可以提示要输入的信息
python变量不需要声明
python是没有大括号的 用tab缩进来表示大括号
运行中输入IDLE
小程序:new file新建窗口
中文符号是不能用的,系统也会给出提示,不用担心打错符号的问题
单引号和双引号是一样用的
bif是指python的
内置函数,如打印,输入等等
dir(__builtins__)显示所有的内置函数
help()可以查找内置函数的说明
print('I love fishc.com ' * 5) 表示打印5次
显示上一条指令是alt+P,可以不停地按P
int(把所有都变成整形)
变量名不能以数字开头
变量区分大小写 要注意检查
输入任何一个量就是隐含了‘print’的意思
打印‘’要先使用\作为转义字符
在前面添加r会让所有的\失去转义作用
注意不能在文末尾使用\
if 条件 else 这里没有用到括号的
while 不停地循环
and替代c语言中的&
random模块,注意模块不是内置函数哦
引用模块前写
import random
zhi=random.randint(1,10)
打印多个使用逗号隔开
i=8
print(' '*i,1)
只要大于0就是真值哦
i = 10
while i:
Python3 中,一行可以书写多个语句吗
可以,语句之间用分号隔开即可
Python3 中,一个语句可以分成多行书写吗
>>> 3 > 4 and \
1 < 2
>>> ( 3 > 4 and
1 < 2 )
科学计数法的写法非常简略
1500=1.5e3
0.0005=5e-4
字符串没法强行转换成整形
但是数值可以转换成字符串,这也不一定,要分情况的,比如这个变量已经被赋值过就又不可以了
验证是不是这个类型(不知道这个函数有什么实际的用途)
>>> isinstance(60,int)
True
查看变量的类型
>>> type(60)
<class 'int'>
temp=input('type in') 这句话在任何情况下返回的都将会是字符串,因为这个函数的返回值始终是字符串
判断是否属于要求要用这个函数
temp=input('type in')
a=temp.isdigit()
print(a)
返回的是ture和false
s 为字符串
s.isalnum() 所有字符都是数字或者字母,为真返回 True,否则返回 False。
s.isalpha() 所有字符都是字母,为真返回 True,否则返回 False。
s.isdigit() 所有字符都是数字,为真返回 True,否则返回 False。带小数点的是false
s.islower() 所有字符都是小写,为真返回 True,否则返回 False。
s.isupper() 所有字符都是大写,为真返回 True,否则返回 False。
s.istitle() 所有单词都是首字母大写,为真返回 True,否则返回 False。
s.isspace() 所有字符都是空白字符,为真返回 True,否则返回 False。
a+=3是a=a+3
加减乘除都可以
//是地板除法,意思是整数除以整数等于整数,浮点亦然
次幂的表示法是3**
2就是3的平方
先乘除后加减是和小学老师教的是一样的,负号的优先级最大,负号是不用写括号的
and or not 逻辑操作符 在其他语言中这样连用都是非法的,在python中是合法的【 ts】
floor除法原则是一个很申请的东西,反正看不懂
0. Python 的 floor 除法现在使用 “//” 实现,那 3.0 // 2.0 您目测会显示什么内容呢?
如果回答是 1.5 那么很遗憾,您受到 C 语言的影响比较大,Python 这里会义无反顾地执行 floor 除法原则,答案是:1.0
短路逻辑:3 and 4 == 4,而 3 or 4 == 3。
int()可以去掉小数点哦
“if year/400 == int(year/400)”
elif就是c中的elseif
悬挂else:if和else的对应关系错误
三元操作符,如果if为假去else后面的值,要不然不变
assert为假时报错,用于设置断点,其他时候应该都没什么用~~
三元表达式是可以这样嵌套的
x,y,z=4,5,6
small=z if (x>=y>z)or(y>x>z) else x if x<=y else y
print(small)
python中的赋值机制非常神奇
x, y, z = z, y, x
这样都行
for循环比C语言更灵活一些
for 目标 in 表达式
循环体
range生成一个列表
list(range)才能生成数组
range(1,10,2),表示1 3 5 7 9
while中可以设置break的
continue 在while和for中使用,跳过本次循环
判断包含关系我只知道字符串的其他的没有试过
while 1:
temp=input('请输入密码')
mima='123'
if temp in mima:
print('包含')
range(10)=range(0,10)=0到9
降低程序复杂度的基本思路:尽量减少函数嵌套使用,能用变量就用变量
找各位数的技巧:使用循环,每次都找最后一位
c语言中的for(i=0;i<10;i++)和python中的for i in range(0,10)是一样的
在c语言中所有数组的元素必须是同一个类型,但是python中的变量是没有类型的??所以python中是没有数组的,它只有列表,列表中的元素可以鱼龙混杂
member=[1,2,3.4]创建列表
添加列表元素(在最后面)
menber.append()z
member.extend([])可以加多个元素。可以用加号,但是这样操作并不是很规范。
***append和extend在处理(x,y)这样的每个元素都有两个元素的时候,使用前者系统会自动认为每个都添加一个,使用后者会添加成两个,同样的句子list1.extend((x,y))换成前者会有完全不一样的结果
member.insert(1,'新值')表示加在第1个元素后面
从列表中删除元素member.remove(元素具体是什么)
求列表的长度
len()
打印\n等必须要加单引号
列表中的指定元素是member[第几个]
member.index(i)可以求它是第几个
del member[第几个]
menber.pop(第几个)也是删除但是有返回值,可以赋值到其他变量,相当于“弹出”了
分片
menber[1:4]查找第一到3个元素,查找后原数组是不变的,注意最后一个数字要往前减1哦
mem=list(range(0,10))
list是一个函数,可以将range放到数组中
分片的步长:虽然感觉用到的机会肯定不会很多
mem=list(range(0,10))
print(mem[1:6:2])
结果是1,3,5
列表的乘法就是往后复制这么多份
列表中的列表使用in是找不到元素的
dir(list)可以找到和列表有关的所有的内置方法
list6.sort可以对list6排序,用各种各样的方法排序都可以,在数据结构里面有
逆向排序
>>> 列表名.reverse()
列表推导式(List comprehensions)是一个很申请的工具,直接使用for语句,不用append,这绝对是python特有的语法了
>>> list1 = [x**2 for x in range(10)]
>>> list1
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
嵌套列表的用法:
请问如何将下边这个列表的'小甲鱼'修改为'小鱿鱼'?
list1 = [1, [1, 2, ['小甲鱼']], 3, 5, 8, 13, 18]
list1[1][2][0] = '小鱿鱼'
列表是中括号,元组是小括号
有逗号的就是元组,h = x, y, z 这样就定义了一个元组了
元组和列表的使用:在希望数据永远不会被改变的时候,使用元组
generator:生成器,每次访问得到的值都不一样