搭配
python环境 + 编辑器pycharm/sublime/geany/vscode
python环境:原装环境 / anaconda(集成python环境)
解释型语言和编译型语言
解释型语言: 需要用到编译器,python.exe php.exe 跨平台性,有环境就能运行
编译型语言: 需要先对源码进行编译,预编译->编译->汇编->链接 编译之后再运行就不需要再重新编译
注释
单行注释 #
多行注释 ''' ''' """ """
pycharm快捷键
快速注释 ctrl+/
快速复制 ctrl+D
快速删除 ctrl+Y
快速调到某行 ctrl+G
跳到开头 ctrl+[
跳到结尾 ctrl+]
print打印函数
print(123)
print('hello world')
变量
name = 'xiaoming'
print(name)
print('标识、内存地址', id(name)) #id函数,输出name这个变量在内存中的地址
print('类型', type(name)) #type函数,输出name这个变量的类型
变量的多次赋值
name = 'xiaoming'
print(id(name))
name = 'xiaohong'
print(id(name)) #变量的值改变,内存地址会随之改变
整数类型
n1 = 90
n2 = -70
n3 = 0
print(n1, type(n1))
print(n2, type(n2))
print(n3, type(n3))
整数可以表示为二进制,八进制,十进制,十六进制 默认十进制
print('十进制', 123)
print('二进制', 0b010101010) #二进制数0b开头
print('八进制', 0o123) #八进制数0o开头
print('十六进制', 0xABC) #十六进制数0x开头
输出的时候会转换成十进制
浮点类型
a = 3.1415926
print(a, type(a))
n1 = 1.1
n2 = 2.2
n3 = 2.1
print(n1 + n2) # 浮点数相加可能不精确,python的bug
print(n1 + n3)
怎么解决浮点数相加问题呢?
from decimal import Decimal
print(Decimal('1.1') + Decimal('2.2'))
布尔类型
f1 = True #注意大写
f2 = False #注意大写
print(f1, type(f1))
print(f2, type(f2))
布尔类型可以做整数计算
print(f1 + 1)
print(f2 + 1)
字符串类型
str1 = '阿珍爱上了阿强' #可以用单引号
str2 = "阿珍爱上了阿强" #可以用双引号
str3 = '''阿珍爱上了阿强 #也可用三引号,三引号可以直接换行,但单双引号换行会有连接符
在一个寂寞的夜晚'''
str4 = """阿珍爱上了阿强
在一个寂寞的夜晚""" #也可以用三个双引号
print(str1,type(str1))
print(str2,type(str2))
print(str3,type(str3))
print(str4,type(str4))
格式化输出
print('%s' % '你好')
print('%d' % 100)
print('%o' % 100) # 输出100的8进制数
print('%x' % 100) # 输出100的16进制
print('%f' % 1.1) # 浮点数,默认保留6位小数
print('%.3f' % 1.1) # 浮点数,设置保留3位小数
print('%e' % 100000) # 科学记数法
print('%.3e' % 11111.11111) # 取3位小数,科学记数法
print('%g' % 1111.1111) # 默认6位有效数字(一共,包括小数点前)
print('%.7g' % 1111.1111) # 设置7位有效数字(同上)
format() 把字符串当做一个模板,通过传入的参数进行格式化
前面两个花括号对应后面的的字符串
print('{} {}'.format('hello', 'world')) # 不带索引,默认hello索引为0,world索引为1,注意format前面有一个.
print('{1} {0}'.format('hello', 'world')) # 带数字索引,world输出在hello前面
print('{1} {0} {1}'.format('hello', 'world')) # 带数字索引
print('{b} {a}'.format(a='hello', b='world')) # 带字符索引
print(f'{变量名}')
a = 10
b = 20
print(f'{a} {b}')
print(f'我今年{b}岁')
转义字符
\n 换行 newline
print('hello\nworld')
\t 水平制表符 table
print('hello\tworld')
print('helloo\tworld')
print('hellooo\tworld')
print('helloooo\tworld')
每四个字符当做一个范围,没满就帮你补空格,满了就再给你四个格
\r 将光标的位置回退到\r的位置 return
print('hello\rworld')
常用在显示倒计时
import time
for i in range(10):
print("\r离程序退出还剩%s秒" % (9-i), end="")
time.sleep(1) #因为程序运行很快,所以需要休眠语句
\b 退格 backspace
print('hello\bworld') //把前一个字符吞掉,hello的o没咯
\\ -> \ \' -> ' \" -> "
print('老师说:\'大家好\'') //想输出\ ' " 前面要再加一个\
原字符,不希望字符串中的转义字符起作用,在字符串前面加上r或R
print(r'hello\nwolrd') #\n不会解码
print()输出函数
print()函数,默认结尾会加上一个\n换行符——> end='\n' ,同时sep=' '表示输出多个参数的时候,中间会有空格,end 和 sep我们可以自己更改,但注意!最好不要再builtins.py文件里面修改,因为会成为全局变量,最好是针对具体的print函数使用
a = "人生苦短"
b = "我学Python"
print(a, end='-')
print(b)
print(a, b, sep='!')
input()输入函数
注意:输入函数接收到的数据都是str类型,字符串
name = input("your name: ")
print(name)
print(type(name))
数据类型转换
str() 将其它类型转换成str类型
a = 10
b = 10.8
c = False
print(str(a), str(b), str(c))
print(type(str(a)), type(str(b)), type(str(c)))
int() 将其他数据类型转换成int类型
a = '10'
b = 'abc' # 如果不符合数字的格式,字符串无法转换为证书
c = 12.3 # 保留整数部分
d = True
e = '12.3' # 报错
print(int(a), int(c), int(d))
float() 将其它数据类型转换成float类型
a = '10'
b = 10
c = True
d = '12.3'
print(float(a), float(b), float(c), float(d))
print(type(repr(1))) # 将表达式转换为字符串
print(eval("1+1")) # 将字符串中的代码进行解析
print(chr(65)) # chr()将一个整数转换成一个unicode字符
print(ord('A')) # ord()将一个字符转换为它的ASCII整数值
进制转换
print(hex(10)) # hex()转换为十六进制
print(oct(8)) # oct()转换为八进制
print(bin(2)) # bin()转换为二进制
算术运算符:() + - * / %
print(4 ** 3) #输出4的3次方
print(9 // 5) #取整
复合赋值运算符 += -= /= .....
c = 0
c += 1 # c = c + 1
print(c)
比较运算符:结果为布尔类型 True False
print(1 == '1') # python没有全等和非全等的概念
逻辑运算符 与或非 and or not
print(1 == 2 and 2 == 2)
print(1 == 2 or 2 == 2)
print(not 1 == 1)