Python基础 (v3.6.6)
day01
pycharm相关设置:
1.左侧字体:设置- Appearance & Behavior- Appearance- Theme选择Intellij为白色,勾选第2个,选18号
2.代码大小:Editor - Colors & Fonts - Font - Scheme选择Default为白色,字号设置26
3.运行结果大小:Editor - Colors & Fonts - Console font ,字号设置26
4.解释器:Project xx - Project Interpreter
国内源安装:pip install 包名 -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
---------------------------------------------------------------------------------------------
1.基础知识
1-1. python安装
1.注意环境变量的配置
2.验证:DOS窗口输入:python -V
3.python 文件格式为 .py
1-2. 注释:解释说明,不会被程序执行
单行注释用#,正常是写在代码上方
多行注释用一对三引号(单、双引号都可以)
1-3. 输出 print()
print(666)
print('hello, world')
print("你好")
print("hello", end =" ") #不换行输出
print() #换行输出,空一行
1-4. 变量
name = '小明'
age = 20
print('我叫',name,',今年',age)
print('我叫' + name,',今年'+ str(age))
1-4-1. 变量赋值:把等号右边的值赋给左边变量
#普通赋值
a = 666
#链式赋值
a = b = c = 6
print(a,b,c)
#序列解包赋值
a,b,c = 1,2,3
1-4-2. 获取数据的内存地址: id()
name = 'tom'
print(id(name))
1-4-3. 变量命名规则:
1.变量必须赋值才能使用
2.变量名可以包括字母、数字、下划线,但变量名不能以数字开头。
3.字母可以是大写或小写,但大小写是不同的。
4.等号(=)是赋值的意思,左边是名字,右边是值,不可写反咯。
5.变量命名遵循驼峰命名法,如 userName,也可以user_name
6.不要使用系统关键字命名,如 if、 class、 def……等
练习. 练习:假设变量 a = 3, b = 4 如何将a,b两个变量的值互换
a,b=3,4
a,b=b,a
print(a,b)
4. 输入input()
name = input('input your name:')
print('you are',name)
注:凡是从键盘输入的数据,系统都默认为 字符串(str) 数据类型
5. 查看数据类型 type()
int:整型(可以理解为整数),如123,20
float:浮点型(可以理解为小数),如 3.14
str:字符串,如 'tom',"杰瑞"
None:空值,如 a = None
True、False:布尔量,如 b = True
6. 数据类型转换:
int(a) :把变量a转换成整型
float(a) :把变量a转换成浮点型
str(a):把变量a转换成字符串
注意:字母是无法转换为整型和浮点型的数据类型的。
7. 常见的算术运算
+:加法,拼接字符串
-:减法
*:乘法,字符串的倍数输出
/:除法
**:幂
%:取商的余数部分
//:取商的整数部分(地板除)
8. 逻辑操作符
and 、not、 or
and操作符,and两边都为true时,返回true,否则返回false
not操作符,取相反的,not true 就是false
or操作符,当两边有一边返回true,返回true
name = 'tom'
print('t' in name and 'o' in name)
print(not 't' in name)
print('tt' in name or 'o' in name)
9. 运算优先级
幂 》正负号 》算术操作符(加减乘除、取余、取整)》比较运算符(>、<=、==、!=) 》逻辑运算符(and、or、not)
9-1.练习:从键盘输入两个整数,然后计算出他们的和
a= int(input('请输入第1个整数:'))
b= int(input('请输入第2个整数:'))
print('两个整数的和是:',a+b)
9-2.练习:如何输出保留小数点后两位的数据? --> 使用print(‘%.2f’%变量),如:print(‘%.2f’%b)
a,b = 5,3
print(a/b)
print('%.2f'%(a/b))
10. 字符串相关
特点:字符串可以用一对单引号、双引号或三引号括起来(三引号里面的内容可以直接换行而不会报错)
10-1. 拼接 + 适用于字符串,中间不会有空格
a='hello'
b='world'
print(a+b) →:helloworld
10-2. 缩进 \t
print('qqq\thaha')
10-3. 换行 \n
print('qqq\nhaha')
10-4. 转义符 \ 将特殊字符失去原有意义
print('let\'s go')
print("let's go")
10-5. 原始字符串
在字符串前面加r或R
c = R'C:\now'
print(c)
d = 'C:\\now'
print(d)
10-6. 格式化输出方法1-----------------
%s:字符串
%d:整型
%f:浮点型
name = '小明'
age = 20
weight = 55.56789
print('我叫%s'%name)
print('我叫%s,今年%d,体重%.2f'%(name,age,weight))
10-7. 格式化输出方法2----------------
print('我是{},今年{}岁,体重{}公斤'.format(name,age,weight))
print('我是{aa},今年{bb}岁,体重{cc}公斤'.format(aa=name,bb=age,cc=weight))
print('我是{0},今年{1}岁'.format(name,age))
print('我是{1},今年{0}岁,体重{2}公斤'.format(age,name,weight))
补充: f'{变量}'
name = 'tom'
print(f'我的名字是{name}') →: 我的名字是tom
10-8. 判断变量类型的内置函数 isinstance()
isinstance(aa,m) 其中aa是变量,m是数据类型,如果一致就是True
name = 'tom'
print(isinstance(name,str)) →: True
10-9. 字符串的复制
print("_"*5)
10-10. 字符串的索引访问 [] ,下标从0开始
name = 'xiaoming'
print(name[2]) →: a
切片访问 [a:b:m] 起始值a,结束值为b-1,步长为m(默认为1)
print(name[2:5]) →: aom ,取第2、3、4位,不包括第5位
print(name[2:7:2]) →: amn ,取第2~6位,且步长为2
10-11. 反转输出
name = 'xiaoming'
print(name[::-1]) →:gnimoaix
print(c[-1:-4:-1]) → dlr 从倒数第1位开始,到倒数第3位结束
1.练习:分别打印name的前3位、后3位
print(name[:3:]) →:xia
print(name[-3::]) →:ing
10-12. 统计字符串长度 len()
print(len(name))
10-13. 查看字符串的内置函数:dir() , 如 dir(str) , dir('tom')
注:其他数据类型也能用dir(),如列表等
# 练习:编写一个函数处理金额类的字符串,保留小数后两位,如输入5元,
返回5.00元,输入5.1元,返回5.10元,输入5.12元,返回5.12元,
输入5.123元,返回5.12元
def money(num):
return '%.2f元'%num
a = float(input("请输入金额:"))
print(money(a))
10. 字符串常用的函数
name = 'xiaoming'
11-1. find() 查找字符是否存在字符串中
#如果在,就返回第一个该字符的索引位
print(name.find('a')) →: 2
#如果不存在,就返回-1
print(name.find('b')) →: -1
11-2. split() 将字符串按照指定分割符切割,并将切割后的数据保存为列表
print(name.split('m')) →: ['xiao', 'ing']
11-3. count() 统计指定字符出现的次数
print(name.count('i')) →: 2
11-4. replace(“a”,“b”) 将字符串中的a替换为b
print(name.replace('ming','hong')) →: xiaohong
print(name.replace('i','6')) →: x6aom6ng
11-5. strip() 移除字符串头尾的指定字符,不能删除中间的字符
aa = ' tom123 '
#默认移除头尾部的空格
print(aa.strip()) →: tom123
bb = 'tom123t'
print(bb.strip('t')) →: om123
练习:移除"hel lo ,wor ld"中的空格
cc = "hel lo ,wor ld"
print(cc.replace(' ','')) →: hello,world
11-6. isdigit() 判断字符串是否由纯数字组成
num1 = '666'
num2 = '3.14'
num3 = 'asd666'
print(num1.isdigit()) →: True
print(num2.isdigit()) →: False
print(num3.isdigit()) →: False
11-7. lower()、upper() 将所有字母改成小写、大写
name = "xIaOMinG"
print(name.upper()) →: XIAOMING
print(name.lower()) →: xiaoming
#将首字母改成大写
print(name.title()) →: Xiaoming
11-8. in 、 not in 判断字符串是否在另一个字符串中
print('ao' in 'xiaoming') →: True
print('66' in 'xiaoming') →: False
12. 列表相关 list
python的数据结构有列表、元组、字典、集合。
列表:列表是以方括号[] 包围,元素以逗号分隔的序列,数据结构之一。
在Python中,列表可以存放任何东西,甚至可以存放另一个列表。
特点: a) 有序;
b) 可变;
c) 可以存储不同的数据类型和数据结构
12-1. 定义列表
list1 = [] #空列表
list1 = ['asd',666,'橘子'] #非空列表
12-2. 列表的访问
list2 = [666,'hello','杰瑞',[777,'tom'],55,66,7]
print(list1,'\n'+str(list2)) #换行打印list1、list2
print(list2[2]) #列表的访问,下标从0开始,取下标2
print(list2[1:3]) #切片访问
print(list2[::]) #打印所有
print(list2[::2]) #以步长2打印所有
print(list2[1:5:2]) #以步长2打印下标1到5-1
print(list2[::-1]) #反转输出
print(list2[3][1]) #嵌套访问, →: tom
print(list2[-3:]) #打印后3位
print(list2[-1]) #打印最后1位
12-3. 列表最大值、最小值
list3 = [8,50,888,69]
print(max(list3)) →: 888
print(min(list3)) →: 8
练习:已知a、b为整型,求出最大值c
a= 8
b = 888
c = max([a,b]) #或 c = max(a,b)
print(c)
12-4. 查看列表的内置函数 dir()
12-5. 列表元素的增,删,改
list2 = [666,'hello','杰瑞',[777],55]
list2.append('橘子') #在列表尾部增加元素
#在列表指定位置增加元素
list2.insert(3,'tom') #在原下标3的位置增加元素
list2[1] = 'world' #修改元素
del list2[5] #删除指定元素
del list2[-2::] #删除最后2个元素
del list2 #删除整个列表,删除后无法访问
list2.remove(666) #删除列表指定第一个元素
list2.remove('tom') #删除列表指定第一个元素
list2.pop() #删除列表最后一个元素
12-6.列表元素升序
list3 = [66666,55,3.14,66,7]
# sort()方法会改变原列表顺序
list3.sort()
print(list3)
# sorted不会改变原列表顺序
print(sorted(list3))
print(list3)
如果降序呢?--------------
# 可以使用字符串的反转输出,不改变原顺序
list5 = list3[::-1]
# sort()方法会改变原列表顺序,reverse=True表示降序
list2 = [55,666,9,30,20]
list2.sort(reverse=True)
print(list2)
# reverse()将原来的列表反转,并且无法恢复
list2 = [55,666,9,30,20]
list2.reverse()
print(list2)
12-7. 列表其他操作
list2 = [55,666,'hello','杰瑞',666,[777],55]
1)统计列表内某个元素的个数 count()
print(list2.count(666)) →: 2
2)计算列表内元素的个数 len()
print(len(list2))
3)根据元素值,返回首个元素所在的下标值 index()
print(list2.index(55)) →: 0
4)将列表的元素以指定的字符连接,生成一个新的字符串
list3 = ["hello","world"]
new = ",".join(list3)
print(new) →: hello,world
注意:join方法只能连接字符串。
5) 将两个列表组合成一个新的列表
list1 = [1,2,3]
list2 = [4,5,6,"tom"]
list3 = list1 + list2
print(list3) →: [1, 2, 3, 4, 5, 6, 'tom']
6) 判断元素是否在列表中
list2 = [55,666,'hello','杰瑞',666]
print('hello' in list2) →: True
print(666 not in list2) →: False