声明:本文为CSDN视频课“趣学Python,2天零基础入门”的课程内容。
课程视频链接https://download.csdn.net/course/detail/35408
实战部分代码,可在上述课程网址中下载。
print('Hello World')
#Number 数字
#(1) int 有符号整数
from turtle import Turtle
a = 10
#(2) boolean 布尔型,Ture=1,False=0
b = True
#(3) float 浮点型
c = 1.5
#(4) complex 复数
d = 4 + 3j
#打印abcd的number类型
print(type(a), type(b), type(c), type(d))
#计算
print('a+b: {0}' .format(a + b))
print('a-b: {0}' .format(a - b))
print('a/c: {0}' .format(a / c)) #除法,得到一个浮点数
print('a//b: {0}' .format(a // c)) #除法,得到一个整数
print('a%4: {0}' .format(a % b)) #取余
print('2^3: {0}' .format(2 ** 3)) #立方运算
#String 字符串
name = 'hsykl'
location = 'shanghai'
#加号+进行拼接
result1 = name + ' live in ' + location
print(result1)
#复制
very = 'very '
result2 = name + ' is ' + (very * 3) + 'happy in ' + location
print(result2)
#截取
data = '20220814'
year = data[0:4]
print(year)
noyear = data[4:]
print(noyear)
#List 列表
a = [1, 2, 3, 4, 'a', 'b', True]
#截取元素
print(a[2:6]) #截取的索引值为2,3,4,5的这四个元素
#添加元素,默认放List末尾
a.append(6)
print(a)
#删除元素,默认删List末尾元素
a.pop()
print(a)
#也可以指定参数,按照索引值删除
a.pop(0)
print(a)
#修改元素
a[0] = 'hsy'
print(a)
print('=============================================')
元素元素定义在小括号**()**中,用逗号,分割。
与列表类似,不同之处在于元组的元素一旦创建,便不能修改,修改的话会报错。
Tuple常用方法:
#Tuple 元组
b = (1, 2, 1, 4, 'h', 's', 'y')
#元组一旦创建,便不可修改,否则会报错
#b[0] = 0
print(b)
#返回元素出现次数
print(b.count(1))
#返回元素的索引值
print(b.index('s'))
#Set 集合
a = {1, 2, 3, 4, 1, 'h', 's'} #添加重复元素时,并不会报错,重复元素并不会保存到Set中,会被剔除
print(a)
b = {1, 5, 8}
print(b)
b.add('!')
print(b)
#集合运算
print(a & b)
print(a | b)
print(b - a)
#Dirctionary 字典
d = {1:'name', 2:'sex', 3:'high'}
print(d)
#获得所有key
print(d.keys())
#获得所有的value
print(d.values())
#获取某个key对应的value
print(d[1])
print(d.get(1))
#覆盖某个key对应的value
d[1] = 'names'
print(d[1])
print(d)
#删除某个key所在的键值对
d.pop(2)
print(d)
#清空字典中所有键值对
d.clear()
print(d)
有if_else和if_elif_else,if中也可以嵌套if。
#最简单的if_else判断语句
a = 10
if a>= 5:
print('a大于等于5')
else:
print('a小于5')
#多条件的if_else判断语句
a = 10
if a <= 5:
print('a小于等于5')
elif 5 < a <= 20:
print('a大于5,小于等于20')
else:
print('a大于20')
#if判断实例:判断小狗的年龄
age = int(input("请输入你家小狗的年龄:"))#等待并监视你在终端输入的数据,并赋给int类型的变量age
if age <= 0:
print("你在逗我吧!")
elif age == 1:
print("相当于人类的 14 岁!")
elif age == 2:
print("相当于人类的 22 岁!")
elif age > 2:
human_age = 22 + (age - 2) * 5
print("相当于人类的 {0} 岁!".format(human_age))
input('点击 enter 键退出')
#if也可以嵌套
b = int(input("请输入任意正整数:"))
if b < 20:
if b > 5:
print('b大于5,小于20')
else:
print('b小于等于5')
else:
print('b大于等于20')
#该序列可以是List列表或者Set集合,将sequence的每个元素,依次赋值给variable
for <variable> in <sequence>:
<statements>
else
<statements>
#简单的for循环
country = ["China", "Japen", "Korea", "USA"]
for i in country:
print(i)
else:
print("第一次简单的遍历结束")
#带有if条件判断的for循环
country = ["Japen", "China", "Korea", "USA"]
a = 1 #这里定义个int型变量a
for i in country:
if i == 'China':
print(i + " NO.1!") #不管"China"在列表中的第几位,打印出来都是NO.1
else:
a = a + 1
print(i + " NO.{0}!".format(a)) #但其他国家的NO.,是按他们在列表中的顺序,从2开始递增
else: #Japen NO.2! Korea NO.3! USA NO.4!
print("第二次带if条件判断的遍历结束")
#遍历一个字典
d = {'name':'hsykl', 'age':'25', 'sex':'male'}
print(d) #1、这是将整个字典平铺打印出来,包括{}
for key in d:
print(key + ':' + d[key]) #2、这是遍历的单个打印出key或key对应的键值对
#没有else语句的while循环
a = 10
while a < 100:
print(a)
a = a + 10
#带有else语句的while循环
b = 10
while b < 200:
print(b)
b = b + 10
else:
print("b大于200, 退出循环")
#for循环中break
city = ["Beijing", "Zhengzhou", "Kaifeng", "Shanghai"]
for j in city:
if j == "Zhengzhou":
print(j + " NO.1!")
break
print("welcome to " + j)
else:
print(j)
else:
print("城市的列表,遍历结束")
for循环中continue
打印结果为:
Beijing
Zhengzhou NO.1!
Kaifeng
Shanghai
城市的列表,遍历结束
#for循环中continue
city = ["Beijing", "Zhengzhou", "Kaifeng", "Shanghai"]
for j in city:
if j == "Zhengzhou":
print(j + " NO.1!")
continue
print("welcome to " + j) #该次循环中,continue之后的语句不会执行,跳转进行下面的循环
else:
print(j)
else:
print("城市的列表,遍历结束")
模块是一个包含所有你定义的函数和变量的文件,其后缀名为.py。
模块可以被别的程序引入,以使用该模块中的函数等功能。
#定义一个util模块,提供简单的运算方法,供其他模块调用
def getSum(a, b):
return a + b
def getProduct(a, b):
return a * b
#导入util模块下的指定内容
#import util
#print(util.getSum(1, 2))
#print(util.getProduct(3, 4))
#导入util模块下的所有内容
from util import *
print(getSum(3, 4))
print(getProduct(1, 2))
Python自带一些标准模块库。
有些模块直接被构建在解析器中,这些虽然不是语言内置的功能,但是可以高效的使用,甚至是系统级调用也没问题。
Python标准库网站:https://docs.python.org/zh-cn/3/library/,常用模块如下:
#os模块
import imp
import os
print(os.getcwd()) #getcwd():返回当前文件所在的系统路径
#re模块
import re
print(re.findall(r'\bf[a-z]*', 'which foot or hand fell fastest!'))
#findall()函数:查找后边字符串中,所有以字母‘f’开头的单词
#math模块
import math
print(math.pi) #pi函数:调用π
#datetime模块
import datetime
print(datetime.date.today())#date.today()函数:获取当天该计算机IP所在时区的日期
import requests #导入第三方模块:requests
r = requests.get("https://www.baidu.com/") #采用requests的get方法获取指定网址的html内容
print(r.text) #将获取的html内容以文本的形式打印
函数:
内置函数:
#abs 获取绝对值
a = abs(-2)
print(a)
print(abs(-3))
#max/min 返回列表元素中的最大小值
b = [1, 2, 3, 4]
print(max(b))
print(min(b))
#sorted 对列表元素进行排序,默认升序
c = [4, 2, 1, 5, 8]
print(sorted(c))
#set 对列表变成集合,来去重
d = [1, 1, 3, 4, 2]
print(set(d))
#hash 获取一个对象(数字或者字符串)的哈希值
e = 10
f = 'abc'
print(hash(e))
print(hash(f))
#len 返回对象(字符、列表、元组等)长度或元素个数
g = (a, 43, b, 13)
print(len(g))
#round 对浮点数四舍五入
h = 3.14
print(round(h))
#format 格式化字符串的函数
#用{}代表占位符,内部是参数的索引值
#format函数可以接收无限个参数
print('name is {0}, I live in {1}'.format('hsykl','shanghai'))
函数代码块以def关键词开头,后接函数名和圆括号()用于传入参数。
函数内用return关键字返回值,无return代表没有返回值。
def printName( str )
print ‘my name is:’ + str
参数:必备参数、关键字参数、默认参数、不定长参数。
#(1)必备参数
#必备参数须以正确的顺序传入函数,调用时的数量必须和声明时一样
#且不能不传参数,不然会语法报错
def printName(name, location):
print('my name is: ' + name, '\nI live in: ' + location)
printName('hsykl', 'shanghai')
#(2)关键字参数
#关键字参数允许调用参数时参数的顺序与声明时不一致,Python可根据参数名匹配参数值
def printInfo(name, city):
print('my name is: ' + name, '\nI live in: ' + city)
printInfo(city='beijing', name='hsykl')
#(3)默认参数
#调用函数时,默认参数的值若没有传入,会用默认值
#注意!有默认值的参数必须放在最后,否则会产生语法错误
def printDefault(name, city='kaifeng'):
print('my name is: ' + name, '\nI live in: ' + city)
printDefault('HSYKL')
printDefault('HSYKL', 'henan-kaifeng')
#(4)不定长参数
#可以传入不定长度的参数,声明时可以不用声明
#加了*的变量名会代表所有未命名的变量参数
def printFix(*numbers):
for i in numbers:
print(i)
printFix('h', 's', 'y', 'k', 'l')
printFix(1,2,3,4,5)
面向对象编程:
#class and object
class Student:
#构造方法 constructor -》如何创建一个对象,相当于verilog中的new函数
#self相当于java/verilog中的this关键字
def __init__(self, name, age, sex):
self.name = name
self.age = age
self.sex = sex
def displayInfo(self):
print('name : ' + self.name + '\nage : ' + str(self.age) + '\nsex : ' + self.sex)
#实例化对象
a = Student('Lilei', 12, 'boy')
b = Student('Hanmeimei', 13, 'girl')
#使用对象调用类中函数
a.displayInfo()
print()
b.displayInfo()
封装:
继承:
#class and object
class Student:
#(1)构造方法 constructor -》如何创建一个对象,相当于verilog中的new函数
#self相当于java/verilog中的this关键字
def __init__(self, name, age, sex):
self.name = name
self.age = age
self.sex = sex
def displayInfo(self):
print('name : ' + self.name + '\nage : ' + str(self.age) + '\nsex : ' + self.sex)
#(2)实例化对象
a = Student('Lilei', 12, 'boy')
b = Student('Hanmeimei', 13, 'girl')
#(3)使用对象调用类中函数
a.displayInfo()
print()
b.displayInfo()
聊天机器人
通过html(网页源文件)+ css(定义网页字体、图片等样式)构造页面样式。
将用户的消息发送给服务端。
客户端接收服务端返回的消息,进行展示。
基于腾讯云智能API:https://cloud.tencent.com/document/api/1060/37438
申请API使用权限。
安装腾讯云类库:pip3 install tencentcloud-sdk-python