嘉兴大学Python 快速入门
原创2023年6月15日大约 13 分钟...约 3973 字
1. 变量
变量的定义:变量用来在计算机的内存当中,开辟空间。——存数据
变量的创建:
a = 1
a = a + 10
print(a)
# print() 打印输出
变量的运行逻辑:从上到下,从右到左。
注释: 也就是注解,这个代码是什么含义。特点:人看的见,计算机看不见。
1.1 变量创建原则:
1.1.1 变量区分大小写
a = 1
A = 100
print(a)
1.1.2 变量不能使用空格间隔
不能使用空格间隔
user name = "aiyuechuang"
File "/Users/huangjiabao/GitHub/SourceCode/MacBookPro16-Code/PythonCoder/StudentCoder/51-qiuzhen/demo.py", line 1
user name = "aiyuechuang"
^^^^
SyntaxError: invalid syntax
使用下划线间隔
username = "aiyuechuang"
user_name = "aiyuechuang"
1.1.3 不能使用内置函数
/内置关键词
当作变量名
问题来了:什么是内置函数?什么是内置关键词?
内置函数,就是安装 Python 后自带的,不需要我们编写任何代码直接使用。比如:print()
、int()
。
——如何区分?「如果你没有创建这个函数,但是这个函数你可以直接使用,那么它就 Python 内置函数」
print = 1
print(print)
Traceback (most recent call last):
File "/Users/huangjiabao/GitHub/SourceCode/MacBookPro16-Code/PythonCoder/StudentCoder/51-qiuzhen/demo.py", line 2, in <module>
print(print)
TypeError: 'int' object is not callable
内置关键词,就是在 Python 中,有特殊含义的。
内置关键词有哪些?
help("keywords")
Here is a list of the Python keywords. Enter any keyword to get more help.
False class from or
None continue global pass
True def if raise
and del import return
as elif in try
assert else is while
async except lambda with
await finally nonlocal yield
break for not
class = "aiyc"
1.1.4 数字不能用做开头
01user = "aiyc"
除了开头,想放在哪里,就放在哪里。
u1s2e3r44 = "aiyc"
2. 数字型
2.1 特点
In [1]: 1 + 1
Out[1]: 2
In [2]: 1 + 1.0
Out[2]: 2.0
In [3]: 2 - 1
Out[3]: 1
In [4]: 2 - 1.0
Out[4]: 1.0
In [5]: 2 * 3
Out[5]: 6
In [6]: 2.0 * 3
Out[6]: 6.0
In [7]: 9 / 3
Out[7]: 3.0
In [8]: # 如果其中有一个浮点数,结果就会得到浮点数「优先级最高」
In [9]: # 除法涉及精度问题,所以最后就是浮点数
2.2 运算符
算术运算符:用于计算
比较运算符:比较值的大小
赋值运算符
a = 1
a = a + 100
print(a)
a = 1
a += 100
print(a)
3. 字符串
3.0 字符串三大特性
- 有序性:从左到右 0 开始,从右到左 -1
- 任意数据类型:你键盘上可以输入的字符,都可以是字符串的元素
- 不可变性:字符串被创建出来之后,不能被修改「在代码运行的过程中」
3.1 单双三引号特点
s = "I'm lilei." # 单双引号混用
print(s)
s = """理解问题:我们的任务是求出数列 s=14+19+116+...+1100∗100s
= \frac{1}{4} + \frac{1}{9} + \frac{1}{16}+...+\frac{1}{100*100}s=41+91+161+...+100∗1001 的和。可以看出这个数列实际上是每一项都是前一个整数的平方的倒数,从 2 的平方开始,直到 100 的平方。是不是不理解?我接下来好好给你解释:在这个问题中,我们有一个数列 s=14+19+116+...+1100∗100s = \frac{1}{4} + \frac{1}{9} + \frac{1}{16}+...+\frac{1}{100*100}s=41+91+161+...+100∗1001 。你可以看到,每一项(也就是每一个加法的部分)都是一个整数的平方的倒数。"倒数"就是 1 除以那个数。比如 4 的倒数就是 14\frac{1}{4}41 ,9 的倒数就是 19\frac{1}{9}91 。当我们说每一项是一个整数的平方的倒数时,我们是指:第一项 14\frac{1}{4}41 是 2 的平方(即 4)的倒数。第二项 19\frac{1}{9}91 是 3 的平方(即 9)的倒数。第三项 116\frac{1}{16}161 是 4 的平方(即 16)的倒数。以此类推,直到最后一项 1100∗100\frac{1}{100*100}100∗1001,它是 100 的平方(即 100*100)的倒数。我们需要计算所有这些项的总和。这就是我们用循环来做的原因:我们可以从 2 开始,一直循环到 100,对每个整数,我们计算它的平方的倒数,然后加到总和上。设计算法:我们可以使用一个循环来求解这个问题。我们初始化一个变量 s,这个变量将用于保存我们的结果。然后,我们遍历从 2 到 100 的所有整数。对于每一个整数,我们计算它的平方的倒数,然后加到 s 上。
------
著作权归黄家宝|AI悦创所有
原文链接:https://bornforthis.cn/1v1/47-qiuzhen/01.html" # 单双引号混用"""
print(s)
# 单双三引号混用
多行注释
3.2 获取字符串长度 len()
s = "aiyc"
print(len(s))
3.3 获取字符串的元素
- 获取单个元素
s = "aiyuechuang"
select = s[0]
print(select)
# y
# g
- 获取多个元素
s = "aiyuechuang"
select = s[0:4]
print(select)
# ech
# huang
- 获取不连续的值
s = "aiyuechuang"
select = s[0:len(s):2]
# select = s[::2]
print(select)
# auhn
# acg
- 倒序
s = "aiyuechuang"
select = s[::-1]
print(select)
s = "aiyuechuang"
print(len(s))
select = s[-1:-12:-1]
print(select)
select = s[10::-1]
print(select)
3.4 字符串的内置方法
3.4.1 lower()
s = "QIUZHEN"
new_s = s.lower()
print(new_s)
print(s)
# output
qiuzhen
QIUZHEN
3..4.2 upper()
s = "qiuzhen"
new_s = s.upper()
print(new_s)
print(s)
# output
QIUZHEN
qiuzhen
3.4.3 index()
base
s = "qiuzhen qiuzhen"
new_s = s.index("i") # 找到 i 第一次出现的下标
print(new_s)
print(s)
print(s.index("i"))
可以找一个单词,返回第一次出现的下标「单词的第一个字母」
s = "qiuzhen qiuzhen"
new_s = s.index("iu") # 找到 i 第一次出现的下标
print(new_s)
print(s)
找不到会报错
s = "qiuzhen qiuzhen"
new_s = s.index("ius") # 找到 i 第一次出现的下标
print(new_s)
print(s)
# output
Traceback (most recent call last):
File "/Users/huangjiabao/GitHub/SourceCode/MacBookPro16-Code/PythonCoder/StudentCoder/51-qiuzhen/demo.py", line 2, in <module>
new_s = s.index("ius") # 找到 i 第一次出现的下标
^^^^^^^^^^^^^^
ValueError: substring not found
3.4.4 find()
功能和 index 一样,唯一的区别就是 find 找不到不会报错,只会返回 -1。
s = "qiuzhen qiuzhen"
new_s = s.find("ius") # 找到 i 第一次出现的下标
print(new_s)
print(s)
# output
-1
qiuzhen qiuzhen
3.4.5 startswith()
s = "qiuzhen qiuzhen"
new_s = s.startswith("q") # 判断字符串是不是以特定字符/单词开头
print(new_s)
print(s)
# output
True
qiuzhen qiuzhen
3.4.6 endswith()
s = "qiuzhen qiuzhen"
new_s = s.endswith("q") # 判断字符串是不是以特定字符/单词结尾
print(new_s)
print(s)
# output
False
qiuzhen qiuzhen
3.4.7 split()
s = "q,i,u, ,z,h,e,n"
new_s = s.split(",") # 将字符串以特定字符分割
print(new_s)
print(s)
# output
['q', 'i', 'u', ' ', 'z', 'h', 'e', 'n']
q,i,u, ,z,h,e,n
如果没有逗号,会把整个字符串当成分割后的元素:
s = "qiuzhen"
new_s = s.split(",") # 将字符串以特定字符分割
print(new_s)
print(s)
3.4.8 strip()
默认
s = " qiuzhen "
new_s = s.strip() # 默认去除字符串前后空白字符,包括换行符
print(new_s)
print(s)
# output
qiuzhen
qiuzhen
可以指定
s = "--- qiuzhen ---"
new_s = s.strip("-") # 可以指定要去除的符号
print(new_s)
print(s)
同时指定多个,与顺序无关
s = "--- qiuzhen ---"
# new_s = s.strip("- ") # 可以指定要去除的符号
new_s = s.strip(" -") # 可以指定要去除的符号
print(new_s)
print(s)
# output
qiuzhen
--- qiuzhen ---
3.4.9 replace()
s = "--- qiuzhen q q q q ---"
new_s = s.replace("q", "love") # 替换指定的内容replace(old, new),默认全部替换
print(new_s)
print(s)
# output
--- loveiuzhen love love love love ---
--- qiuzhen q q q q ---
s = "--- qiuzhen q q q q ---"
new_s = s.replace("q", "love", 1) # 替换指定的内容replace(old, new, 指定替换次数)
print(new_s)
print(s)
# output
--- loveiuzhen q q q q ---
--- qiuzhen q q q q ---
3.4.10 count()
s = "--- qiuzhen q q q q ---"
new_s = s.count("q") # 统计 q 出现的次数
print(new_s)
# output
5
3.4.11 isdigit()
s = "--- qiuzhen q q q q ---"
new_s = s.isdigit() # 判断是否是纯数字字符串,出现数字之外的字符都是 False
print(new_s)
# output
False
3.4.12 isalpha()
s = "qiuzhen"
new_s = s.isalpha() # 判断是否是纯字母字符串,出现字母之外的字符都是 False
print(new_s)
# output
True
3.4.13 format
s = "qiuzhen {}".format("good")
print(s)
# output
qiuzhen good
s = "qiuzhen {}"
print(s.format("good"))
# output
qiuzhen good
s = "qiuzhen {}"
new_s = s.format("good")
print(new_s)
# output
qiuzhen good
多个元素
s = "qiuzhen {} {} {}"
new_s = s.format("good", "aiyc", "cava")
print(new_s)
s = "qiuzhen {a} {a} {a}"
new_s = s.format(a="good")
print(new_s)
s = "qiuzhen {a} {b} {c}"
new_s = s.format(a="good", b="look", c="f")
print(new_s)
# output
qiuzhen good look f
3.5 字符串不可变性
3.6 字符串转义
3.7 字符串的连接
3.8 获取用户输入 input
n = input("输入提示:>>>")
print(n)
a = input("这里你可以输入:>>>") # 获取用户输入
print("输出:>{}".format(a))
注意
input 得到的数据都是字符串!!!
code
# -*- coding: utf-8 -*-
# @Time : 2023/6/16 00:10
# @Author : AI悦创
# @FileName: variable.py
# @Software: PyCharm
# @Blog :https://bornforthis.cn/
n = input(":>>>")
print(type(n))
n = input(":>>>")
print(type(n))
n = input(":>>>")
print(type(n))
n = input(":>>>")
print(type(n))
n = input(":>>>")
print(type(n))
n = input(":>>>")
print(type(n))
n = input(":>>>")
print(type(n))
n = input(":>>>")
print(type(n))
output
:>>>1
<class 'str'>
:>>>[1, 2, 3, 4]
<class 'str'>
:>>>(1, 2, 3, 4)
<class 'str'>
:>>>{1, 2, 3, 4}
<class 'str'>
:>>>{"a": "look"}
<class 'str'>
:>>>True
<class 'str'>
:>>>False
<class 'str'>
:>>>1.1
<class 'str'>
提示
Input() 可以放任意数据类型,当作提示语。
n = input([1, 2, 3])
print("n 的值", n)
# output
[1, 2, 3]ai
n 的值 ai
3.9 Practice
s1 = input('请输入您的姓名: ')
s2 = input('请输入您的性别: ')
s3 = input('请输入您的年龄: ')
s4 = input('请输入您的学校: ')
print('正在生成您的简历......\n*************')
print('\t简历')
# print('姓名:'+s1)
# print('性别:'+s2)
# print('年龄:'+s3)
# print('学校:'+s4)
print('姓名:{}'.format(s1))
print('性别:{}'.format(s2))
print('年龄:{}'.format(s3))
print('学校:{}'.format(s4))
4. 列表
4.1 列表的特点
- 有序性:从左到右0开始,从右到左 -1 开始
- 可变性
- 任意数据类型:Python 所拥有的数据类型
4.2 获取列表中某个元素
4.3 获取连续的元素
4.4 列表的切片赋值
4.4 列表的内置函数
4.4.1 len()
4.4.2 append()
4.4.3 change list
4.4.4 del
4.4.5 列表拼接
4.4.6 判断某个元素是否存在于列表中
In [31]: print("a" in "aiyc")
True
In [32]: print("a" in [1, 2, 3, 4])
False
4.4.7 count()
获取元素个数:
4.4.8 index()
4.4.9 sort()
In [33]: lst = [1, 2, 3, 33, 22, 11, 111, 344]
In [34]: lst.sort()
In [35]: lst
Out[35]: [1, 2, 3, 11, 22, 33, 111, 344]
In [36]: lst.sort(reverse=True)
In [37]: lst
Out[37]: [344, 111, 33, 22, 11, 3, 2, 1]
4.4.10 Practice
4.4.11 pop()
In [38]: lst = [1, 2, 3, 33, 22, 11, 111, 344]
In [39]: lst.pop()
Out[39]: 344
In [40]: lst
Out[40]: [1, 2, 3, 33, 22, 11, 111]
In [41]: lst.pop()
Out[41]: 111
In [42]: lst
Out[42]: [1, 2, 3, 33, 22, 11]
In [43]: lst.pop(2) # 默认删除最后一位,可以指定删除哪个位置的下标
Out[43]: 3
In [44]: lst
Out[44]: [1, 2, 33, 22, 11]
4.4.12 remove()
In [45]: lst = [1, 2, 3]
In [46]: lst.remove(2) # 可以指定删除元素
In [47]: lst
Out[47]: [1, 3]
5. 元组
6. 字典
6.0 字典的特点
- 无序性
- 字典是由一系列的 key 和 value 组成的;
d = {key1: value1, key2: value2.....}
- 做 key 的要求
- 必须是不可变的数据类型
- 列表可变,不可以做字典 key、集合、字典
- 不可变的数据类型,才可以做字典的 key
- 必须是不可变的数据类型
- 字典的 value 是可以使用任意数据类型
6.1 一个电话本簿要如何存储
6.2 字典结构
6.3 get()
In [58]: d = {'a': 2, 'b': 1, 'c': 5, 'd': 4, 'e': 3, 0:"ss"}
In [59]: d["ssss"]
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
Cell In[59], line 1
----> 1 d["ssss"]
KeyError: 'ssss'
In [60]: print(d.get("a"))
2
In [61]: print(d.get("aaaaa"))
None
In [62]: print(d.get("aaaaa", "没有找到"))
没有找到
6.4 key
6.5 用字典 dict 函数创建字典
6.6 字典的查询
6.7 更新字典数据
6.8 字典的删除
6.9 字典结构嵌套字典
6.9.1 字典列表
6.9.2 在字典中存储列表
6.9.3 在字典中储字典
6.9.4 回顾总结
7. 集合
7.2 集合的特点
- 无序性:集合没有顺序,也就是没有下标;
- 可变性:也就是集合可以添加数据,可以删除数据,不能修改数据;
- 确定性:集合中的每一个元素,都必须是确定的;
- 列表可以做集合的元素吗?——列表可变,所以导致不确定性;
- 集合自己也不行,也不能做集合自身的元素;
- 字典也是不能做集合的元素;
- 布尔值、数字、元组,可以做集合的元素;
- 互异性:集合的每一个值,是不重复的,重复的话会自动去掉,不会报错。
7.1 集合创建
7.2 集合的交集
7.3 集合的并集
7.4 集合的差集
7.5 集合的对称差集
7.6 思考题
8. 布尔表达式
8.1 布尔值
8.2 逻辑运算
8.3 布尔表达式
8.4 表达式的应用——条件测试
8.5 表达式的应用——多条件检查
8.6 测试
9. if
9.1 Python 代码缩进的问题
9.2 条件判断——if/else
9.3 例子:判断用户输入
9.4 注意:判断使用双等号 ==
9.5 例子:判断用户输入的内容
9.6 多重 if 语句
10. while 循环
10.1 例子:判断用户输入
10.2 例子:判断用户输入内容
10.3 While 循环
10.4 i = i + 1
# 初始化一个布尔值为 False 的变量 a,它将用于控制 while 循环的结束
a = False
# 初始化一个变量 i 为 0,它将用于遍历1到100的数字
i = 0
# 初始化一个变量 total 为 0,它将用于存储所有偶数的和
total = 0
# 进入一个 while 循环,只有当 a 变为 True 时循环才会结束
while not a:
# 判断 i 是否小于等于 100,如果是则进入下一步,如果不是则将 a 设置为 True 并结束循环
if i <= 100:
# 判断 i 是否为偶数,如果是则将 i 加到 total 上
if i % 2 == 0:
total = total + i
# i 加 1,进入下一次循环
i += 1
# 如果 i 不是偶数,则直接让 i 加 1,进入下一次循环
else:
i += 1
else:
# 如果 i 大于 100,那么就将 a 设置为 True,结束循环
a = True
# 打印变量 total 的值,即1到100之间所有偶数的和
print(total)
11. for
11.1 for 循环
11.2 循环数字
11.3 range 使用
11.4 For 循环——通过索引遍历序列元素
11.5 break 跳出循环
11.6 pass 啥都不干,占位语句
11.7 作业
12. 函数
公众号:AI悦创【二维码】
AI悦创·编程一对一
AI悦创·推出辅导班啦,包括「Python 语言辅导班、C++ 辅导班、java 辅导班、算法/数据结构辅导班、少儿编程、pygame 游戏开发、Web、Linux」,全部都是一对一教学:一对一辅导 + 一对一答疑 + 布置作业 + 项目实践等。当然,还有线下线上摄影课程、Photoshop、Premiere 一对一教学、QQ、微信在线,随时响应!微信:Jiabcdefh
C++ 信息奥赛题解,长期更新!长期招收一对一中小学信息奥赛集训,莆田、厦门地区有机会线下上门,其他地区线上。微信:Jiabcdefh
方法一:QQ
方法二:微信:Jiabcdefh
你认为这篇文章怎么样?
- 0
- 0
- 0
- 0
- 0
- 0