python的一些入门基础知识


python的一些入门基础知识

p1-Python的介绍

python的特点http://c.biancheng.net/view/7748.html

可移植性,各个平台能运行,运行快(基于c语言),简单易学,面向对象也能面向过程,可扩展性(能用c和c++编写,然后在python程序中使用,让运行速度更快隐藏算法),可嵌入性能把python嵌入c程序中当脚本使用,非常丰富的库(在libs中)

#输入成绩判断等级:
 
cj=float (input("请输入你的成绩:"))
if cj>=90 and cj<=100:
    print("优秀")
elif cj>=70 and cj<90:
    print("良好")
elif cj>=60 and cj<70:
    print("及格")
else:
    print("你要努力了")

p2-环境pycharm等安装

p2-Python安装

https://mp.weixin.qq.com/s/4oWzRIn0sasfrxwpli_4hw

尽量不要中文路径。

pip使用教程(下载标准库外的库)

https://www.cnblogs.com/songzhixue/p/11296720.html

也可以直接在设置-项目-python解释器中点+安装库

Pycharm安装

https://mp.weixin.qq.com/s?__biz=MzI3NzI1MzY4Mw==&mid=2247492904&idx=1&sn=0970650063d724b9c251848a2e5789ad&chksm=eb6bbe74dc1c3762518dbeb3bc2813ca8da339bfc014bf897fc2450d431f5a29343ceccfbbe4&scene=178&cur_album_id=1786174076420472834#rd

cd命令

https://jingyan.baidu.com/article/6079ad0ec0145b28ff86db88.html
输入cd..为返回上一级
输入d:为进入d盘,其他盘同理
输入cd d:1\2\3即进入d盘的1文件夹中的2文件夹中的3文件夹,主要不可以直接跳盘,比如现在在c盘,直接cd d:/1/2/3,必须先到d盘
输入dir可显示当前级有的文件和文件夹(有dir的是文件夹,文件会直接显示大小)
输入文件夹部分名字,再按tab键可补全文件名
按上数字键盘旁边的上箭头,可以出现原先输入的命令

###开发环境介绍

venv与直接建立项目的区别

venv建立项目是创造一个新的环境,库与标准库等是分开的,如当你接私活爬虫的requests库需要用2.0版本,而公司项目用的是1.0版本,如果不用venv虚拟隔开,就会冲突。

第三方库可以在文件,设置,venv项目中添加

Pycharm

快捷键

快捷键失效,可能是与其他软件冲突,或者安装了vim的插件,在设置中的插件中给vim卸载了就行了,或是是键盘被锁定,按fn+win解开

https://blog.csdn.net/cuomer/article/details/81534140

https://www.cnblogs.com/sui776265233/p/10200809.html

可以在设置里面下载设置你习惯的编辑器快捷键,本人用windows选项
crtl+/注释
ctrl+alt+l格式化代码
ctrl+d复制当前行到下一行
ctrl+y删除当前行

注释shift+/,#为注释,··· ···前后三个点多行注释。

明白venv与普通建立项目的区别,vene重新虚拟了一个环境,一般项目使用,学习阶段不用勾选,因为占用资源。

文件重命名在refactor重构里面

光标在函数上,按Ctrl再鼠标点击,可以看到函数底层定义

win+r打开运行菜单,snippingtool系统截图工具

mspaint是画图工具

在文件(file)->设置(setting)->键盘映射(keymap)中也可以查找各种快捷键

如何汉化

点击左上角file,找到设置settings 找打插件plugins,再右边的搜索框输入chinese 插件安装后,点击应用Apply,再重启软件即可

p3-基础

小知识

a = 1
b = 2
print(a,b,100)
#结果为1 2 100,print可以多个输出,而且可以直接带已知数,下面是print函数定义
print("-"*20)
#结果为二十个"-"号--------------------,别问为什么,就是这样设置的
#如果是数字和字符串做乘法运算,会将这个字符串重复多次。
print()中整形也不能与字符串拼接,字符串双引号和单引号都可以。
end="/n"即语句输出完最后加一个换行,sep=":"即每个输出间用":"隔开
如print(1,2,3,sep=":"),输出1:2:3
​```def print(self, *args, sep=' ', end='\n', file=None): # known special case of print
    """
    print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
    
    Prints the values to a stream, or to sys.stdout by default.
    Optional keyword arguments:
    file:  a file-like object (stream); defaults to the current sys.stdout.
    sep:   string inserted between values, default a space.
    end:   string appended after the last value, default a newline.
    flush: whether to forcibly flush the stream.
    """
    pass
```

变量命名

python中直接a = 100,A = ‘ABC’即可,不需要int和string什么的,会自动帮我们定义。

