Python基础1

1 新建一个pyhton工程:

Python基础1

Python基础1

Python基础1

 Python基础1

Python基础1

Python基础1

 

2 pycharm的几个常见用法:

调整快捷键:

 

Python基础1

 Python基础1

 

Python基础1

 

python支持的数据类型:

整型:不会溢出

浮点

字符串:在""或者‘’之间,所以pyhton没有字符类型。

''' ''' 之间可以放置多行文本。

多行文本的另外一个作用,作为函数的注释使用。

print('''hello
    world''')

 

 

Python基础1

 

 

字符串可以进行格式化拼接:

“格式字符串”%(需要格式化的数据列表)

例如:

print ("hello %d %x %s %f"%(100,200,"nihao",10.5))

python是弱类型语言,定义变量的时候,不需要指定类型。

a = 100
print(a)
b = "hello world"
c = 10.5
a = "hello 15PB"
print(a)

python中的运算符:

基本和C/C++一致,不一样的地方有:

1 逻辑运算符 and or not

2 算数运算符中,"/"能够得到整数与小数部分。 '//'只能得到整数部分。

3 ** 幂运算

a = int(input("please input a number"))
b = int(input("please input a number"))
c = a**b
d= a/b
e = b//(a+1)
print(e)

 

 

Python基础1

输入一个数,判断是奇数还是偶数

num = int(input("请输入一个数:"))
if num%2 == 0:
  print("偶数")
else:
  print("奇数")

输入1到7之间的数字,输入几就输出星期几:

day = int(input("请输入一个数:"))
if day<=1 or day>=8:
  print("你输入的有错误")
if day==1:
  print("星期一")
elif day==2:
  print("星期二")

字符串操作:

\1. 去掉字符串左边或者右边的某种字符

a = "    hello world   "
b = "***hello*world***"
c = ""
#1 去掉字符串中的某个字符
print(a.strip())
print(b.strip("*"))
print(b.lstrip("*"))
print(b.rstrip("*"))

\2. 切分

#1 切分
b = "he*llo*wor*ld"
print(b.split("*"))

 Python基础1

 

 

Python基础1

\3. 查找某一个子串的位置

b = "he*llo*wor*ld"
#3 查找某一个子串的位置
print(b.find("wo"))

 Python基础1

 

 

Python基础1

\4. 查找某一个子串的数量

b = "he*llo*wor*lld"
#3 查找某一个子串的数量
print(b.count("ll"))

 

 Python基础1

 

Python基础1

\5. 拼接

#1 切分,以某一个字符为标准,将字符串拆分成列表。
b = "he*llo*wor*ld"
l = b.split("*")
print(l)
#2 拼接,将列表中的内容拼成一个字符串
print("".join(l))

\6. 判断字符串是否以一个子串开头,是否以一个子串结尾

startswith()

endswith()

\7. 求字符串长度

len

\8. 切片

a = "hello world"
b = a[6:11]
c = a[0:6]
print(c,b)

切片的格式

[开始:结束:步长]

a = "hello world"
b = a[6:11:2]
c = a[0:6]
print(c,b)

 Python基础1

 

 

Python基础1

切片还可以负数

-1 代表的是最后一个元素,-2代表倒数第二个

a = "hello world"
b = a[-5:]
print(b)

 

 Python基础1

 

Python基础1

列表(类似于vector,是动态数组)

[]

基本使用示例,和数组差不多。

li = [1,2,3,4,5]
print(li)
print(li[0])
print(li[1])

 

列表中的元素,不要求数据类型一致,可以存放任意类型的数据。

li = [100,10.5,"hello world",[1,2,3,4,5],200]
print(li[0])
print(li[1])
print(li[2][0])
print(li[3][2])

列表是一个类对象,有很多操作的函数:

1 求长度 len

li = [100,10.5,"hello world",[1,2,3,4,5],200]
print(len(li))

2 拼接

li1 = [100,10.5,[1,2,3,4,5],200]
li2 = ["hello"]
li3 = li1+li2
li4= 2*li3
print(li4)

 Python基础1

 

 

Python基础1

\3. 求最大值和最小值

#求最大值和最小值需要注意,类型需要是能进行比较的
li1 = [100,105,60,200]
print(max(li1))
print(min(li1))

\4. 比较两个列表

import operator
li1 = [1,2,3,4,5]
li2 = [1,2,3,4]
li3 = [5]
li2 = li2+li3

print(operator.eq(li1,li2))

 

\5. 列表的内置函数

append 添加到最后

insert 在任意位置插入数据

 

li1 = [1,2,3,4,5]

li1.append(100)
li1.insert(2,50)
print(li1)

 

 Python基础1

 

Python基础1

 

pop 按照位置删除

remove 按照元素删除

 

import operator
li1 = [1,2,3,4,5]
li1.pop(2)   #按位置删除
li1.remove(4) #按元素删除
print(li1)

 

[]

index 查找某一个元素出现的位置

import operator
li1 = [1,2,"hello",4,5]

print(li1.index("hello"))

其他函数:

计数 : 某个元素出现的数量

count

排序:

sort 将列表中元素排序

反序:

reverse 将列表中元素顺序颠倒一下

追加:

extend 类似于+号的操作

li1 = [100,45,50,34,88,76,88]
print(li1.count(88))
li1.reverse()
print(li1)
li1.sort()
print(li1)
li1.reverse()
print(li1)

 Python基础1

 

 

Python基础1

列表也是可以切片的,切片的规则和字符串是一样的

import operator
li1 = [100,45,50,34,88,76,88]
li2 = li1[0:3]
print(li2)

 

