程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

[Python筆記_2]循環、字符串、列表、函數、異常處理

編輯:Python

文章目錄

  • 1 循環
    • 1.1 循環
    • 1.2 for-in循環
    • 1.2 while循環
    • 1.3 嵌套循環
      • 1.3.1 九九乘法表
      • 1.3.2 輸入一個正整數,判斷其是不是素數
  • 2 字符串
    • 2.1 字符串的定義
    • 2.2 字符串的運算
      • 2.2.1 拼接
      • 2.2.2 重復
      • 2.2.3 比較運算
      • 2.2.4 獲取長度:len()
    • 2.3 索引
      • 2.3.1 正序索引
      • 2.3.2 倒序索引
    • 2.4 切片
    • 2.5 字符串的辦法
      • 2.5.1 首字母變大寫
      • 2.5.2 每個字母變大寫
      • 2.5.3 每個字母變小寫
      • 2.5.4 查找操作:index()\find()
      • 2.5.5 格式化字符串
      • 2.5.6 修剪操作
  • 3 列表
    • 3.1 列表運算符
      • 3.1.1 列表的拼接
      • 3.1.2 列表重復
      • 3.1.3 列表的成員運算:in\not in
    • 3.2 索引
    • 3.3 切片
    • 3.4 比較運算
    • 3.4 列表的循環遍歷
    • 3.5 列表的方法
      • 3.5.1 添加元素
      • 3.5.2 append():在列表的尾部添加元素
      • 3.5.3 復制快捷鍵:Ctrl + D
      • 3.5.4 insert():在制定的索引位置添加元素
      • 3.5.5 刪除列表中元素:del、pop、remove
    • 3.6 列表中某個元素的位置和出現的次數
      • 3.6.1 位置:index()
      • 3.6.2 次數:count()
      • 3.6.3 排序:sort()、reverse()
    • 3.7 列表生成式
      • 3.7.1 普通方式
      • 3.7.2 使用列表生成式
  • 4 函數
    • 4.1 計算1到N的和
  • 5 異常處理
    • 5.1 練習1
  • 6 元組
    • 6.1 定義組元
      • 6.1.1 定義一個一元組
      • 6.1.2 二元組
    • 6.2 拼接
    • 6.3 重復
    • 6.4 成員運算
    • 6.5 索引
    • 6.6 切片
    • 6.7 創建空元組
    • 6.8 元組的打包和解包
    • 6.8.1 打包
    • 6.8.2 解包
    • 6.9 交換兩個變量的值

1 循環

1.1 循環

for-in循環:確定具體次數的循環
while循環:不確定要循環多少次

1.2 for-in循環

total = 0
# range(a,b)函數[a,b)左閉右開
for i in range(1, 101):
total += i
print(total)

range()函數:左閉右開的區間

只寫一個數字,默認左側為0
range(101):產生0-100之間的整數
range(2,101):產生2-100之間的整數
range(0,101,2):產生0-100之間的偶數(設置了步長——2)

for i in range(0, 101, 2):
print(i)

1.2 while循環

1、一個死循環

i = 0
while i >= 0:
i += i

2、while使用的示例

sum = 0
flag = True
i = 1
while flag:
if i <= 100:
sum += i
i += 1
else:
flag = False
print(sum)

break:終止break所在循環
continue:終止當前本次循環,進入下一次循環

for i in range(1, 101):
if i == 50:
# break
continue
else:
print(i)

1.3 嵌套循環

1.3.1 九九乘法表

for i in range(1, 10):
for j in range(1, i + 1):
# print('%d X %d = %d'%(i,j,i*j))
# print('{}*{}={}'.format(i,j,i*j)) #兩行作用一樣,但是都在一列(需要更改最後一個默認字符)
# 修改print()的end參數
print('{} * {} = {}'.format(i, j, i * j), end='\t')
# 每行打印完成之後換行
print()

1.3.2 輸入一個正整數,判斷其是不是素數

