#coding=utf-8 中文声明注释
# IPO编程方式 分别是:Input指的是输入、Process 指的是处理、Output指的是输出
'''
#输出函数 print
print('输出内容')
#print()函数完整的语法格式
#print(value,...,sep='',end='\n',file=None)
# sep 分割符, end 结束符 , file 把内容输出到文件当中
print('中国', end='--->')
print('|----------')
#输出 ASCII 码所对应的字符 chr 函数
print(chr(98))
#输出 字符对应的 ASCII 码 ord 函数
print(ord('b'))
#将内容输出到文件
fp=open('note.txt', 'w') #打开文件 w--》write
print('北京欢迎您!', file=fp) #将 "北京欢迎您" 输出(写入)到note.txt文件中
fp.close() #关闭文件
#连接符 (+) 只能连接字符
print('中国'+'123')
#基本的输入函数 input
#inp =input('请输入数字:')
#得到的数字内容为字符串可以用 + 作为连接符连接
#print('得到数字:'+inp)
#inp=int(inp)
#转成整数类型不能再用 + 连接
#print('得到数字:', inp)
'''
# 单行注释用 # 号
'''
多行注释一
注释内容
123456
英文输入下
'''
"""
多行注释二
中文档注释,必需写在文档的第一行
例如: #coding=utf-8
"""
# 一般代码 不需要缩进
'''
示例:
print('hello')
print('world')
'''
# 类的定义 自动缩进
'''
示例:
class Student:
pass
# 函数的定义 自动缩进
def fun():
pass
'''
# 查看保留字 区分大小写
# 引入内置模块
import keyword
'''
示例:
# 打印保留字
print(keyword.kwlist)
# 打印保留字个数
print(len(keyword.kwlist))
# 变量的定义和使用
luck_number=8 # 创建一个整型变量luck_number,并为其赋值为8
my_name = '张三' # 字符串类型的变量
print('luck_number的数据类型是:',type(luck_number)) # <class 'int'>
print(my_name,'的幸运数字是:',luck_number)
# python 动态修改变量的数据类型,通过赋值就可以直接修改
luck_number='北京欢迎您'
print('luck_number的数据类型是:',type(luck_number)) # <class 'str'>
# 在Python中请允许多个变量指向同一个值
no=number=1024 # no与number都指向了1024这个整数值
print(no,number)
print(id(no)) # id() 查看对象的内存地址 2160086833648 地址不固定
print(id(number)) # 2160086833648
# 常量的定义
pi = 3.1415926 # 定义了一个变量
PI = 3.1415926 # 定义了一个常量 不可被修改
'''
# 数值类型 整数类型表示的数值是没有小数部分的数值,包含正整数、负整数和0
'''
进制种类 引导符号 描述
十进制 无 默认情况,例如:365,786
二进制 0b或OB 由字符0和1组成,例如0b10101,0B10101
八进制 0o或00 由字符0到7组成,例如0o763,00765
十六进制 0x或0X 由字符0到9,a到f或A到F组成,例如0x987A,0X987A
'''
'''
示例:
num=987 # 默认是十进制,表示整数
num2=0b1010101 # 使用二进制,表示整教
num3=0o765 # 使用八进制,表示整教
num4=0x87ABF # 使用十六进制,表示整数
print(num)
print(num2)
print(num3)
print(num4)
'''
'''
浮点数类型 表示带有小数点的数值,由整数部分和小数部分组成
注意事项:两个浮点类型的数在进行运算时,有一定的概率运算
结果后增加一些“不确定的”尾数
Python中的复数与数学中的复数形式完全一致,由实部和虚部组成
j=√-1
在Python中实数部分使用.real表示,虚数部分使用.imag表示
'''
'''
示例:
# 浮点数类型的使用
height = 188.3 # 身高
print(height)
print(type(height)) # 查看数据类型
x = 10
y = 10.0
print('x的数据类型:',type(x)) # <class 'int'>
print('y的数据类型:',type(y)) # <class 'float'>
x = 1.99E1413
print('科学计数法:',x,'x的数据类型:',type(x))
print(0.1+0.2) # 不确定的尾数问题 0.30000000000000004
print(round(0.1+0.2,1)) # 保留一位小数 结果:0.3
# 复数类型的使用
x = 123+456j
print('实数部分:',x.real)
print('虚数部分:',x.imag)
'''
'''
字符串类型
字符串类型连续的字符序列,可以表示计算机所能识别的一切字符
字符串的界定符:单引号、双引号、三引号
转义字符 描述说明
\n 换行符
\t 水平制表位,用于横向跳到下一个制表位
\" 双引号
\' 单引号
\\ 一个反斜杠
'''
'''
示例:
city = '深圳市'
address = '深圳市白三石龙'
print(city)
print(address)
print('深圳\n欢迎您')
print('深圳\t欢迎您')
print('深圳欢迎\'您\'')
print("深圳\\欢迎\"您\"")
'''
"""
示例:
# 多选字符串
info = '''地址:深圳市宝安区
民治街道白石龙
一区186栋
'''
print(info)
"""
# 字符串的索引和切片
# 正向 0 致 9,逆向 -1 致 -10
'''
示例:
s = 'HELLOWORLD'
print(s[0],s[-10]) # 序号和序号-10表示的是同一个字符
print('深圳欢迎您'[4]) # 获取的是同一个字符
print('深圳欢迎您'[-1]) # 获取的是同一个字符
print(s[2:7]) # 从2开始到7结束不包含7 正向递增
print(s[-8:-3]) # 反向递减
print(s[:5]) # 默认N从0开始
print(s[5:]) # M 默认是切到字符串的结尾
xy = '2024年'
yx = '过年放炮,暴富一整年'
print(xy+yx) # 连接两个字符
print(xy*5) # 对xy这个字符串的内容复制5次
print(5*xy) # 效果和 xy*5 一样
isin = '2024' in xy
print(isin) # True 判断 2024 是否存在
print('2023' in xy) # False
'''
# 非0的整数布尔值都是True
# 所有非空的字符串布尔值都是True
'''
数据类型之间的转换
函数 描述说明
int(x) 将x转换为整数类型
float(x) 将x转换为浮点数类型
str(x) 将x转成字符串
chr(x) 将整数 x转换为一个字符
ord(x) 将一个字符x转换为其对应的整数值
hex(x) 将一个整数 x转换为一个十六进制字符串
oct(x) 将一个整数 x转换为一个八进制字符串
bin(x) 将一个整数 x转换为一个二进制字符串
'''
'''
示例:
x = 10
y = 3
z = x/y #在执行除法运算的时候,将运算的结果赋值给z
print(z,type(z)) #隐式转换,通过运算隐式的转了结果的类型
# float 类型转成int类型,只保留整数部分
print('float类型转成int类型:', int(3.14))
print('float类型转成int类型:', int(-3.14))
print('float类型转成int类型:', int(-3.9))
# 将int转成float类型
print('将int转成float类型:',float(10))
# 将str转成int类型
print(int('100')+int(10))
# 将字符串转成int或float时报错的情况
# print(int('18a')) #IndentationError: unexpected indent
# print(int('3.14')) #IndentationError: unexpected indent
# print(int('45a.987')) #IndentationError: unexpected indent
# chr() ord() 一对
print(ord('何')) # 将在unicode表中对应的整数值
print(chr(20309)) # 20309 整数在Unicode表中对应的字符是什么
# 进制之间的转换操作,十进制与其他进制之间的转换
print('十进制转成十六进制:', hex(20309))
print('十进制转成八进制:', oct(20309))
print('十进制转成二进制:', bin(20309))
'''
# eval 函数
'''
Python中的内置函数
用于去掉字符串最外侧的引号,并按照Python语句方式执行去掉引
号后的字符串
eval()函数经常和input()函数一起使用
eval的语法格式
变量=eval(字符串)
'''
'''
s = '3.14+3'
print(s,type(s))
x = eval(s) # 使用eval函数去掉s这个字符串中左右的引号,执行加法运算
print(x,type(x))
# eval函数经常与input()函数一起使用,用来获取用户输入的数值
age = eval(input('请输入您的年龄:'))
print(age,type(age))
height = eval(input('请输入您的身高:'))
print(height,type(height))
hello = '深圳欢迎您'
print(hello)
print(eval('hello')) # 输入 "深圳欢迎您"
# print(eval('深圳欢迎您')) # NameError: name '深圳欢迎您' is not defined
'''
'''
算术运算符:用于处理四则运算的符号
运算符 描述说明 示例 结果
+ 加法 1+1 2
- 减法 1-1 0
* 乘法 2*3 6
/ 除法 10/2 5.0
// 整除 10//3 3
% 取余 10%3 1
** 幂运算 2**4 16
'''
'''
示例:
print('加法:', 1+1)
print('减法:', 1-1)
print('乘法:', 2*3)
print('除法:', 10/2)
print('整除:', 10//2)
print('取余:', 10%3)
print('幂运算:', 2**5) # 2*2*2*2*2
print(10/0) # 报错: ZeroDivisionError: division by zero
'''
'''
赋值运算符
算术运算符的优先级由高到低的是:
第一级:**
第二级:*、/、%、//
第三级:+、-
运算符 描述说明 示例 展开形式
= 简单的赋值运算 x=y x=y
+= 加赋值 x+=y x=x+y
-= 减赋值 x-=y x=x-y
*= 乘赋值 x*=y x=x*y
/= 除赋值 x/=y x=x/y
%= 取余赋值 x%=y x=x%y
**= 幂赋值 x**=y x=x**y
//= 整除赋值 x//=y x=x//y
示例:
x = 20 # 直接赋值,直接将20赋值给左侧的变量x
y = 10
x = x+y # 将x+y的和赋值给x,x的值为30
print(x) # x的值是30
x += y # 40 相当于x=x+y
print(x) # 40
x -= y # 相当于x=x-y
print(x) # 30
x *= y # 300
print(x)
x /= y
print(x, type(x)) #30.0发生了类型转换 x的数据类型为float类型
x %= 2 # 相当于 x = x%2
print(x) # 0.0
z=3
y //= z # 相当于 y = y//z
print(y) # 3
y **= 2 # 相当于 y = y**2
print(y) # 9
# python 支持链式赋值
a=b=c=100 # 相当于执行 a=100 b=100 c=100
print(a,b,c)
# Python 支持系列解包赋值
a,b=10,20 # 相当于执行了 a=10 b=20
print(a,b)
print('------------如何交换两个变量的值呢------------')
a,b = b,a # 将b的值赋给a,将a的值赋给b
print(a,b)
'''
'''
比较运算符
运算符 描述说明 示例 展开形式
> 大于 98>90 True
< 小于 98<90 False
== 等于 98==90 False
!= 不等于 98!=90 True
>= 大于或等于 98>=98 True
<= 小于或等于 98<=98 True
示例:
print('98大于90吗?', 98>90)
print('98小于90吗?', 98<90)
print('98等于90吗?', 98==90)
print('98不等于90吗?', 98!=90)
print('98大于等于98吗?', 98>=98)
print('98小于等于98吗?', 98<=98)
'''
'''
逻辑运算符
运算符 描述说明 用法 结合方向
and 逻辑与 表达式1 and 表达式2 从左到右
or 逻辑或 表达式1 or 表达式2 从左到右
not 逻辑非 not 表达式 从右到左
示例:
print(True and True)
print(True and False)
print(False and False)
print(False and True)
print('-' * 40)
print(8>7 and 6>5) # True
print(8>7 and 6<5) # False
print(8<7 and 10/0) # False,10/0并没有运算,当第一个表达式的结果为False,直接得结果,不会计算and右则的表达式了
print('-' * 40)
print(True or True)
print(True or False)
print(False or False) # False
print(False or True)
print('-' * 40)
print(8>7 or 10/0) # True,左则表达式结果为True时,or的右则表达式根本不执行运算符
print('-' * 40)
print( not True) # False
print( not False) # True
print( not 8>7) # False
位运算符
位运算符 把数字看作二进制数来进行计算的
按“位与”运算(&) 按“位或”运算(|)
0000 0000 0000 1100 0000 0000 0000 0100
& 0000 0000 0000 1000 | 0000 0000 0000 1000
———————————————————————————— ————————————————————————————
0000 0000 0000 1000 0000 0000 0000 1100
示例:
print('按位与运算:', 12&8)
print('按位或运算:', 4&8)
按“位异或”运算 (^) 按“位取反”运算 (~)
0000 0000 0001 1111
^ 0000 0000 0001 0110 ~ 0000 0000 0111 1011
____________________________ _______________________________
0000 0000 0000 1001 1111 1111 1000 0100
示例:
print('按位异或运算:', 32^22)
print('按位取反:', ~123)
位运算符
“左移位”运算 (<<)是将一个二进制数向左移动指定的位数,左边(高位端)溢出的位被丢弃,右边(低位端)的空位用0补充。
|
|0 0 0 0 0 0 1 0
|
0 0|0 0 0 0 1 0 0 0
溢出| 左移后补0
示例:(左乘)
print('左移位:', 2<<2) # 8,表示的是2向左移动两位 2*2*2
print('左移位:', 2<<3) # 相当于2* 2*2*2
'右移位”运算 (>>)是将一个二进制数向右移动指定的位数,右边(低
位端)溢出的位被丢弃,左边(高位端)的空位端,如果最高位是0(正数)左
侧空位填0,如果最高位是1(负数),左侧空位填1。
示图1:
0 0 0 0 1 0 0 0|
|
0 0 0 0 0 0 1 0|0 0
左移后补0 |溢出
示图2:
1 0 0 0 1 0 0 0|
|
1 1 1 0 0 0 1 0|0 0
左移后补1 |溢出
示例:(右除)
print('右移位:', 8>>2) # 8向右移动两位相当于 8//2,4//2
print('右移位:', -8>>2) # -2
运算符的优先级
运算符 描述说明
** 幂运算符
~、+、- 取反、正号、负号
*、/、%、// 算术运算符
+、- 算术运算符
<<、>> 位运算符中的左移位和右移位
& 位运算符中的按位与
^ 位运算符中的异域
| 位运算符中的按位或
<、<=、>、>=、!=、== 比较运算符
= 赋值运算符
操作示例:
# 通过计算取出对应的数
num = eval(input('请输入一个四位整数:'))
print('个位上的数:', num%10)
print('十位上的数:', num//10%10)
print('百位上的数:', num//100%10)
print('千位上的数:', num//1000%10)
# 字符串取出对应的数
num = input('请输入一个四位整数:')
print('个位上的数:', num[3])
print('十位上的数:', num[2])
print('百位上的数:', num[1])
print('千位上的数:', num[0])
'''
发表评论