元组(类似于const的vector)

()

基本使用和列表是一样的,但是元组的元素是不能修改的。

Python基础1

 Python基础1

 

字典(类似于map)

字典的每一个元素,都是由键和键值组成的键值对:

键是不可改变的量:整型 字符串 元组,不可以是列表

键值是随意的:可以是列表

 

di = {1:"hello",2:"world","hello":[12,3]}
print(di[1])
di[1] = "nihao"
print(di[1])
print(di["hello"])

 

 Python基础1

 

Python基础1

setdefault:设置某一个键的键值,如果不存在这个键,就添加一个

del 直接删掉某一个元素

[键] = obj

get 获取某一个键的键值

has_key 查看是否存在这个键

其他:

keys() 得到所有的键 配合循环,可以遍历字典

 

import operator
di = {1:"hello",2:"world","hello":[12,3]}
print(di.keys())

 

 

Python基础1

 Python基础1

 

values() 得到所有的键值

深拷贝和浅拷贝的问题:

python中的标识符,都是存储的地址

Python基础1

li = [1,100,3,4,5]
li1 = li.copy()
li[0] = "hello"

print(li1)

 

 Python基础1

 

快速赋值的问题,python的元组和字典都可以快速赋值:

 

import operator
#元组或者列表能够整体赋值
li = (1,100,3,4,5)
a,b,c,d,e = li
print(c)

#不使用中间变量,交换两个数
a = 10
b = 20
a,b = [b,a]#(b,a)
print(a)

 

循环结构:

while的使用逻辑和C/C++一致

for一般用于遍历序列

遍历列表:

 

#1. 遍历列表
li = [10,20,15,30,45]
#for循环,每一次循环都会从列表中选出一个元素,一般用于遍历
for ele in li:
  print(ele*2)
#同时输出索引和数值
for index,ele in enumerate(li):
  print(index,ele)

 

遍历字典:

di = {100:"hello",200:"world",10:[1,2,3]}
for key in di.keys():
  print(key,di[key])

 

 Python基础1

 

Python基础1

循环可以跟else:

如果循环不是通过break跳出的,那么就会执行else的语句。

循环如果是正常结束的,就会执行else中的语句。

di = {100:"hello",200:"world",10:[1,2,3]}
for key in di.keys():
  if key == 200:
      print(key,di[key])
      break
else:
  print("循环正常退出")

 

 

python中函数的用法:

 

def add(a,b):
  return a+b

def print_num(a):
  print(a)

m = add(10,20)
print(m)
m = print_num(100)
print(m)

 

由于函数,可以传递任意类型,所以有时候,会在函数内部检测一下类型

 

def add(a,b):
  if type(a)==int and type(b)==int:
      return a+b
  return None
m = add(10,[1,2,3])
print(m)

关键字传参:

 

def add(a,b):
  print("a的值是%d"%(a))
  return a+b
  return None
m = add(10,20)
#可以直接指定参数名去传参,这种方式叫做关键字传参
n = add(b=100,a =200)

 

局部变量与全局变量:

通常定义在函数内的是局部变量,定义在函数外的是全局变量。

在函数内如果要使用全局变量,需要加上global进行声明:

 

sum = 10

def add(a):
  #如果你想在函数内部使用全局变量,加global进行声明
  global sum
  for ele in a:
      sum+=1
  return sum
m = add("hello")
print(m,sum)

 

python允许在函数内部定义全局变量

 

def add(a):
  #如果你想在函数内部使用全局变量,加global进行声明
  sum = 0
  global abc #这里就是声明abc是全局变量,可以在函数外部访问到
  abc= 20
  for ele in a:
      sum+=1
  return sum
m = add("hello")
print(m,abc)

可以查看到当前环境下的所有局部变量和全局变量

def add(a):
  #如果你想在函数内部使用全局变量,加global进行声明
  sum = 0
  global abc
  abc= 20
  for ele in a:
      sum+=1
  print(locals())
  return sum
m = add("hello")
print(globals())

 Python基础1

 

Python基础1

实现列表去重

List=[1,2,3,4,4,2,6,3,3,2]
List2=list(set(List))
print(List2)

输出1!+2!+3!+4!+5!的值

def fun (n):
   if n ==1:
       return 1
   elif n == 2:
       return 2
   else:
       return n*fun(n-1)

print(fun(1)+fun(2)+fun(3)+fun(4)+fun(5))

水仙花数

i=153
a = i % 10         #个位数值<br>
b = (i // 10) % 10 #十位数值<br>
c = (i // 100) % 10 #百位数值 <br>
d = a*a*a + b*b*b + c*c*c
print(d)

打印菱形图案

def fun(n):
  for i in range(1, 2*n, 2):
      j = int(((2*n-1) - i) / 2)

      print(' ' * j + '*' * i + ' ' * j)

  for i in range((2*n-1)-2, 0, -2):
      j = int(((2*n-1) - i) / 2)

      print(' ' * j + '*' * i + ' ' * j)
fun(10)

冒泡排序

List=[20,30,40,3,6,47,25,77,15]

for i in range(len(List)-1):
  for j in range(len(List)-1-i):
      if List[j] < List[j+1]:
          List[j], List[j+1] = List[j+1], List[j]

print(List)

杨辉三角

def Yanghui():
  n=[1]
  while True:
      yield n
      n.append(0)
      n=[n[i]+n[i-1]for i in range(len(n))]
def fun(n):
  for i in Yanghui():
      print(i)
      n-=1
      if n== 0:
          break
fun(10)
上一篇:HQL不常用语句


下一篇:案例练习