01
# 编程,编程语言
# 编程:用代码写一个程序 编程语言:用那种语法规则编写程序
# 编译型语言、解释性语言
# 编译型:执行效率高,平台依赖性较高 c语言
# 解释型:执行效率相对较低,可移植性相对较高
# python缺点:1、运行速度慢
# 2、不能去加密代码。
02.简单的python代码
print("hello,python",end="")
print("hi")
03.输入
input("请输入您的名字:")
04.缩进要求
for i in range(10):
print(i)
# 不要边用空格键边用tab键盘
05.注释
# 单行注释 #
# 多行注释
'''
我是多行注释
'''
"""
我同样是多行注释
"""
06.结束符
print("hello, i love you");print("hello, i love you")
print("hello, i love you")
07.变量
# 程序运行时,存储数据的盒子
# 变量名 = 变量值
# 代码复用,让代码更加灵活
uname = input("请输入您的名字:")
print(uname)
# type() 返回变量类型的
print(type(uname))
age = 21
print(type(age))
08.标识符命名规则
09.数据类型
# 基本数据类型
# 数值型
# 整型
# 浮点
# 字符串
print(type('zhangsan'))
print(type("zhangsan"))
print(type('''zhangsan'''))
# 布尔类型 True False
# None
# NaN
# 复合数据类型
- 数据类型转换
# a = int(input("请输入数字"))
# b = int(input("请输入数字"))
# print(type(a))
# print(a+b)
# int() float()
# a = float(input("请输入数字"))
# b = float(input("请输入数字"))
# print(type(a))
# print(a+b)
# print("zhangsan:"+19) 字符串和数字拼接会报错
print("zhangsan:"+str(19))
# 自动类型转换
a = 10
b = 3.14
print(a+b)
c = True #True 转换成1
print(a+c)
print("#"*10)
- 转义字符
print("I'm zhangsan")
print('I\'m zhangsan')
第二次笔记
回顾:
字符串格式化(5):
1、+
2、print("",变量名)
3、print("%d,%d"%(变量名1,变量名))
4、print("{}+{}={}".format(变量1,……))
5、print(f"mcks{变量名}")
运算符:
1、算术运算符: + - * / // %
2、关系运算符(比较) ==
3、逻辑运算符 and or not
4、所属 :in not in
5、is 内存地址是否相同
6、赋值运算符 =
a = 1
a += 4 a = a + 4
python中没有自增自减
()提高优先级
字符串对象: dir()
位运算:基于二进制的运算 ---计算机最小单位:位bit
计算机的底层基于位运算的
&
|
^ 异或
~ 按位取反
>>
<<
字节1byte = 8bit
10+11
0000 1010
0000 1011
---------------
0001 0101
正数相加的问题,负数?
8位的首位作为符号位 1代表负数 0代表正数
-3+2
1000 0011
0000 0010
-------------
1000 0101 -5(出大事了)
为了解决负数运算问题------原码、反码、补码三个概念
原码 数值的标准的二进制位
反码 符号位不变,其余位取反
补码 反码+1
原码 反码 补码
-3 1000 0011 1111 1100 1111 1101
2 0000 0010
------------------------------------------
1000 0001 1111 1110 1111 1111---
正数不存在反码、补码,计算机底层的运算是基于补码
-3+4
-3 1000 0011 1111 1100 1111 1101
4 0000 0100
------------------------------------------
0000 0001
位运算:
&:两真则真,一假则假
8&9: 0000 1000
& 0000 1001
---------------
0000 1000
|:两假为假,一真则真
8|9:
0000 1000
0000 1001 |
---------------
0000 1001
^:相反为真,相同为假
8^9:
0000 1000
0000 1001 ^
---------------
0000 0001
~:按位取反 包含符号位
~2:0000 0010 ---->1111 1101(补码-1)---->1111 1100(反码符号位不变,其余为按位取反)--->1000 0011(原码)
>>
8>>2: 0000 1000
0000 0010 2 右移:除以2的n次方(右移的位)
<<
8<<2: 0000 1000 左移:乘以2的n次方
0010 0000
三元运算符: 条件成立时的代码 if 判断 else 条件不成立时的代码
程序结构:
顺序结构
选择结构
循环结构
选择结构:
if关键字
最简单的if语句:
if 表达式:
代码1
索引:正向索引:下标从0开始
负数索引,下标从-1开始
字符串的切片:sname[start:end:step] [ )
sname:要操作的序列名称
start:表示切片的开始位置(包含自身),如果不去指定的话,默认从0开始。
end:表示切片的结束位置(不包含自身),如果不指定的话,默认是序列的长度
step:表示切片的步长,如果省略,默认为1
s[:] 切片切的是整个字符串
nanhang:步长为2,nnag 0 1 2 3 4 5 6
s[::-1]:字符串反转