Python学习
python输出到文件
fp=open("D:/a.txt",'a+') #第二个参数表示打开模式,有r、r+、w等等,a+是附加形式打开
print("helloworld!",file=fp)
fp.close()
python转义字符
\n :换行 \r:回车 \b:Backspace \t:Tab
如果不希望字符串中的转义字符起作用,则在字符串前面加一个 r 或 R ,且最后一个字符不能是单个反斜杠,双个还是可以的
fp = open(r"D:\python-workspace\Python学习\第一天学习\demo01\a.txt", 'a+') # 第二个参数表示打开模式,有r、r+、w等等
print("helloWorld!", file=fp)
fp.close()
python保留字
import keyword
# 查看所有的保留字
print(keyword.kwlist)
python变量
name = "wwj"
print("变量的内存地址:", id(name))
print("变量的类型:", type(name))
print("变量的值:", name)
python数据类型
python整型
- 十进制 -> 默认的进制
- 二进制 -> 以0b开头,如 0b100 表示 4
- 八进制 -> 以0o开头,如 0o100 表示 64
- 十六进制 -> 以0x开头,如 0x10 表示16
python浮点类型
# 在使用浮点数进行计算的时候,可能会出现小数位数不确定的情况
n1 = 1.1
n2 = 2.2
print(n1 + n2)
# 解决方法,导入Decimal模块
from decimal import Decimal
print(Decimal('1.1') + Decimal('2.2'))
python布尔类型
# 布尔类型就只有两种值: True 为 真,False 为 假
# 布尔值可以转换成整数进行计算 True 为 1 ,False 为 0
f1 = True
print(f1 + 1)
python字符串类型
# 可以用单引号、双引号、三引号 来表示字符串
# 单引号、双引号表示的字符串都必须在同一行上,,三引号表示的字符串可以表示在连续多行上
str1 = 'fighting'
str2 = "fighting"
str3 = '''fighting! fighting!'''
str4 = '''fighting!
fighting!
'''
print(str1)
print(str2)
print(str3)
print(str4)
python数据类型转换
# int() 将其他类型的数据转换成 整型,文本型(如 'hello')和小数字符串型(如 '1.23')不能直接转为int
# float() 将其他类型的数据转换成 浮点型,文本型(如 'hello')不能直接转为float
# str() 将其他类型的数据转换成 字符串型
str1 = '123.2'
print(type(str1))
print(type(float(str1)))
str2 = 235
print(type(str2))
print(type(str(str2)))
str3 = '235'
print(type(str3))
print(type(int(str3)))
python注释
- 单行注释: 以 # 开头,以换行结束
- 多行注释: 一对三引号之间的内容为注释内容
- 中文编码声明注释:用以指定源码文件的编码格式,文件开头进行说明,如 #coding:utf-8
python的输入函数input()
input()函数的作用:用来接收用户的输入
返回值类型是str类型
answer = input('请输入内容:')
print(answer)
python运算符
算术运算符
print(1 + 1) # 加法运算符 2
print(1 - 1) # 减法运算符 0
print(1 * 3) # 乘法运算符 3
print(11 / 2) # 除法运算符 5.5
print(11 // 2) # 整除运算符 5
print(11 % 2) # 取余运算符 1
print(2 ** 5) # 幂运算符 32
# 一正一负的整除
print(9 // -4) # -3 原本是 -2.多 ,向下取整就是 -3
print(-9 // 4) # -3 原本是 -2.多 ,向下取整就是 -3
# 一正一负的取余 余数 = 被除数 - 除数 * 商
print(9 % -4) # 余数 = 9 - (-4 * -3) = -3
print(-9 % 4) # 余数 = -9 - (4 * -3) = 3
赋值运算符
# 执行顺序 : 右 -> 左
i = 4 + 5 # 9
# 链式赋值
a = b = c = 20
# 三者的标识一样
print(a, id(a))
print(b, id(b))
print(c, id(c))
# 参数赋值 +=、-=、*=、/=、//=、%=
# 支持系列解包赋值 要求左边的变量个数要与右边的值的个数一致
a, b, c = 10, 20, 30
print(a, b, c)
# 可以用来不借助第三个变量来交换两个变量的值
a, b = b, a
print(a, b)
比较运算符
对变量或表达式的结果进行大小、真假的比较
<、>、<=、>=、!=、==
== 比较的是 变量的值
is 比较的是 变量的标识 is 表示 标识相同,is not 表示标识不相同
list1=[11,22,33]
list2=[11,22,33]
print(list1 == list2) # True
print(list1 is list2) # False
布尔运算符
- and: 都为True,整体才为True
- or: 有一个为True,整体就为True
- not: 反面,如:
f1 = True
print(not f1) # False
- in : 存在,如:
- not in :不存在,如:
str1 = 'hello'
print('h' in str1) # True
print('a' not in str1) # True
位运算符
# 与 & 对应数位都为1,结果数位才为1,否则为0
print(4 & 8) # 0
# 或 | 对应数位都为0,结果数位才为0,否则为1
print(4 | 8) # 12
# 左移位运算符 << 高位溢出舍弃,低位补0,相当于乘以2
print(4 << 1) # 8
# 右移位运算符 >> 低位溢出舍弃,高位补0,相当于除以2
print(4 >> 1) # 2# 与 & 对应数位都为1,结果数位才为1,否则为0
print(4 & 8) # 0
# 或 | 对应数位都为0,结果数位才为0,否则为1
print(4 | 8) # 12
# 左移位运算符 << 高位溢出舍弃,低位补0,相当于乘以2
print(4 << 1) # 8
# 右移位运算符 >> 低位溢出舍弃,高位补0,相当于除以2
print(4 >> 1) # 2
运算符优先级
由高到低进行排序:
高 | 低 | ||||||||
---|---|---|---|---|---|---|---|---|---|
** | *,/,//,% | +,- | <<,>> | & | | | <,>,==,!=,<=,>= | and | or | = |
python对象的布尔值
- python的所有对象都有一个布尔值
- 使用内置函数bool()来获取对象的布尔值
- 以下的对象布尔值均为False
- False
- 数值0 0 0.0
- None
- 空字符串 “” ‘’
- 空列表 [] list()
- 空元组 () tuple()
- 空字典 {} dict{}
- 空集合 set()
- 除了第二点的对象,其他对象的布尔值都是True
python选择结构
使用 if 语句
totalMoney = 1000
money = int(input("请输入你要取出的金额:"))
if money <= totalMoney:
print("取款成功!\t余额还剩:", totalMoney - money)
else:
print("余额不足!")
elif的使用
score = int(input("请输入你的成绩:\n"))
if 0 <= score <= 60:
print("不及格")
elif 60 < score <= 70:
print("及格")
elif 70 < score <= 80:
print("中等")
elif 80 < score <= 90:
print("良好")
elif 90 < score <= 100:
print("优秀")
else:
print("成绩异常")
嵌套 if 的使用
answer = input("你是VIP吗?请输入 yes 或 no ")
money = int(input("请输入你的购物金额:\n"))
if answer == 'yes':
if money >= 200:
print("打八折")
else:
print("打九折")
else:
print("非会员")
条件表达式
语法结构: x if 条件 else y 条件成立,则执行 x,为假,则执行 y
num1 = int(input("输入第一个数:\t"))
num2 = int(input("输入第二个数:\t"))
print(str(num1)+'大于'+str(num2) if num1 > num2 else str(num1)+'小于'+str(num2))
python的pass语句
- pass语句 表示什么也不做,只是一个占位符,用在需要语句的地方
- 什么时候用:先搭建语法结构,还没想好代码怎么写的时候
- 使用场景:
- if 语句的条件执行体
- for-in语句的循环体
- 定义函数时的函数体
num = int(input("输入一个数:\t"))
if num > 10:
pass
else:
pass
python的循环结构
range()函数
用于创建一个整数序列
创建range对象的方式:
# 第一种方式 range(stop) 创建一个[0,stop)的整数序列,步长默认为 1
num1 = range(10)
print(list(num1)) # 使用list将其转换成列表,来看range对象中的整数序列 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# 第二种方式 range(start,stop) 创建一个[start,stop)的整数序列,步长默认为 1
num2 = range(2, 10)
print(list(num2)) # 使用list将其转换成列表,来看range对象中的整数序列 [2, 3, 4, 5, 6, 7, 8, 9]
# 第三种方式 range(start,stop,step) 创建一个[start,stop)的整数序列,步长为 step
num3 = range(2, 10, 2)
print(list(num3)) # 使用list将其转换成列表,来看range对象中的整数序列 [2, 4, 6, 8]
range 经常与 in 或 not in 搭配使用:
num3 = range(2, 10, 2)
print(list(num3)) # 使用list将其转换成列表,来看range对象中的整数序列 [2, 4, 6, 8]
print(5 in num3)
while循环
- 语法结构
while 条件表达式:
循环体
练习题:计算从1到100之间的偶数和:
sum = 0
a = 2
while a <= 100:
sum += a;
a += 2;
print(sum)
for-in循环
-
in表示从(字符串、序列等)中依次取值,又称遍历
-
for-in遍历的对象必须是可迭代对象
-
for-in的语法结构:
-
for 自定义变量 in 可迭代对象:
循环体
-
for-in的使用:
for item in 'Python':
print(item)
# for-in 与 range() 联合使用
for i in range(2, 10, 2):
print(i)
# 如果循环体中不会再用到for-in中自定义的变量,可以将自定义变量定义为 _
for _ in range(3):
print("fighting!")
# 使用for-in计算从1到100的偶数和
sum1 = 0
for num in range(2, 101, 2):
sum1 += num
print(sum1)
练习题:输出从100到999之间的水仙花数
for num in range(100, 1000):
a = num % 10
b = num // 10 % 10
c = num // 100
if a ** 3 + b ** 3 + c ** 3 == num:
print(num)
流程控制语句break
-
用于结束循环结构,通常在循环结构中与 if 条件语句搭配使用
break的使用:
pwd = "88888" for i in range(3): str1 = input("请输入密码:\t") if str1 == pwd: print("密码正确!") break else: print("密码错误!")
流程控制语句continue
- 用于结束当前循环,进行下一次循环
while、for 跟 else的使用
while …:
else :
for … :
else:
如果循环体中没有执行 break ,就执行else的语句
pwd = "88888"
for i in range(3):
str1 = input("请输入密码:\t")
if str1 == pwd:
print("密码正确!")
break
else:
print("密码错误!")
else:
print("三次机会已用完!")
嵌套循环
顾名思义,就是循环里面还有循环
练习题:输出 9*9 乘法表
for i in range(10):
for j in range(1, i+1):
print(i, '*', j, '=', i*j, end='\t')
print() # 换行