money = 200
type(money)#看money的类型
print(type(money))#现在是int
money = 20.2
print(type(money))#现在是float
money = '1万'
print(type(money))#现在是str字符串,在引号里面就是字符串,单引号双引号都可以。

1-分大小写
2-由字母,数字,下划线,其他的特殊符号不行,不能数字开头。
3-格式错误可运行,有灰色波浪线,可用中文,但会黄色警告。
4-不能使用关键字。
5-最好见名知意
6-小驼峰开头第一个字母全部小写如getNameByLine,但python最好用下划线,如get_name_by_line
7-大驼峰,每个字母大写GetNameByLine(在面向对象的类名中使用)

数据类型与转换

单引号双引号三个引号就是字符串类型,小数就是float型等等

三个引号可保留格式输出字符串,如鹅鹅鹅诗歌的格式都保留了

当字符串中需要有引号可以这样

message = "'abcdefg'"
message = '"abcdefg"'
但是不能message = 'ab“cd'efg”这样efg”就没有与之对应,语法出错

类型转换

输入money等于10
解决方法 print(int(money)+1000),即使money是字符也能准确转成对应的数字进行计算,结果为1010
或者解决方法 print(money+str(1000))把1000变成字符串,进行拼接,结果为100010

input输入的默认是字符串类型,赋值后变量是字符串。

字符串可以转int但必须是整数,如果是浮点数如1.11就会报错,如果是int型如字符串“1”,就会转为整型1

int型可随便转成str型

浮点数和str可以互相随便转换

布尔类型转int,true就是1,false就是0,int转布尔,除了0或者空字符串是false,其他都是true。

赋值与输出

a = b = c = 5#可
d="dddd"
a,b,c,d=5,5,5,"ddd"#可
print(a,b,c,d)
print("%daaaaaaaa      %d%d%s" %(a,b,c,d))#这时输出后a和b相差aaaaaa和多个空格,print里面怎么写就输出什么

算术运算符

除就是直接除,整除就是结果取整,如9//6结果为1

关系运算符

先比较第一个,第一个大就大,不再比较后面的,如果第一个一样就依次比较后面的

逻辑运算符

and两边一边为0,结果就为0,即一侧为假就是假,如过无0,则取后面那个(and第一个判断处理后,还需要判断后一个条件,最后判断是谁就输出谁),如a=1 b=3 print(b and a),得到的是1

or两边一个为真就是真

a = 1
b = 2
print(a or b)
#结果为1,因为第一个1为真,就不再运行判断后面b是真是假,直接输出1
a = 0
b = 2
print(a or b)
#结果为2,因为第一个是0假,再判断后面的,后面为2,就输出2
#这里是输出数字,在编辑器中已经定义了就是这样运行的
a = 1
b = 2
c = 3
print(b > a and b<3)
#结果为true,这里不是数字,而有关系运算符,就输出true或者false
print(not (b > a and b<3)) 
#结果为false,not逻辑就是取反

格式化输出

%d digit数字数位,%s string ,%f float ,%o octal八进制

age = 20
name = "陈冠希"
money = 2000000.99
print('%d岁的%s一部电影赚了%.2f元' % (age,name,money))
#注意print里面有''
print(age+"岁的"+name+"一部电影赚了"+money+"元")
#或者print(str(age)+'岁的'+name+'一部电影赚了'+str(money)+'元')
#直接字符串拼接,但是因为age和money不是字符串类型,无法拼接,所以必须先强转。(拼接必须全是字符串类型)

%.2f即保留两位小数输出

进制转换

前缀0b就是二进制,0o就是八进制,0x十六进制hexadecimal,默认十进制

十六进制是0123456789abcdef

二进制计算

1,2,4,8,16,32,64,128,256 ,二进制哪一位有相加即可快速得到十进制。

a=bin(20)
#转二进制
print(a)
a=oct(50)
#转八进制
print(a)
a=hex(150)
#转十六进制
print(a)
#binary二进制,octal八进制,hex十六进制

转十进制

二进制转八与十六

位运算结果

逻辑运算符print(5 and 20)与位运算print(5 & 20)不同,前者只要没有0与空字符取最后数值,即20

后者&运算先将5与20二进制化为0b101与0b10100,然后前后&运算得到0b100结果为4

或运算与异或运算与‘与运算’相似,规则不同而已。

运算符

1字节=1byte=8bit=三十二位

所有位运算通过转换成二进制后运算

左右移计算

难点取反运算

如何true与false参与运算,true是1,false为0,print(1+true)得到2

运算符优先级

条件语句

简单的if,else

import random  # 引入随机数包

