《python語言程序設計》2018版第8章8題編寫函數實現二進制轉十進制(字符串變整數)!!整數沒法進行下標

二進制轉十進制

  • 前言
  • 第1章幻想的草稿
  • 第2章如何把這些幻想的數字帶到現實的算式中
  • 第3章看來是我想多了
  • 第4章 空值不一定是最好的選擇
  • 第5章 成功了

前言

將字符串變成整數,但是整數沒法像字符串一樣做下標
反復嘗試最好的手段,是多多打印

在這里插入圖片描述

第1章幻想的草稿

看一下我第一個方案的代碼
利用for循環將數字字符轉換成int整數,然后進行二進制轉十進制的代碼操作


def binary_to_decimal(binary_string):t_num = ''for i in range(len(binary_string)):t_num = int(len(binary_string[i]))print(t_num,end='')num_int = '10001'binary_to_decimal(num_int)

在這里插入圖片描述
不對??10001 變成了11111

問題找到了


def binary_to_decimal(binary_string):t_num = ''for i in range(len(binary_string)):t_num = int((binary_string[i])) #多了一個len所以讓計算機誤會了print(t_num,end='')num_int = '10001'binary_to_decimal(num_int)

找到了問題,這就是為什么是11111.因為len肯定是數字符串的數,每次循環當然都是1個數,所以就一直打印的不是字符,而是len后當前循環中的字符串數字。

第2章如何把這些幻想的數字帶到現實的算式中

再回到剛才這個成功給我機會進入算式的代碼,我有個想法是不是可以把for去掉呢????


