目录
1.浮点数不精确问题
2.字符串类型定义
3.数据类型转换
4.中文编码声明注释
5.python的输入:input()函数
6.python中的运算符
7.程序的组织结构
8.对象的布尔值
9.pass语句
10.内置函数range()
11.与else语句搭配使用的三种情况
12.循环的嵌套
13.列表
a=1.1
b=2.2
print(a+b) #输出3.3000000000000003
from decimal import Decimal
print(Decimal('1.1')+Decimal('2.2')) #输出3.3
str1='hello world!'
str2="hello world!"
str3='''hello
world!''' #单引号的三引号
str4="""hello
world!""" #双引号的三引号
#coding:gbk
注意:要写在开头,标识本py文件的存储格式。python3默认utf-8
name=input("请输入您的姓名:") #输入的str类型的值直接赋给变量name
age=int(input("请输入您的年龄:") #输入的str类型的值经过int()赋给变量age
print(11//2) #5,整除运算
print(11/2) #5.5,除法运算
print(11%2) #1,求余运算
print(3**2) #9,3的2次方,幂运算
难点:(一正一负整除,向下取整;一正一负取余要公式,余数=被除数-除数*商)
a,b,c=20,30,40 #支持系列赋值,指向不同块内存空间
a=b=c=20 #支持链式赋值,指向同一块内存空间
交换两个变量的值,不需要中间变量(tql)
a,b=b,a
a,b=10,20
print('a>b吗?',a>b) #False
a=10
b=10
print(a==b) #True
print(a is b) #True
list1=[11,22,33,44]
list2=[11,22,33,44]
print(list1==list2) #True
print(list1 is list2) #False
s='hello world'
print('w' in s) #True
print('k' not in s) #True
print(4&8) #按位与,0
print(4|8) #按位或,12
print(4<<1) #左移移位,8,相当于乘以2
print(4>>1) #右移一位,2,相当于除以2
#多分支结构
score=int(input('请输入一个成绩'))
#判断
if 90<=score<=100: #在python中可以这样写,tql
print('A级')
elif score>=80 and score<=89:
print('B级')
else:
print('C级')
#条件表达式
num_a=int(input('请输入第一个整数'))
num_b=int(input('请输入第二个整数'))
print(str(num_a)+'大于等于'+str(num_b) if num_a>=num_b else str(num_a)+'小于'+str(num_b))
#如果在循环体中不需要使用到自定义变量,可将自定义变量写为"_"
for _ in range(5):
print('人生苦短,我用Python')
#练习题
#输出100到999之间的水仙花数
#举例:153=1*1*1+5*5*5+3*3*3
for i in range(100,999):
if i==(i//100)**3+((i%100)//10)**3+(i%100%10)**3:
print(i) #最终输出153、370、371、407
print(bool([])) #空列表,False
print(bool(list())) #空列表,False
print(bool(())) #空元组,False
print(bool(tuple())) #空元组,False
print(bool({})) #空字典,False
print(bool(dict())) #空字典,False
print(bool(set())) #空集合,False
range(stop) #创建一个(0,stop)之间的整数序列,步长为1
range(start,stop) #创建一个(start,stop)之间的整数序列,步长为1
range(start,stop,step) #创建一个(start,stop)之间的整数序列,步长为step
r=range(10)
print(r) #range(0,10)
print(list(r)) #用于查看range对象中的整数序列
for item in range(3):
pwd=input('请输入密码:')
if pwd=='8888':
print('密码正确')
break
else:
print('密码不正确')
else:
print('对不起,三次密码均输入错误')
#输出一个三行四列的矩形
for i in range(1,4):
for h in range(1,5):
print('*',end='\t') #不换行输出
print() #打行
#输出九九乘法表
for i in range(1,10):
for j in range(1,i+1):
print(str(i)+'*'+str(j)+'='+str(i*j),end='\t')
print()
lst=['hello','world','98','hello']
print(lst.index('hello')) #输出0
#指定起始和结束位置进行查找
print(lst.index('hello',1,4)) #输出3
lst=[10,20,30,40,50,60,70,80]
#start=1,stop=6,step=1
print(lst[1:6:1])
print(lst[1:6]) #输出结果同上,默认步长为1
print(lst[1:6:]) #同上
print(lst[1:6:2]) #步长为2
print(lst[:6:2]) #默认start为0
print(lst[1::2]) #默认stop到最后一个元素
#step也可以是负数,此时从start开始往前计算切片
#此时start默认是列表的最后一个元素
#stop默认是列表我的第一个元素
print(lst[::-1]) #相当于列表逆序,tql
lst=[90,80,70,60,50,40,30,20,10]
for item in lst:
print(item)
lst=[]
lst.append(100) #在列表的末尾添加一个元素
lst2=[90,80]
lst.extend(lst2) #在列表的末尾至少添加一个元素,可以用于两个列表合并
lst.insert(1,30) #在列表的任意位置添加一个元素
lst3=[10,20,30,40]
lst[1:]=lst3 #把lst从第二个元素到最后一个元素替换为了lst3
lst=[10,20,30,40,50,60,30]
lst.remove(30) #从列表中移除一个元素,如果有重复元素只移第一个
#lst.remove(100) #不存在,抛出ValueError异常
lst.pop(1) #删除一个指定索引位置上的元素,指定索引不存在,抛出IndexError,不指定默认删除列表中最后一个元素
#切片操作,删除至少一个元素,将产生一个新的列表对象
new_lst=lst[1:3]
#不产生新的列表对象,而是删除原列表中的内容
lst[1:3]=[]
#clear()清除列表
lst.clear()
#del删除列表
del lst