ran = random.randint(1, 10)  # random.randint(1,10)生成1到10的整数
ran2 = random.randint(1, 10)
print(ran, ran2)
abs(ran)  # abs()是将括号里面的数字绝对值
if ran > ran2:
    print("yes")
else:
    print("no")

if-elif-else

#当所有的elif都不成立,才运行else,一个成立则跳出此判断语句再向下运行
sales = int(input("请输入你的销售金额,不同金额有不同奖励"))#注意int转换下类型,input是字符串类型,无法与整形比较
if 10000 < sales <=50000:
	print("你得到了一辆tesla")
elif 50000 < sales <=100000:
	print("你得到了两辆tesla")
elif 150000 < sales <=200000:
	print("你得到了三辆tesla")
else:
	print("你被开除了")

pass关键词

a = 1
if a==1 :
	pass
else :
	pass
#pass无意义,但可支撑这个语句,不填语句会报错,pass可当空占用

三目运算符

格式: 变量 = 值1 if 条件 else 值2 当条件成立时把 值1 赋值给变量,条件不成立时把 值2 赋值给变量,其实就是对if…else 语句的一种简写。

示例:

a = 10
b = 30
if a > b:
    c = a
else:
    c = b
print('a和b两个数的较大值是%d'%c)

if a > b:
	print("a>b")
else:
	print("a<b")

以上的 if...else 代码可以简写成以下格式:

a = 10
b = 30
c = a if a>b else b
print('a和b两个数的较大值是%d'%c)

print("a>b") if a>b else print("a<b")

循环语句

continue和break要在for,while等循环中使用,单独的if语句中不能使用break和continue.

continue结束当前循环,break跳出整个循环

# i = 0
# next1 = 0
# num = 0
#
# while i < 100:
#     next1 += 1
#     i += 1
#     num = num +next1
# print(num)

# 猜数字
# 因为不知道要猜多少次所以用死循环,然后判断加break,猜对就break跳出
# import random
#
# while True:
#     ran = random.randint(1, 10)
#     guess = int(input("欢迎来到随机猜数字游戏(1-10),请输入您猜的数字"))
#     # 记得把input转int不然永远是错
#     if guess == ran:
#         print(" 恭喜你猜对了")
#         break
#     else:
#         print("你猜错了")


# for循环
# range(10),输出0-9,默认从0开始,sep为1,不包括最后一个
# 输出0 1 2 3 4 5 6 7 8 9
# for i in range(10):
#     print(i)

# 从1开始,间隔为2,输出1 3 5 7 9
for i in range(1, 10, 2):
    print(i)

for- else 和 while -else

当没执行过break则执行else,执行过break则不执行else

for i in range(3):
	if i > 3:
	break
else:
	print("if一直不成立,没执行过break,执行此else语句")

continue和break

# 输出能不能被3整除的1-10的数
# for i in range(10):
#     if i % 3 != 0:
#         print(i)
#     else:
#         pass


# continue
for i in range(10):
    if i % 3 == 0:
        continue
    else:
        print(i)

# break跳出整个循环,注意是最近的循环,不是跳出if,continue是跳出当前的一次循环

循环嵌套

# 打出倒立直角三角形
*
**
***
****
*****
# 方法一
# n = 0
# while n <= 5:
#     print("*" * n)
#     n += 1

# 方法二
n = 1
while n <= 5:
    m = 0
    while m < n:
        print("*", end="")#取消换行,因为这里的*需要连起来
        m += 1
    print()#加换行
    n += 1

切片操作

首先把s1的hello创建到变量池,然后把s1赋予s2,那么他们两个的地址相同,自然结果也都是hello

,s3=”hello”编辑器从变量池找hello,发现已经有了,就直接赋予,这么做是为了节省空间,所以s1和s2

和s3的地址都是一样的,s4是hello1,在变量池没有,所以另外创建,地址与前三个不同。

#查看地址的函数 id()
n = 3
print(id(n))

#转绝对值的函数 abs()
n = -3
print(abs(n))

#查看类型type()
n = -3
print(type(n))

#获取ascll码ord()
n = "A"
print(ord(n))
#结果65

#获取字符串长度len()
n = "111"
print(len(n))
#结果3

字符串的截取

注意事项

1-python不用{}包含语句,而是用缩进规划范围,所以在if等语句中一定要注意缩进。

2-python里没有i++这种自增

参考资料

千峰教育python700集从入门到精通https://www.bilibili.com/video/BV1R7411F7JV

千峰python专栏公众号
```


文章作者: 瑾年
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 周东奇 !
免责声明: 本站所发布的一切内容,包括但不限于IT技术资源,网络攻防教程及相应程序等文章仅限用于学习和研究目的:不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。本站部分信息与工具来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如有侵权请邮件(jinnian770@gmail.com)与我们联系处理。
  目录