num = int(input('輸入一個正整數:'))
judge = False
if num == 1 or num == 2:
print('{}是素數'.format(num))
else:
for i in range(2, num // 2 + 1):
if num % i == 0:
print('%d不是素數' % num)
judge = True
break
else:
continue
# print('{}是素數'.format(num))
# 問題:為什麼這裡不會循環輸出{}是素數?
if not judge:
print('%d是素數' % num)

2 字符串

2.1 字符串的定義

由零個或者多個字符組成的有限序列
在Python中,單個或者多個字符由單引號或雙引號引起來的,就叫做字符串

s1 = 'Hello,World!'
s2 = 'Violets'

2.2 字符串的運算

2.2.1 拼接

s1 = 'Hello,World!'
s2 = 'Violets'
print(s1 + s2)
print(s1 + '!')

2.2.2 重復

s1 = 'Hello,World!'
s2 = 'Violets'
print(s1 * 3)

2.2.3 比較運算

1、ASCII碼比較大小

print('a' > 'b')
print('boy' > 'girl')

2、ord()將字符轉換成ASCII碼

print(ord('a'), ord('o'))
print(ord('李'))

3、成員運算:in\not in

s1 = 'abcd'
print('a' in s1)
print('c' not in s1)

2.2.4 獲取長度:len()

print(len(s1))

2.3 索引

2.3.1 正序索引

s1 = 'abcd'
print(s1[2])

2.3.2 倒序索引

print(s1[-1])
# 結果是d
print(s1[-4])
# 結果是a

2.4 切片

默認步長為1
切片也是左閉右開區間
第一個冒號前不寫參數,默認從0開始
第一個冒號後不寫參數,默認取到字符串末尾

s2 = '醉裡挑燈看劍,夢回吹角連營。'
print(s2[0:])
print(len(s2))
print(s2[3:7])
# 第三個參數也是步長
print(s2[::2])
# 倒取
print(s2[-1:-11:-2])
# 循環遍歷字符串
# 輸出字符串的每個元素
for i in s2:
print(i)
# 輸出字符串每個位置索引
for i in range(len(s2)):
print(i)
for i in range(len(s2)):
print(i,s2[i])

2.5 字符串的辦法

s3 = 'Hello!World!'

2.5.1 首字母變大寫

# 將字符串首字母變大寫:capitalize()
print(s3.capitalize())

2.5.2 每個字母變大寫

# 將字符串每個單詞的首字母變大寫
print(s3.title())
# 將字符串所有字母變大寫
a = s3.upper()
print(a)

2.5.3 每個字母變小寫

# 將字符串所有字母變小寫:lower()
print(a.lower())

2.5.4 查找操作:index()\find()

# index()\find()默認從左向右查找,查找到元素立即停止
print(s3.index('l'))
# index()找不到元素報錯:ValueError: substring not found
# print(s3.index('a'))
# find()
# find()找不到元素,返回-1
print(s3.find('l'))
print(s3.find('a'))
# find()可以指定從索引N的位置開始查找
print(s3.find('l', 4))
# rfind()從右往左開始查找
print(s3.rfind('d'))

2.5.5 格式化字符串

s3 = 'hello world'
# center()將字符串補成長度為N的字符串,空白位置用指定字符串補全,原字符串放入現字符串中間位置
print(s3.center(20, '*'))
# rjust()
print(s3.rjust(20, '*'))
# ljust()
print(s3.ljust(20, '*'))

2.5.6 修剪操作

s = ' hello world \n\t'
# strip()將字符串左右兩邊的空格,轉義字符去掉
print(s.strip())

3 列表

列表是一系列元素按照一定的順序進行的排列
列表中可以存多種數據
列表中可以存重復數據

一行代碼多行顯示,使用反斜槓\連接

list = ['hello world', 2022, 6, \
16, 3.1415, [1, 2, 3], \
{
10, 20}, {
'name': '張三'}]

3.1 列表運算符

list1 = [10, 20, 30]
list2 = ['a', 'b', 'c']

3.1.1 列表的拼接

print(list1 + list2)

3.1.2 列表重復

print(list1 * 3)

3.1.3 列表的成員運算:in\not in

print(10 in list1)

3.2 索引

print(list1[0])
print(list1[-1])

3.3 切片

list3 = [10, 20, 30, 40, 50, 60, 70, 80]
print(list3[:])
print(list3[2:5])
print(list3[::2])
print(list3[-1:-7:-1])
print(list3[-1::-1])

3.4 比較運算

'>'not supported between instance of 'int' and 'str'
list1 = [10, 20, 30]
list2 = ['a', 'b', 'c']
print(list1 > list2)

兩個列表比較大小,比較的是列表相同索引位置元素的大小
比較大小的兩個列表相同索引位置的元素必須是同數據類型

list1 = [10, 20]
list2 = [20, 30]
print(list1 > list2)

3.4 列表的循環遍歷

for i in list1:
print(i)
# 兩個循環不要寫在一起了
# for i in range(len(list1)):
# print(i)
# print(i, list1[i])

3.5 列表的方法

3.5.1 添加元素

list3 = []

3.5.2 append():在列表的尾部添加元素

list3.append(10)
list3.append(10)

3.5.3 復制快捷鍵:Ctrl + D

list3.append('Python')
print(list3)

3.5.4 insert():在制定的索引位置添加元素

list3.insert(0, 'java')
print(list3)

3.5.5 刪除列表中元素:del、pop、remove

# del
# 刪除指定的索引位置元素
del list3[0]
print(list3)
# pop():將刪除元素存在某個元素中
a = list3.pop(0)
print(list3)
print(a)
# remove():刪除列表中具體的某個元素
list3.remove('Python')
print(list3)

3.6 列表中某個元素的位置和出現的次數

3.6.1 位置:index()

list4 = ['abc', 10, 50, 80, 40]
# index()
print(list4.index('abc'))
# # 不在列表中的元素,index()報錯
# print(list4.find(10))

3.6.2 次數:count()

# count():沒有輸出0
print(list4.count(10))
print(list4.count(30))

3.6.3 排序:sort()、reverse()

list5 = [10, 90, 40, 20, 70]
# sort():默認從小到大排序
list5.sort()
print(list5)
# reverse():倒序排列
list5.reverse()
print(list5)

3.7 列表生成式

3.7.1 普通方式

list6 = []
for i in range(1, 11):
list6.append(i)
print(list6)

3.7.2 使用列表生成式

list7 = [i for i in range(1, 11)]
print(list7)

4 函數

函數是將相對獨立的一部分代碼封裝起來
def是定義函數的關鍵字、fac函數名、num要傳的參數

def fac(num):
pass

pass保持代碼結構的完整性,不參與程序的執行

fac(12)
# 示例,沒有執行

4.1 計算1到N的和

def total(num):
sum = 0
for i in range(1, num + 1):
sum += i
print(sum)
return sum
total(100)
# return 將函數內部結果返回到外部,不寫return則在外部調用函數內數據的結果為空(none)
a = total(1000)
print(a)

5 異常處理

在某些語句正確的情況下,可能會出現錯誤結果,為了保證程序不會終止運行,引入了異常處理

錯誤案例:

try……except……finally
num = int(input('請輸入一個整數:'))
print(num)
# ValueError: invalid literal for int() with base 10: 'abc'

try案例:

 num = int(input('請輸入一個整數:'))
print(num)
except Exception as error:
print(error)
# invalid literal for int() with base 10: 'abc'
print('出現異常')
finally:
print('程序結束')
# fianlly下面的代碼無論是否出現異常,最終都會被執行

5.1 練習1

list1 = [10, 20, 30, 'abc', 20, 'UFO']
for i in list1:
try:
a = i / 10
print(a)
except Exception as err:
print(err)
continue

6 元組

容器型數據類型
tuple
一元組、二元組、多元組

6.1 定義組元

6.1.1 定義一個一元組

tuple_1 = (25,)
print(type(tuple_1))
# type()獲取數據類型的方法

創建一元組不加逗號都不是一元組

tuple_2 = (25)
print(type(tuple_2))
tuple_3 = ('abc')
print(type(tuple_3))

6.1.2 二元組

tuple_2 = (10, 20)
# 獲取元組長度len()
print(len(tuple_2))

6.2 拼接

t1 = (20,)
t2 = (30, 10)
print(t1 + t2)

6.3 重復

print(t1 * 3)

6.4 成員運算

print(10 in t2)

6.5 索引

print(t2[0])
print(t2[-1])

6.6 切片

t3 = (10, 20, 30, 40, 50)
print(t3[:])
print(t3[2:4])
print(t3[::2])
print(t3[-1:-6:-1])

6.7 創建空元組

t4 = ()
print(type(t4))
# 元組是不可變類型,一旦創建,不可再更改,即不能進行添加,刪除等類似操作

6.8 元組的打包和解包

6.8.1 打包

a = 1, 2, 3
print(a, type(a))

6.8.2 解包

# 等號左邊變量數量要和需要打包的元組長度相等
i, j, z = a
print(i, j, z)
# 錯誤示例1
# ValueError: too many values to unpack (expected 2)
# i, j = a
# print(i, j)
# 錯誤示例2
# 等號左邊變量數量大於元組長度
# i, j, z, h =a
# print(i, j, z, h)
# ValueError: not enough values to unpack (expected 4, got 3)
# 星號表達式:用來解決等號左邊變量數量不足
# 優先考慮沒有星號的變量,最好考慮有星號的變量
b = (1, 2, 3)
i, *j = b
print(i, j)
c = (1, 2, 3, 4)
i, *j, z = c
print(i, j, z)
i, j, *z = c
print(i, j, z)

6.9 交換兩個變量的值

i = 1
j = 2
# C語言版本
z = i
i = j
j = z
print(i, j)
# Python版本
i, j = j, i
print(i, j)

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved