# coding:utf-8
# #号表示单行注释,被注释的代码不会被运行 ctrl+/ 进行注释
# python中的输出语句
# print("hello dcs38") # print是python当中默认的打印方式
name = 'hello world' # 定义了一个变量name,将=号右边的"hello world"字符串赋值给到name这个变量
# # 在python中,一个=号表示的赋值,将右边的值赋值给到左边,两个=号表示的是恒等
print(name)
# # python中的格式化输出
# # %s :字符串 (采用str()的显示)
name = 'dcs38'
ss='22asd'
print('%s is No 1'%ss)
# # %c :单个字符
name = 'b'
print('%c is 正确的字符'%name)
# # %d:十进制整数
num = 38
print('dcs38 is No %d'%num)
# # %i :十进制整数
num = 109
print('dcs38 is No %i'%num)
# # %o:八进制整数
num = 19
print('dcs38 is No %o'%num)
# # %x:十六进制整数
# num = 25
# print('dcs38 is No %x'%num)
# # %f:浮点数
num = 27
print('dcs38 is No %f'%num)
# # %% :字符"%"
num = 8
print('这款理财产品的年化收益率为%d%%'%num)
name = 'dcs38'
num = 1
# python中的注释
# #号表示的单行注释
'''
多行注释
'''
# python中的单引号,双引号,三引号的作用
name = "dcs382"
name = '''dcs383'''
name = 'dcs381'
print(name)
# print('dcs38 is "No" 1') # 单引号里面不能包含单引号和三引号,只能包含双引号
# print("dcs38 is '''No''' 1") # 双引号里面可以包含单引号和三引号,但不能包含双引号
# print('''dcs38 is '''No''' 1''') # 三引号里面可以包含单引号和双引号,但不能包含三引号
# python中变量的命名规则
# 1、变量由字母,数字,下划线组成,但必须是字母或下划线开头,区分大小写,不能由数字开头
# 2、下划线和大写字母开头的标识符有特殊意义
# 3、 python中的保留关键字不能做为变量来使用
# 正确的变量命令方式
name_1 = 'duoceshi'
Name = 'dcs' # 有特殊含义,一般用来表示类名
name = 'aaa'
_name = 'bbb' # 有特殊含义,一般用来表示私有变量
NAME = 'ddd' # 有特殊含义,一般用来表示常量
name__ = 'eeee'
# 错误的变量命名方式
# 1name = 'ccc' # 变量名不能以数字开头
# def = 'xiaoshen' # 变量名不能为保留关键字
# print(name)
name=123.523
print(type(name)) # <class 'str'> 查看name变量的数据类型
print(name)
name1 = int(name) # 将name变量的数据类型转换成整型的数据,并将其赋值给到name1这个变量
print(name1)
print(type(name1)) # <class 'int'>
python中的算术运算符
a = 5
b = 3
c = a + b
c = a - b
c = a * b
c = a / b
c = a ** b # a的b次方
c = a // b # 向零取整,结果是a/b的整数部分,丢弃小数部分
c = a % b # 取余
print(c)
# python中的赋值运算符
a = 5
b = 3
a = a + b # 将a + b的值先进行计算然后赋值给到a这个变量,可以简写成a += b
a -= b
a *= b
a /= b
a **= b
a //= b
a %= b
print(a)
python中的比较运算符,运算的结果为布尔值(bool)
a = 5
b = 3
print(a > b) # True
print(a < b) # False
print(a >= b) # True
print(a <= b) # False
print(a != b) # True
print(a == b) # False
# python中的逻辑运算符,运算的结果为布尔值(bool)
a = 5
b = 3
c = 5
and两边的结果都为True,结果才为True,否则结果为False
or两边的结果有一个为True,结果就为True,否则结果为False
print(a > b and a == c) # True
print(a == b or a == c) # True
print(not a > b) # False
# python中的成员运算符,运算的结果为布尔值(bool)
str1 = 'abcdefg'
print('d' in str1) # True
print('bcd' not in str1) # False
print(not 'ef' in str1) # False
# python中的位运算符
# '''
# 1 TB = 1024 GB
# 1 GB = 1024 MB
# 1 MB = 1024 KB
# 1 KB = 1024 byte
# 1 byte = 8 bit 计算机中最小的计算单位为比特位 bit
# '''
a = 11 # 00001011
b = 5 # 00000101
------------------------
00000001 按位与运算
00001111 按位或运算
00001110 按位异或运算
00000010 右移2位运算
00101100 左移2位运算
c = a & b # 1 按位与运算
c = a | b # 15 按位或运算
c = a ^ b # 14 按位异或运算
c = ~a # -12 按位取反运算 固定公式:-(x+1)
c = a >> 2 # 2 右移运算
c = a << 2 # 44 左移运算
print(c)
练习:
a=8,b=24,求出按位与,或,异或,左移3位,右移3位的值
a=8
b=24
c=a & b
print(c)
c=a | b
print(c)
c=a^b
print(c)
c=a<<3
print(c)
c=a>>3
print(c)
python中的索引 index
序列分为有序序列和无序序列
有序序列:字符串,列表,元组
无序序列:字典,集合
str1 = 'abcdefgh'
name = str1[3] # d
name = str1[-4] # e
name = str1[8] # 大于最大索引位时,会报错:IndexError: string index out of range 索引溢出
name = str1[-9] # 小于最小索引位时,会报错:IndexError: string index out of range 索引溢出
print(name)
list1 = ['abc','xiaoshen',123,2]
name = list1[-4] # 'abc'
print(name)
# python中的切片
# 表达式:[start_index:end_index:step]
# 1、切片取值会从起始索引开始向结束索引方向取值
# 2、步长值为1时,则逐个取值,步长值为2时,则隔一个取一个
# 3、步长值为正,则步长值的取值方向为从左往右,如果步长值为负,则步长值的取值方向从右往左
# 4、当索引的取值的方向与步长值的取值方向相同时,才能取到值,到方向相反时,则无法取到任何值
# 5、当步长值没有设置的时候,则默认为1,步长值不能设置为0
# 6、当切片表达式中,没有设置结束索引时, 则从起始索引开始取值,如果步长值为正,则从左往右取,一直取到最后一个元素,
# 如果步长值为负,则从右往左取,一直取到最后一个元素
# 7、当切片表达式中,没有设置起始索引时,则可能从最左边开始取值,也可能从最右边开始取值,取决于步长值的正负,步长值
# 为正,则从最左边开始取值,一直取到结束索引的前一位,如果步长值为负,则从最右边开始取值,一直取到结束索引的前一位
str1 = 'abcdefgh'
name = str1[2:5:1] # cde
name = str1[2:5:2] # ce
name = str1[2:5:3] # c
name = str1[2👎2] #ceg
name = str1[-6:5:1] # cde
name = str1[7:2:-1] #hgfed
name = str1[2:6] #cdef
name = str1[-6:5:-2] #为空
name = str1[2::1] # cdefgh
name = str1[-5::-1] # dcba
name = str1[:5:1] #abcde
name = str1[:-7:-2] #hfd
name = str1[::-1] #hgfedcba # 字符串的反转输出
name = str1[2:1000:1] # cdefgh 切片取值不会出现索引溢出的问题
print(name)