def binary_to_decimal(binary_string):t_num = ''for i in range(len(binary_string)):t_num = int((binary_string[i]))print(t_num,end='')num_int = '10001'binary_to_decimal(num

來改一下


def binary_to_decimal(binary_string):return int(binary_string)num_int = '10001'a = binary_to_decimal(num_int)
print(a)

for循環是不是有點多余,她直接就把它變成整數我們試試

在這里插入圖片描述

第3章看來是我想多了

我先把字符串變成整數。然后利用字符串不對!!不對!!不是列表、不是元組,我們這張是字符串

def binary_to_decimal(binary_string):len_num = len(binary_string) #測量一下字符串的長度integer_to = int(binary_string) #將字符串轉換成整數add_num = '' #放置不斷累積的結果for i in range(len_num, 1,-1):add_num += pow(integer_to[i], i)print(i)print(len_num)print(add_num)num_int = '10001'binary_to_decimal(num_int)

在這里插入圖片描述
int object is not subscriptable

在這里插入圖片描述
這個翻譯有點。。。。。。。。。
這段代碼應該改一下。現在是一次性都變成了整數。我需要變成一次一個數的for循環來完成。

  integer_to = int(binary_string) #將字符串轉換成整數#我改成了這樣for i in range(len_num, 1,-1):int_num = int(binary_string[i])add_num += pow(int_num, i)

在這里插入圖片描述


def binary_to_decimal(binary_string):len_num = len(binary_string) #測量一下字符串的長度add_num = '' #放置不斷累積的結果for i in range(len_num):int_num = int(binary_string[i])add_num += pow(int_num, i)print(add_num)num_int = '10001'binary_to_decimal(num_int)

在這里插入圖片描述

第4章 空值不一定是最好的選擇

def binary_to_decimal(binary_string):len_num = len(binary_string) add_num = '' #問題就出在這里for i in range(len_num):int_num = int(binary_string[i])add_num += pow(int_num, i)# print(type(int_num),int_num)# print(len_num)print(add_num)num_int = '10001'binary_to_decimal(num_int)

add_num = 0 比add_num =''要好
同時我明白了pow(int_num, i)的模式對,但是我是不是忘記了二進制需要乘2,而不是完全不操作。

第5章 成功了


def binary_to_decimal(binary_string):len_num = len(binary_string) #測量一下字符串的長度add_num = 0 #放置不斷累積的結果for i in range(len_num):int_num = int(binary_string[i])add_num += int_num*pow(2, i)#print(type(int_num),int_num)print(f'二進制 {binary_string} 變成十進制 {add_num}.')num_int = '10001'binary_to_decimal(num_int)

print(type(int_num),int_num)
這是用來測試字符串屬性的可以不要

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/91476.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/91476.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/91476.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

LeetCode20

一個新手小白開始算法的學習之路,以后會不定期分享個人做完一些題目的筆記,使用語言為JavaScript//聲明一個名為isValid的函數,接收一個參數s(要檢查的字符串) let isValid function(s) {//初始化棧//創建一個空數組s…

Spring Boot 自動配置:從 spring.factories 到 AutoConfiguration.imports 的演變

引言 Spring Boot 的自動配置機制是其【開箱即用】特性的核心支撐,通過減少顯式配置和簡化開發流程,顯著提升了開發效率。隨著 Spring Boot 版本的迭代,自動配置的實現機制也在不斷優化。本文將深入解析 spring.factories 和 AutoConfigurat…

Redis7 底層數據結構解析

Redis底層數據結構深度解析(基于Redis 7.2.5)本文深入剖析Redis核心數據類型的底層實現機制,涵蓋String、Hash、List、Set、Zset的實現原理及版本演進差異。一、Redis數據存儲核心機制 Redis所有數據以redisObject結構統一封裝: t…

《C++初階之STL》【auto關鍵字 + 范圍for循環 + 迭代器】

【auto關鍵字 范圍for循環 迭代器】目錄前言:--------------- auto關鍵字 ---------------1. 什么是auto?2. 使用關鍵字auto時需要注意什么?3. 怎么使用auto關鍵字?--------------- 范圍for循環 ---------------1. 什么是范圍fo…

ionic 切換開關操作指南

ionic 切換開關操作指南 引言 在移動應用開發中,切換開關(Toggle)是一種常見的用戶界面元素,它允許用戶通過簡單的操作來開啟或關閉某個功能或設置。在Ionic框架中,切換開關提供了豐富的API和樣式,使得開發…

【筆記記錄-Linux文件權限與目錄結構詳解】

🌈個人主頁: Aileen_0v0 🔥熱門專欄: 華為鴻蒙系統學習|計算機網絡|數據結構與算法 ?💫個人格言:“沒有羅馬,那就自己創造羅馬~” 文章目錄目錄結構解析Summarypart3part4part5目錄結構解析 drwxr-xr-x 2 student student 4096 10月 8 2023…

【Complete Search】-基礎完全搜索-Basic Complete Search

文章目錄Solution - Maximum Distance涉及遍歷整個解空間的問題資料-resources 6 - Complete Search 在很多問題中(尤其是在 USACO Bronze 級別),只需檢查解空間中的所有可能情況就足夠了,比如所有元素、所有元素對、所有子集&…

神經網絡的層與塊

什么是層?什么是塊?在深度學習中,層(Layer) 和塊(Block) 是構建神經網絡的核心概念,尤其在 PyTorch、TensorFlow 等框架中,二者既緊密關聯又有明確分工。理解它們的定義、…

如何用Qt寫一個安卓Android應用

對于不會安卓開發的同胞來講(比如我),想要做一個安卓應用(.apk)使用Qt是一個不錯的方法,今天就來聊聊如何使用Qt結合C寫一個安卓應用。 首先我們得擁有一個Qt,我使用的是5.14.2版本的,新版本可直接到qt官網去下載qt.io,老版本的現在qt官網不支…

泰語OCR識別技術方案

一、痛點分析1.1 泰語文字特性帶來的挑戰復雜字符集:泰語有44個輔音字母、15個元音符號、4個聲調符號和10個數字,組合形式多樣上下疊加結構:泰文字符常在垂直方向疊加組合,增加分割難度無詞間空格:泰語單詞間無明確分隔…

MER-Factory:多模態情感識別與推理數據集自動化工廠工具介紹

🛠? 工具 如果這個項目對你有幫助,歡迎給 https://github.com/Lum1104/MER-Factory/ 倉庫點一個 Star 🌟 ,這對我們幫助很大 MER-Factory 提供交互式工具來幫助您管理數據和配置處理流水線。 調優儀表板 調優儀表板 是一個基…

Python基礎數據結構詳解:字符串、列表、元組和字典的常用方法

目錄 一、引言:為什么學習這些數據結構? 二、字符串(String)的常用方法 1. 基本操作 2. 查找索引 3. 大小寫轉換 4. 位置調整 5. 開頭和結尾檢查 6. 分割和連接 7. 刪除空白字符 8. 類型判定 9. 替換內容 字符串小結 …

Liunx練習項目5.1-周期化任務;時間同步服務;

1.系統周期化任務1.1 at命令的用法at 時間 指定在規定的時間上執行相應的操作,完成操作crtlD完成編輯一分鐘后輸入的指令完成,創建了file{1..5}的文件at -l 查看系統上面所有用戶的調度at -c 可以查看該任務的指令at -d 加編號可以刪除該任務at -v 可以…

小皮面板搭建pikachu靶場

一、搭建所需的工具 1.下載小皮面板 下載地址為:小皮面板(phpstudy) - 讓天下沒有難配的服務器環境! 2.下載靶場所需的文件 下載地址為:https://github.com/zhuifengshaonianhanlu/pikachu 二、環境的搭建 打開小皮面板,使用所…

使用aiohttp實現高并發爬蟲

使用aiohttp來編寫一個高并發的爬蟲,想法很不錯,現實很骨感。這里我們要知道,由于高并發可能會對目標服務器造成壓力,請確保遵守目標網站的robots.txt,并合理設置并發量,避免被封IP。 我將通過示例代碼&…

【Linux庖丁解牛】— 信號量ipc管理!

1. 并發編程概念鋪墊> 多個執行流【進程】看到同一份資源:共享資源。> 被保護起來的資源叫做臨界資源。> 在進程中,涉及臨界資源的程序段叫做臨界區。【說人話就是程序中訪問共享資源的代碼】> 什么是互斥:任何時刻,只…

Spring Boot全局異常處理詳解

原代碼:package com.weiyu.exception;import com.weiyu.pojo.Result; import com.weiyu.utils.ErrorFileResponseUtils; import jakarta.servlet.http.HttpServletRequest; import lombok.extern.slf4j.Slf4j; import org.springframework.http.HttpStatus; import …

FHE技術將徹底改變在線隱私保護方式

1. 在線隱私的簡史 互聯網剛剛誕生時,所有的內容都是未加密的。人們通過一個特定的地址訪問網站,這個地址以“HTTP”開頭。當時,這并不是什么大問題,因為人們在線訪問的都是內容,而這些內容本身已經是公開的。但隨著電…

Cursor配置Java環境、創建Spring Boot項目

一:配置JDK和Maven cursor默認會讀取環境變量JAVA_HOME和MAVEN_HOME,如果沒有配置去找默認路徑~/.m2/settings.xml也可以手動指定:Ctrl Shift P 輸入"Preferences:Open User Settings(JSON)"打開settings.json文件,然…

win11添加無線顯示器(兩個筆記本實現雙屏)

前置條件: 兩個筆記本要要支持無線顯示器,支持藍牙; 1、自己重裝的win11系統,首先根據網上說明進去的時候,紅色顯示無無線投屏; 2、安裝網上操作,查看自己電腦是否支持無線投屏(是支…