0、python?
简单的编程语言
python环境搭建:
①、开发环境:vscode、sublime、pycharm......
②、运行环境:cpython解释器
python如何写代码?
①、在终端上的命令行上写,可以是我们cmd的中终端,代码没有办法保存
②、写在python文件中,以 .py为结尾的文件,代码可以保存
在终端上运行python
- 我们可以在自己电脑下方的搜索栏输入cmd,敲下python就可以写命令行。
- 我们输入存储python文件夹的路径找到python文件并运行,有点麻烦,我们可以打开存放python文件的文件夹,然后清空路径,输入cmd,敲下回车键,就能进入在当下文件夹路径下的终端,敲下python 文件名.py运行我们的python文件。
我们还可以在文件夹中新建txt文件,将代码写入其中后,修改其文件后缀为py(xx.py),然后也可以通过终端运行。
0.1、python注释
单行注释前加个#
"""
多行注释
"""
'''
多行注释
'''
选中后 Ctrl + /
0.2、清屏
#清屏 import os
# os.system("cls")
一、基础及数据类型
变量?
#变量:在程序运行时,可以变化的量 -------具有名称的内存空间
#常量:在程序运行时,不可以发生变化的量
#Java:变量类型 变量=变量值 int age =10
#python:变量名=变量值
a,b=10,2 #python可以同时赋多个值
a,b=b,a #互换
变量命名规范
1、使用大小写字母数字与下划线
2、不能以数字开头
3、不能使用保留字与关键字 比如说:print
4、不能使用python全局中已经用过的
5、建议标识符名称具有意义 age(好认)
6、建议使用_或者小驼峰命名法:
①find_usergroup_by_username
②findUsergroupByUsername
7、特殊:类:建议使用大驼峰命名:FindUsergroupByUsername
8、python没有常量关键字,变量名称全部大写用来表示常量 PI=3.1415926
#dir:显示对象(模块)中存在的方法
1、敲下 import builtins 与 dir(builtins)查看全局保留字
2、 敲下 import keyword 与 dir(keyword),最后敲keyword.kwlist查看关键字
基本数据类型
python的数据类型
基本数据类型
数字类型===》整型int、浮点型float 、复数(a+b)
布尔类型===》true false 、判断条件是否成立
字符串类型===》str ‘xxx’ 、 '''xxx'''
复合数据类型
字典 列表 数组 元组==》所有的对象
输入函数input(“提示语“)默认返回字符串类型
type():用来检测变量的数据类型
#ord()函数获取字符的整数表示
#chr ()将编码转换为相应的符号
转义字符
#\n换行 、\':单引号、\":双引号、 \b:退格、 \\:单反斜杠、 \r:回车
注意双引号和单引号的运用关系
二、数据类型转化
自动类型转换:整型,浮点型,布尔型:非0为真,0为假
强制类型转换:int()、float()、str()
0.1+0.2 !=0.3?
电脑只能存储整型,所以计算机在存储浮点型的时候会进行一些运算,所以会发生精度缺失
练习:
用户输入两个整数,算出两数之和;
三、字符串格式化方式及运算符
注意:字符串之间用加号“+”连起来,起到拼接字符串的效果,字符串只能和字符串拼接,c原来是整数,所以第一次输出失败 了
此时a,b,c都是字符串
print("%s+%s=%s"%(a,b,c))
print(f"{a}+{b}={c},这是最简单的算法了")
print("{0}+{1}={2},这是最简单的算法了".format(a,b,c))
四、运算符
常见运算符
+ 、- 、* 、/ 、//(整除) 、% (求余数)、x**y(x的y次方)
关系运算符
< 、> 、<= 、>= 、==、 !=、python2.0之前的’不等于‘ <>
逻辑运算符
and(俩真才真) or(一真则真,反之则假) not
所属运算符
in 、not in
is运算符:判断内存地址是否相同
赋值运算符
=、 += 、-= 、*=、 /= 、//= 、%= 、**=
python不存在自增或自减,像C++一样:a++,这样是错的
python只有a+=1,a=a+1
三目运算符
// 数据类型 变量名称 = 条件判断 ? 表达式A : 表达式B;
age=int(input("enter age="))
n= "adault.." if age > 18 else"unadualt.."
print(n)
位运算符
电脑? 数学建模 记录数据 ==》处理数据
半导体材料==》从一边到了一边是通电的,反向不通电
一个二极管,对应一个二进制的数(0、1)--1bit
1byte=8个二极管=8bit ------0--255
0的ASCII码 =48(0011 0000)
1k=1024字节
1M=1024K
1G=1024M
基于byte的运算10+11,逢二进一
0000 1010 =10
0000 1011 =11
------------------
0001 0101 =21
负数
计算机的内存通常都是由8位的字节构成的,所以一个二进制数要存储在很多个的8位的内存中,而通常都是最左边的位为符号位,0表示正,1表示负数。数据位只是表示该数据的绝对值。从-128~127,共256位
-2^7~2^7
符号位 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
符号位:1bit | 数据位:7bit |
为了解决负数问题,提出原码,反码,补码。
原码:一个整数,按照绝对值大小转换成的二进制数,称为原码。
反码:符号位不变,其余位取反操作指
补码:反码加1称为补码。
以整数-3为例
1、先取1的原码: 1000 0011
2、得反码: 1111 1100
3、得补码: 1111 1011
负数用其的补码去运算
2+(-3)
0000 0010
+ 1111 1011
-----------------
1111 1111 补码
1111 1110 反码
1000 0001 原码 -1
或运算:x|y 两假才假(两个0才是0,有1都是1)
2|3
0000 0010
0000 0011
---------------
0000 0011 3
与运算:x&y 俩真才真,一假则假 (两个1才是1,有个0都是0)
10&11
0000 1010
0000 1011
------------ ---
0000 1010 10
抑或运算: x^y 相反为真 (有0有1才是1)
10^11
0000 1010
0000 1011
--------------
0000 0001 1
按位取反运算:连带符号位
-10
0000 1010------》1111 0101补码------》 1111 0100反码 -------》1000 1011 11
<< 所有二进制位朝左移n位 ,例如12<<1 ,所有二进制位朝左移1位,增长2^n倍 =24
>>所有二进制位朝右移n位 ,例如12>>1 ,所有二进制位朝右移1位,减少2^n =6
无符号位右移