Python/Pycharm基础教程及python常用快捷键
python常用快捷键
- ctrl+alt+l:代码格式化
- alt+shift+f10:运行代码文件
- shift+f10:运行编辑器
- ctrl+/:注释行(可注释和取消注释选中所在的行)
- ctrl+d:复制行(复制光标所在行的内容到下一行,复制所选中内容到后面)
- shift+enter:跳到下一行
- ctrl+backspace:删除光标前一个词组
- ctrl+deleted:删除光标后一个词组
- alt+shift+上下箭头:整行移动
- alt+左右箭头:切换程序
- ctrl+tab:切换窗口
- ctrl+w:选中光标所在的词组
- ctrl+alt+g:将下一行与本行合成一行
- ctrl+shift+j:将下一行与本行合成一行
- ctrl+enter:跳到下一行并换行
- shift+f6:重命名文件
- ctrl+f4:关闭当前窗口
- ctrl+shift+][:选中光标到行末尾/行开头的内容
一、输入函数input和输出函数print
- # 输入函数input:input的函数类型为字符串类型str
- a = input('请输入一个数:a = ',)
- b = int(float(input('请输入一个小数:b = ')))
- c = float(input('请输入一个整数:c = '))
- d = str(input('请输入一个字符串:d = '))
- # 输出函数print
- print('a = ',a,type(a))
- print('b = ',b,type(b))
- print('c = ',c,type(c))
- print('d = ',d,type(d))
二、注释
- # 单行注释
- '''我是
- 多行
- 注释'''
- """我是
- 多行
- 注释"""
三、输出文件
- #将数据输出到文件中
- out=open('D:/PyCharm/python练习1/输出文件.txt','a+')
- print('作者:吴通才\n时间:2022.01.21',file=out)
- out.close()
四、打印
- # 打印
- name = '张三'
- age = '20'
- print('name的属性:\nid:',id(name),'\n数据类型:',type(name),'\n值:',name)
- print('age的属性:\nid:',id(age),'\n数据类型:',type(age),'\n值:',age)
- print('张三今年',age,'岁')
- print('张三今年'+age+'岁') #符号”+“是连接符号
五、数据类型转换
- # 数据类型转换
- a = 1
- b = 2.3
- c = '你好!'
- d = "python"
- print(type(a),type(b),type(c),type(d)) #数据类型
- print(float(a)) #int转float
- print(str(a)) #int转str
- print(int(b)) #float转int
六、运算符
# 运算符的优先级:()>算术运算>位运算>比较运算>布尔运算>赋值运算
- # 算术运算符:**,*,/,//,%,+,-(优先级从左到右)
- print('————————算术运算————————')
- print(2**3) #幂运算:2^3=8
- print(2*3) #乘法运算:2*3=6
- print(10/2) #除法运算:10/2=5
- print(10//3) #整除运算:10//3=3(3.333取整)
- print(10//-3) #整出运算:10//-3=-4(10/-3=-3.3向下取整得-4)
- print(-10//3) #整出运算:-10//3=-4(-10/3=-3.3向下取整得-4)
- print(10%3) #取余运算:10%3=1(10/3=3余1)
- print(10%-3) #取余运算:10/-3=-3.3,向下取整得-4,10%-3=10-(-3)*(-4)=-2
- print(-10%3) #取余运算:-10/3=-3.3,向下取整得-4,-10%3=-10-3*(-4)=2
- print(10+10) #加法运算
- print(100-10) #减法运算
- # 位运算:<<,>>,&,|(优先级从左到右)
print('————————————————————位运算————————————————————')
print(2&3) #位与运算:相当于与运算,2和3的二进制为010和011,对齐作与运算得010,转为十进制是2
print(2|3) #位或运算:相当于或运算,2和3的二进制为010和011,对齐作或运算得011,转为十进制是3
print(2<<1,2<<3) #左移位运算=十进制数*2^移动次数:2<<1=2*2^1=4,2<<3=2*2^3=16
print(2>>1,2>>2) #右移位运算=十进制数/2^移动次数:2>>1=2/2^1=1,2>>2=2/2^2=0(注意:最小为0)
# 比较运算:>,<,>=,<=,==,!=,is,is not(优先级从左到右)
print('————————————————————比较运算————————————————————') #True表示真的,False表示假的
print(10>5,10>=5,10<5,10<=5) #10>5是True,10>=5是True,10<5是False,10<=5是False
a = 1;b = 2;
print(a==b,a!=b) #==和!=:对象的value(值)比较,a=b为False,a!=b为True
print('a的id(地址):',id(a),'\nb的id(地址):',id(b))
print(a is b,a is not b) #is和is not:对象的id比较
- # 布尔运算:and,or,not,in,not in(优先级从左到右,结果只有True和False)
- print('————————布尔运算—————————')
- print('————————— 布尔值为False的对象 ————————')
- print('False为',bool(False))
- print('None为',bool(None))
- print('数值0为',bool(0))
- print('空字符串为',bool(''))
- print('空列表为',bool([]))
- print('空列表为',bool(list()))
- print('空元组为',bool(()))
- print('空元组为',bool(tuple()))
- print('空字典为',bool({}))
- print('空字典为',bool(dict()))
- print('空集合为',bool(set()))
- a,b = 1,2
- # and同并且,全真才真,一假则假
- print('————————and运算———————————')
- print(a==1 and b==2) #True and True --> True
- print(a==1 and b!=2) #True and False --> False
- print(a!=1 and b==2) #False and True --> False
- print(a!=1 and b!=2) #False and False --> False
- # or同或者,全假才假,一真则真
- print('————————or运算———————')
- print(a==1 and b==2) #True and True --> True
- print(a==1 and b!=2) #True and False --> True
- print(a!=1 and b==2) #False and True --> True
- print(a!=1 and b!=2) #False and False --> False
- # not同非
- print('——————not运算———————')
- m = True;n = False;
- print(not(m),not(n))
- print('————————————————————in和not in运算————————————————————')
- print('py' in 'python') #py在python里面——>True
- print('n' not in 'python') #n不在python里面——>False
- # 赋值运算:=,+=,-=,*=,/=,//=,%=
- print('——— 赋值运算:=,+=,-=,*=,/=,//=,%= ————')
- x = 1;print(x)
- a1 = a2 = a3 = 2;print(a1,a2,a3) #链式赋值
- b1,b2,b3 = 10,20,30;print(b1,b2,b3) #系列解包赋值
- c1 = 1;c1 += 1;print(c1) # +=运算符
- c2 = 10;c2 -= 2;print(c2) # -=运算符
- c3 = 2;c3 *= 3;print(c3) # *=运算符
- c4 = 6;c4 /= 2;print(c4) # /=运算符
- c5 = 7;c5 //= 2;print(c5) # //=运算符
- c6 = 7;c6 %= 2;print(c6) # %=运算符
七、条件表达式
- #使用条件表达式进行比较:格式:a if y else b,如果满足y则执行a,否则执行b
- num1 = 2
- num2 = 5
- print(str(num1) + '大于等于' + str(num2) if num1 >= num2 else str(num1) + '小于' + str(num2))
八、循环语句的用法及函数的用法
- print('——————————— for-in循环 ——————————')
- ## for-in循环
- for f in 'python':print(f)
- for f1 in range(5):print(f1)
- for _ in range(3):print('python') # ”_“可以表示自变量
- print('—————————— break函数 ——————————')
- ## break函数:满足就退出当前循环,进入下一个循环
- for b in range(3):
- key = input('请输入密码:')
- if key=='8888':
- print('密码输入正确')
- break #满足条件,退出当前的if循环,进入下一个else循环
- else:
- print('密码输入不正确')
- print('————————— continue函数 ——————————')
- ## continue函数:满足就退出当前循环,不在执行
- for b in range(3):
- key = input('请输入密码:')
- if key!='8888':
- print('密码输入不正确')
- continue #满足条件,重复执行当前的if循环
- else:
- print('密码输入正确')
- print('———————— else语句 ————————')
- ## else语句可与if、while、for语句搭配使用
- print('———————— for-else ————————')
- for e1 in range(3):
- k1 = input('请输入密码:')
- if k1!='8888':
- print('密码输入不正确')
- continue #满足条件,重复执行当前的if循环
- else:
- print('密码输入正确')
- else:
- print('您已经输入三次错误密码')
- print('———————— while-else —————————')
- e2 = 0
- while e2 < 3:
- k2 = input('请输入密码:')
- if k2 == '8888':
- print('密码输入正确')
- break #满足条件,退出当前的if循环
- else:
- print('密码输入不正确')
- e2 += 1
- else:
- print('您已经输入三次错误密码')
- print('——————— if-else ——————————')
- e3 = int(input('请输入100以内的数:'))
- if e3 < 50:
- k3 = input('恭喜你,获得一次输入密码的机会,请输入你的密码:')
- if k3 == '8888':
- print('密码输入正确')
- else:
- print('密码输入不正确')
- else:
- print('抱歉,你没有获得输入密码的机会')
- print('—————————— range函数 ——————————')
- ## range函数:生成指定序列
- # 第一种创建方法:range(stop),创建一个[0,stop)之间,步长为1的序列
- L1 = range(10);print(L1);print(list(L1))
- # 第二种创建方法:range(start,stop),创建一个[start,stop)之间,步长为1的序列
- L2 = range(3,10);print(L2);print(list(L2))
- # 第三种创建方法:range(start,stop,step),创建一个[start,stop)之间,步长为step的序列
- L3 = range(1,20,2);print(L3);print(list(L3))
- # 用in和not in判断序列中是否存在指定数
- print(3 in L1,3 not in L1)
- print('a' in L1,'a' not in L1)
- print('—————————— pass函数 ——————————')
- ## pass函数:不做任何操作的占位符
- p1 = 1;p2 = 2;
- if p1 >= p2:pass
- else:pass
九、列表的创建
- # 方法一:使用方括号[]
- L = [1,2,3,'a','name',"b","你好,mt"]
- print(L)
- # 方法二:使用内置函数list()
- L1 = list([1,2,3,'a','name',"b","你好,mt"])
- print(L1)
- L2 = list(range(5))
- print(L2)
十、列表的查徐
- ### 列表的查询:列表元素的序号从0开始
- print('—————————单个元素查询———————————')
- ## 单个元素的查询
- # 方法一:查询列表中指定元素的位置
- L = list(range(5,11))
- print('原列表L',L)
- L1 = L.index(7) #查询元素为7所处的序号
- print('位置',L1) #输出方法一
- print(L.index(7)) #输出方法二
- # 方法二:查询列表中指定位置的元素
- LL = list(['a','b','c'])
- print('原列表LL',LL)
- L2 = LL[2] #查询序号为2的元素
- print('元素',L2) #输出方法一
- print(LL[2]) #输出方法二
- ## 多个元素的查询:格式:列表名[起点:终点:步长]——>列表名[start:stop:step]
- print('—————————多个元素查询—————————————')
- L3 = [1,2,3,4,5,6]
- print(L3[1:4:1],'\t',L3[1:4:2])
- print(L3[-4:-1:1]) #有负号则序号从右以-1开始数,此时的范围是[-4,-1),步长为1
- print(L3[0:-2:1]) #有负号则序号从右以-1开始数,此时-2对应的正序为4,则范围是[0,4),步长为1
- # 省略某个属性
- print(L3[::]) #默认起点,则序号为0;默认终点,则为列表长度;默认步长,则为1
- print(L3[:4:2]) #默认起点为0
- print(L3[2::2]) #默认终点
- print(L3[::2]) #默认起点和终点
- #等等……
十一、列表的添加
- L = ['a',1]
- LL = [6,'a']
- print('原列表L=',L,'\n列表LL=',LL)
- # 方法一:append函数,在列表末尾添加对象元素,对象可以是列表、元素
- L.append(3);print('添加元素后,',L) #添加元素后, L=['a', 1, 3]
- L.append(LL);print('添加列表LL后',L) #添加列表LL后 L=['a', 1, 3, [6, 'a']]
- # 方法二:extend函数,在列表末尾添加元素
- L.extend(LL);print('添加列表LL后',L) #添加列表LL后 L=['a', 1, 3, [6, 'a'], 6, 'a']
- # 方法三:insert函数,在指定位置插入对象:格式:L.insert(位置,插入的对象)
- L.insert(2,2);print('插入一个元素',L) #插入一个元素 ['a', 1, 2, 3, [6, 'a'], 6, 'a']
- L.insert(2,LL);print('插入一个对象',L) #插入一个对象 ['a', 1, [6, 'a'], 2, 3, [6, 'a'], 6, 'a']
十二、列表的删除
- # remove函数:删除指定元素
- print('——————— remove函数删除 ————————————')
- L = list(range(7));print('原列表',L) #原列表 [0, 1, 2, 3, 4, 5, 6]
- L.remove(3);print('删除后',L) #删除后 [0, 1, 2, 4, 5, 6]
- # pop函数:删除指定位置的元素
- print('——————— pop函数删除 —————————')
- L.pop(3);print('删除后',L) #删除后 [0, 1, 2, 5, 6]
- # 用空表替换
- L[0:2]=[];print('替换后',L) #替换后 [2, 5, 6]
- # clear函数:清空列表
- print('——————— clear函数删除 —————————')
- L.clear();print('删除后',L) #删除后 []
- # del函数:删除列表后会报错
十三、列表的修改
- L = list(range(6));print('原列表',L)
- print('———————— 单个修改 ———————————')
- L[4] = 'a',10;print('修改后',L) #修改后 [0, 1, 2, 3, ('a', 10), 5]
- print('—————————— 多个修改 ———————')
- L[0:2] = ['a','b',9,8];print('修改后',L) #修改后 ['a', 'b', 9, 8, 2, 3, ('a', 10), 5]